Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Jan 2013 14:44:21 -0700 (MST)
From:      Warren Block <wblock@wonkity.com>
To:        "Simon L. B. Nielsen" <simon@qxnitro.org>
Cc:        freebsd-doc@freebsd.org
Subject:   Re: freebsd-update and ports
Message-ID:  <alpine.BSF.2.00.1301131304290.17568@wonkity.com>
In-Reply-To: <CAC8HS2FewOpz_SWmwMhz7m2TgW1T7YE%2BjPGPkcSJP-TPjJ9Qng@mail.gmail.com>
References:  <alpine.BSF.2.00.1301122210240.11994@wonkity.com> <CAC8HS2FewOpz_SWmwMhz7m2TgW1T7YE%2BjPGPkcSJP-TPjJ9Qng@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--3512871622-1184402412-1358107748=:17568
Content-Type: TEXT/PLAIN; FORMAT=flowed; CHARSET=ISO-8859-15
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.BSF.2.00.1301131314351.17568@wonkity.com>

On Sun, 13 Jan 2013, Simon L. B. Nielsen wrote:
> On 13 Jan 2013 05:24, "Warren Block" <wblock@wonkity.com> wrote:
> >
> > Looking for some feedback from someone more familiar with freebsd-update(8) and ports.
> >
> >   Define minor and major version upgrades at the start of the section.
> 
> In the text you call it minor and major upgrades. I think that is misleading and should be written out as major version upgrades and minor version upgrades, as a minor version upgrade
> can still begin problematic and a major version upgrade can be a small thing.

That was the section title originally, but agreed.

> >   Say that installed applications will generally still run after a minor
> >   upgrade.
> 
> I would say there is a bug if it doesn't work, but of course its always a risk and there are special cases...

> > -      <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
> > +      <para><emphasis>Major</emphasis> upgrades are when &os is
> 
> Missing ; on entity.

Doh.  Entity checking is even on the list of things that igor should do 
but does not.

> > +         <listitem>
> > +           <para>Assuming physical access to the machine is possible, a
> > +             copy of the <filename>GENERIC</filename> kernel can be
> > +             installed from the CD-ROM media.  Insert your installation
> > +             disc and use the following commands:</para>
> > +
> > +           <screen>&prompt.root; <userinput>mount /cdrom</userinput>
> >  &prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
> >  &prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
> 
> This is only correct for FreeBSD 8 and older. For 9..0 onwards other is a tgz in /usr/freebsd-dist .

Fixing that involved rewriting that section.  I have done that, but this 
has gone from minor patch to big update.  The new section on 9.X and 
higher GENERIC kernel has literal tags on GENERIC, because it's not a 
directory any more.  Except when GENERIC refers to the kernel config, 
when it is a file.  The procedure needs to be verified, and maybe 
there's a simpler or better way to copy the kernel file.

The two custom kernel sections meant new sect3 and sect4 sections, and 
consequent indentation changes to a bunch of the rest of this.

That said, it's better than it was.

Index: cutting-edge/chapter.xml
===================================================================
--- cutting-edge/chapter.xml	(revision 40616)
+++ cutting-edge/chapter.xml	(working copy)
@@ -352,15 +352,23 @@
      </sect2>

      <sect2 id="freebsdupdate-upgrade">
-      <title>Major and Minor Upgrades</title>
+      <title>Major and Minor Version Upgrades</title>

-      <para>This process will remove old object files and
+      <para>Upgrades from one minor version of &os; to another, like
+	from &os;&nbsp;9.0 to &os;&nbsp;9.1, are called
+	<emphasis>minor version</emphasis> upgrades.  Generally,
+	installed applications will continue to work without problems
+	after minor version upgrades.</para>
+
+      <para><emphasis>Major version</emphasis> upgrades are when &os;
+	is upgraded from one major version to another, like from
+	&os;&nbsp;8.X to &os;&nbsp;9.X.  Major version upgrades will remove old object files and
  	libraries which will break most third party applications.
  	It is recommended that all installed ports either be removed
-	and re-installed or upgraded later using the
+	and re-installed or upgraded after a major version upgrade by using the
  	<filename role="package">ports-mgmt/portupgrade</filename>
-	utility.  Most users will want to run a test build using
-	the following command:</para>
+	utility.  A brute-force rebuild of all installed
+	applications can be accomplished with this command:</para>

        <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>

@@ -371,81 +379,142 @@
  	any prompts during this process, removing the need for
  	manual intervention during the build process.</para>

-      <para>If a custom kernel is in use, the upgrade process is
-	slightly more involved.  A copy of the
-	<filename>GENERIC</filename> kernel is needed, and it should
-	be placed in
-	<filename class="directory">/boot/GENERIC</filename>.  If the
-	<filename>GENERIC</filename> kernel is not already present in
-	the system, it may be obtained using one of the following
-	methods:</para>
+      <sect3 id="freebsd-update-custom-kernel">
+	<title>Dealing with Custom Kernels</title>

-      <itemizedlist>
-	<listitem>
-	  <para>If a custom kernel has only been built once, the
-	    kernel in
-	    <filename class="directory">/boot/kernel.old</filename> is
-	    actually the <filename>GENERIC</filename> one.  Simply
-	    rename this directory to <filename
-	      class="directory">/boot/GENERIC</filename>.</para>
-	</listitem>
+	<para>If a custom kernel is in use, the upgrade process is
+	  slightly more involved, and the procedure varies depending on
+	  the version of &os;.</para>

-	<listitem>
-	  <para>Assuming physical access to the machine is possible, a
-	    copy of the <filename>GENERIC</filename> kernel can be
-	    installed from the CD-ROM media.  Insert your installation
-	    disc and use the following commands:</para>
+	<sect4 id="freebsd-update-custom-kernel-8x">
+	  <title>Custom Kernels with &os;&nbsp;8.X and Earlier</title>

-	  <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+	  <para>A copy of the
+	    <filename>GENERIC</filename> kernel is needed, and it should
+	    be placed in
+	    <filename class="directory">/boot/GENERIC</filename>.  If the
+	    <filename>GENERIC</filename> kernel is not already present in
+	    the system, it may be obtained using one of the following
+	    methods:</para>
+
+	  <itemizedlist>
+	    <listitem>
+	      <para>If a custom kernel has only been built once, the
+		kernel in
+	        <filename class="directory">/boot/kernel.old</filename> is
+		actually the <filename>GENERIC</filename> one.  Simply
+		rename this directory to <filename
+		  class="directory">/boot/GENERIC</filename>.</para>
+	    </listitem>
+
+	    <listitem>
+	      <para>Assuming physical access to the machine is possible, a
+		copy of the <filename>GENERIC</filename> kernel can be
+		installed from the CD-ROM media.  Insert your installation
+		disc and use the following commands:</para>
+
+	      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
  &prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
  &prompt.root; <userinput>./install.sh GENERIC</userinput></screen>

-	  <para>Replace <filename
-	      class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
-	    with the actual version of the release you are using.  The
-	    <filename>GENERIC</filename> kernel will be installed in
-	    <filename class="directory">/boot/GENERIC</filename> by
-	    default.</para>
-	</listitem>
+	      <para>Replace <filename
+	          class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
+		with the actual version of the release you are using.  The
+		<filename>GENERIC</filename> kernel will be installed in
+		<filename class="directory">/boot/GENERIC</filename> by
+		default.</para>
+	    </listitem>

-	<listitem>
-	  <para>Failing all the above, the
-	    <filename>GENERIC</filename> kernel may be rebuilt and
-	    installed from the sources:</para>
+	    <listitem>
+	      <para>Failing all the above, the
+		<filename>GENERIC</filename> kernel may be rebuilt and
+		installed from the sources:</para>

-	  <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+	      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
  &prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel</userinput>
  &prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
  &prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>

-	  <para>For this kernel to be picked up as
-	    <filename>GENERIC</filename>
-	    by <command>freebsd-update</command>, the
-	    <filename>GENERIC</filename> configuration file must not
-	    have been modified in any way.  It is also suggested that
-	    it is built without any other special options (preferably
-	    with an empty <filename>/etc/make.conf</filename>).</para>
-	</listitem>
-      </itemizedlist>
+	      <para>For this kernel to be picked up as
+		<filename>GENERIC</filename>
+		by <command>freebsd-update</command>, the
+		<filename>GENERIC</filename> configuration file must not
+		have been modified in any way.  It is also suggested that
+		it is built without any other special options (preferably
+		with an empty <filename>/etc/make.conf</filename>).</para>
+	    </listitem>
+	  </itemizedlist>

-      <para>Rebooting to the <filename>GENERIC</filename> kernel is
-	not required at this stage.</para>
+	  <para>Rebooting to the <filename>GENERIC</filename> kernel is
+	    not required at this stage.</para>
+	</sect4>

-      <para>Major and minor version updates may be performed by
-	providing <command>freebsd-update</command> with a release
-	version target, for example, the following command will
-	update to &os;&nbsp;8.1:</para>
+	<sect4 id="freebsd-update-custom-kernel-9x">
+	  <title>Custom Kernels with &os;&nbsp;9.X and Later</title>

-      <screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
+	  <itemizedlist>
+	    <listitem>
+	      <para>If a custom kernel has only been built once, the
+		kernel in
+		<filename class="directory">/boot/kernel.old</filename>
+		is actually the <literal>GENERIC</literal> kernel.
+		Rename this directory to <filename
+		  class="directory">/boot/kernel</filename>.</para>
+	    </listitem>

-      <para>After the command has been received,
-	<command>freebsd-update</command> will evaluate the
-	configuration file and current system in an attempt to gather
-	the information necessary to update the system.  A screen
-	listing will display what components have been detected and
-	what components have not been detected.  For example:</para>
+	    <listitem>
+	      <para>If physical access to the machine is available, a
+		copy of the <literal>GENERIC</literal> kernel can be
+		installed from the CD-ROM media.  Load the
+		installation disc and use these commands:</para>

-      <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
+	      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+&prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
+&prompt.root; <userinput>tar -C/ -xvf kernel.txz boot/kernel/kernel</userinput></screen>
+	    </listitem>
+
+	    <listitem>
+	      <para>If the options above cannot be used, the
+		<literal>GENERIC</literal> kernel may be rebuilt and
+		installed from the sources:</para>
+
+	      <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make kernel</userinput></screen>
+
+	      <para>For this kernel to be identified as the
+		<literal>GENERIC</literal> kernel by
+		<command>freebsd-update</command>, the
+		<filename>GENERIC</filename> configuration file must
+		not have been modified in any way.  It is also
+		suggested that the kernel is built without any other
+		special options, preferably with an empty
+		<filename>/etc/make.conf</filename>.</para>
+	    </listitem>
+	  </itemizedlist>
+
+	  <para>Rebooting to the <filename>GENERIC</filename> kernel is
+	    not required at this stage.</para>
+	</sect4>
+      </sect3>
+
+      <sect3 id="freebsdupdate-using">
+	<title>Performing the Upgrade</title>
+
+	<para>Major and minor version upgrades may be performed by
+	  providing <command>freebsd-update</command> with a release
+	  version target, for example, the following command will
+	  update to &os;&nbsp;8.1:</para>
+
+	<screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
+
+	<para>After the command has been received,
+	  <command>freebsd-update</command> will evaluate the
+	  configuration file and current system in an attempt to gather
+	  the information necessary to update the system.  A screen
+	  listing will display what components have been detected and
+	  what components have not been detected.  For example:</para>
+
+	<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
  Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
  Fetching metadata index... done.
  Inspecting system... done.
@@ -462,123 +531,128 @@

  Does this look reasonable (y/n)? y</screen>

-      <para>At this point, <command>freebsd-update</command> will
-	attempt to download all files required for the upgrade.  In
-	some cases, the user may be prompted with questions regarding
-	what to install or how to proceed.</para>
+	<para>At this point, <command>freebsd-update</command> will
+	  attempt to download all files required for the upgrade.  In
+	  some cases, the user may be prompted with questions regarding
+	  what to install or how to proceed.</para>

-      <para>When using a custom kernel, the above step will produce a
-	warning similar to the following:</para>
+	<para>When using a custom kernel, the above step will produce a
+	  warning similar to the following:</para>

-      <screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
+	<screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
  kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
  This kernel will not be updated: you MUST update the kernel manually
  before running "/usr/sbin/freebsd-update install"</screen>

-      <para>This warning may be safely ignored at this point.  The
-	updated <filename>GENERIC</filename> kernel will be used as an
-	intermediate step in the upgrade process.</para>
+	<para>This warning may be safely ignored at this point.  The
+	  updated <filename>GENERIC</filename> kernel will be used as an
+	  intermediate step in the upgrade process.</para>

-      <para>After all patches have been downloaded to the local
-	system, they will then be applied.  This process may take a
-	while depending on the speed and workload of the machine.
-	Configuration files will then be merged&nbsp;&mdash; this part
-	of the process requires some user intervention as a file may
-	be merged or an editor may appear on screen for a manual
-	merge.  The results of every successful merge will be shown to
-	the user as the process continues.  A failed or ignored merge
-	will cause the process to abort.  Users may wish to make a
-	backup of <filename class="directory">/etc</filename> and
-	manually merge important files, such as
-	<filename>master.passwd</filename> or
-	<filename>group</filename> at a later time.</para>
+	<para>After all patches have been downloaded to the local
+	  system, they will then be applied.  This process may take a
+	  while depending on the speed and workload of the machine.
+	  Configuration files will then be merged&nbsp;&mdash; this part
+	  of the process requires some user intervention as a file may
+	  be merged or an editor may appear on screen for a manual
+	  merge.  The results of every successful merge will be shown to
+	  the user as the process continues.  A failed or ignored merge
+	  will cause the process to abort.  Users may wish to make a
+	  backup of <filename class="directory">/etc</filename> and
+	  manually merge important files, such as
+	  <filename>master.passwd</filename> or
+	  <filename>group</filename> at a later time.</para>

-      <note>
-	<para>The system is not being altered yet, all patching and
-	  merging is happening in another directory.  When all
-	  patches have been applied successfully, all configuration
-	  files have been merged and it seems the process will go
-	  smoothly, the changes will need to be committed by the
-	  user.</para>
-      </note>
+	<note>
+	  <para>The system is not being altered yet, all patching and
+	    merging is happening in another directory.  When all
+	    patches have been applied successfully, all configuration
+	    files have been merged and it seems the process will go
+	    smoothly, the changes will need to be committed by the
+	    user.</para>
+	</note>

-      <para>Once this process is complete, the upgrade may be
-	committed to disk using the following command.</para>
+	<para>Once this process is complete, the upgrade may be
+	  committed to disk using the following command.</para>

-      <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>

-      <para>The kernel and kernel modules will be patched first.  At
-	this point the machine must be rebooted.  If the system was
-	running with a custom kernel, use the &man.nextboot.8; command
-	to set the kernel for the next boot to
-	<filename class="directory">/boot/GENERIC</filename> (which
-	was updated):</para>
+	<para>The kernel and kernel modules will be patched first.  At
+	  this point the machine must be rebooted.  If the system was
+	  running with a custom kernel, use the &man.nextboot.8; command
+	  to set the kernel for the next boot to
+	  <filename class="directory">/boot/GENERIC</filename> (which
+	  was updated):</para>

-      <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
+	<screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>

-      <warning>
-	<para>Before rebooting with the <filename>GENERIC</filename>
-	  kernel, make sure it contains all drivers required for your
-	  system to boot properly (and connect to the network, if the
-	  machine that is being updated is accessed remotely).  In
-	  particular, if the previously running custom kernel
-	  contained built-in functionality usually provided by kernel
-	  modules, make sure to temporarily load these modules into
-	  the <filename>GENERIC</filename> kernel using the
-	  <filename>/boot/loader.conf</filename> facility.  You may
-	  also wish to disable non-essential services, disk and
-	  network mounts, etc. until the upgrade process is
-	  complete.</para>
-      </warning>
+	<warning>
+	  <para>Before rebooting with the <filename>GENERIC</filename>
+	    kernel, make sure it contains all drivers required for your
+	    system to boot properly (and connect to the network, if the
+	    machine that is being updated is accessed remotely).  In
+	    particular, if the previously running custom kernel
+	    contained built-in functionality usually provided by kernel
+	    modules, make sure to temporarily load these modules into
+	    the <filename>GENERIC</filename> kernel using the
+	    <filename>/boot/loader.conf</filename> facility.  You may
+	    also wish to disable non-essential services, disk and
+	    network mounts, etc. until the upgrade process is
+	    complete.</para>
+	</warning>

-      <para>The machine should now be restarted with the updated
-	kernel:</para>
+	<para>The machine should now be restarted with the updated
+	  kernel:</para>

-      <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+	<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>

-      <para>Once the system has come back online,
-	<command>freebsd-update</command> will need to be started
-	again.  The state of the process has been saved and thus,
-	<command>freebsd-update</command> will not start from the
-	beginning, but will remove all old shared libraries and object
-	files.  To continue to this stage, issue the following
-	command:</para>
+	<para>Once the system has come back online,
+	  <command>freebsd-update</command> will need to be started
+	  again.  The state of the process has been saved and thus,
+	  <command>freebsd-update</command> will not start from the
+	  beginning, but will remove all old shared libraries and object
+	  files.  To continue to this stage, issue the following
+	  command:</para>

-      <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>

-      <note>
-	<para>Depending on whether any libraries version numbers got
-	  bumped, there may only be two install phases instead of
-	  three.</para>
-      </note>
+	<note>
+	  <para>Depending on whether any libraries version numbers got
+	    bumped, there may only be two install phases instead of
+	    three.</para>
+	</note>
+      </sect3>

-      <para>All third party software will now need to be rebuilt and
-	re-installed.  This is required as installed software may
-	depend on libraries which have been removed during the upgrade
-	process.  The
-	<filename role="package">ports-mgmt/portupgrade</filename>
-	command may be used to automate this process.  The following
-	commands may be used to begin this process:</para>
+      <sect3 id="freebsdupdate-portsrebuild">
+	<title>Rebuilding Ports After a Major Version Upgrade</title>

-      <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
+	<para>After a major version upgrade, all third party software will now need to be rebuilt and
+	  re-installed.  This is required as installed software may
+	  depend on libraries which have been removed during the upgrade
+	  process.  The
+	  <filename role="package">ports-mgmt/portupgrade</filename>
+	  command may be used to automate this process.  The following
+	  commands may be used to begin this process:</para>
+
+        <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
  &prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
  &prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
  &prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
  &prompt.root; <userinput>portupgrade -af</userinput></screen>

-      <para>Once this has completed, finish the upgrade process with a
-	final call to <command>freebsd-update</command>.  Issue the
-	following command to tie up all loose ends in the upgrade
-	process:</para>
+        <para>Once this has completed, finish the upgrade process with a
+	  final call to <command>freebsd-update</command>.  Issue the
+	  following command to tie up all loose ends in the upgrade
+	  process:</para>

-      <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>

-      <para>If the <filename>GENERIC</filename> kernel was temporarily
-	used, this is the time to build and install a new custom
-	kernel in the usual way.</para>
+	<para>If the <filename>GENERIC</filename> kernel was temporarily
+	  used, this is the time to build and install a new custom
+	  kernel in the usual way.</para>

-      <para>Reboot the machine into the new &os; version.  The process
-	is complete.</para>
+	<para>Reboot the machine into the new &os; version.  The process
+	  is complete.</para>
+      </sect3>
      </sect2>

      <sect2 id="freebsdupdate-system-comparison">
--3512871622-1184402412-1358107748=:17568
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=fupd-ports2.diff
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.BSF.2.00.1301131444210.17568@wonkity.com>
Content-Description: 
Content-Disposition: attachment; filename=fupd-ports2.diff

SW5kZXg6IGN1dHRpbmctZWRnZS9jaGFwdGVyLnhtbA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIGN1dHRpbmctZWRnZS9jaGFwdGVyLnhtbAkocmV2
aXNpb24gNDA2MTYpDQorKysgY3V0dGluZy1lZGdlL2NoYXB0ZXIueG1sCSh3
b3JraW5nIGNvcHkpDQpAQCAtMzUyLDE1ICszNTIsMjMgQEANCiAgICAgPC9z
ZWN0Mj4NCiANCiAgICAgPHNlY3QyIGlkPSJmcmVlYnNkdXBkYXRlLXVwZ3Jh
ZGUiPg0KLSAgICAgIDx0aXRsZT5NYWpvciBhbmQgTWlub3IgVXBncmFkZXM8
L3RpdGxlPg0KKyAgICAgIDx0aXRsZT5NYWpvciBhbmQgTWlub3IgVmVyc2lv
biBVcGdyYWRlczwvdGl0bGU+DQogDQotICAgICAgPHBhcmE+VGhpcyBwcm9j
ZXNzIHdpbGwgcmVtb3ZlIG9sZCBvYmplY3QgZmlsZXMgYW5kDQorICAgICAg
PHBhcmE+VXBncmFkZXMgZnJvbSBvbmUgbWlub3IgdmVyc2lvbiBvZiAmb3M7
IHRvIGFub3RoZXIsIGxpa2UNCisJZnJvbSAmb3M7Jm5ic3A7OS4wIHRvICZv
czsmbmJzcDs5LjEsIGFyZSBjYWxsZWQNCisJPGVtcGhhc2lzPm1pbm9yIHZl
cnNpb248L2VtcGhhc2lzPiB1cGdyYWRlcy4gIEdlbmVyYWxseSwNCisJaW5z
dGFsbGVkIGFwcGxpY2F0aW9ucyB3aWxsIGNvbnRpbnVlIHRvIHdvcmsgd2l0
aG91dCBwcm9ibGVtcw0KKwlhZnRlciBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVz
LjwvcGFyYT4NCisNCisgICAgICA8cGFyYT48ZW1waGFzaXM+TWFqb3IgdmVy
c2lvbjwvZW1waGFzaXM+IHVwZ3JhZGVzIGFyZSB3aGVuICZvczsNCisJaXMg
dXBncmFkZWQgZnJvbSBvbmUgbWFqb3IgdmVyc2lvbiB0byBhbm90aGVyLCBs
aWtlIGZyb20NCisJJm9zOyZuYnNwOzguWCB0byAmb3M7Jm5ic3A7OS5YLiAg
TWFqb3IgdmVyc2lvbiB1cGdyYWRlcyB3aWxsIHJlbW92ZSBvbGQgb2JqZWN0
IGZpbGVzIGFuZA0KIAlsaWJyYXJpZXMgd2hpY2ggd2lsbCBicmVhayBtb3N0
IHRoaXJkIHBhcnR5IGFwcGxpY2F0aW9ucy4NCiAJSXQgaXMgcmVjb21tZW5k
ZWQgdGhhdCBhbGwgaW5zdGFsbGVkIHBvcnRzIGVpdGhlciBiZSByZW1vdmVk
DQotCWFuZCByZS1pbnN0YWxsZWQgb3IgdXBncmFkZWQgbGF0ZXIgdXNpbmcg
dGhlDQorCWFuZCByZS1pbnN0YWxsZWQgb3IgdXBncmFkZWQgYWZ0ZXIgYSBt
YWpvciB2ZXJzaW9uIHVwZ3JhZGUgYnkgdXNpbmcgdGhlDQogCTxmaWxlbmFt
ZSByb2xlPSJwYWNrYWdlIj5wb3J0cy1tZ210L3BvcnR1cGdyYWRlPC9maWxl
bmFtZT4NCi0JdXRpbGl0eS4gIE1vc3QgdXNlcnMgd2lsbCB3YW50IHRvIHJ1
biBhIHRlc3QgYnVpbGQgdXNpbmcNCi0JdGhlIGZvbGxvd2luZyBjb21tYW5k
OjwvcGFyYT4NCisJdXRpbGl0eS4gIEEgYnJ1dGUtZm9yY2UgcmVidWlsZCBv
ZiBhbGwgaW5zdGFsbGVkDQorCWFwcGxpY2F0aW9ucyBjYW4gYmUgYWNjb21w
bGlzaGVkIHdpdGggdGhpcyBjb21tYW5kOjwvcGFyYT4NCiANCiAgICAgICA8
c2NyZWVuPiZwcm9tcHQucm9vdDsgPHVzZXJpbnB1dD5wb3J0dXBncmFkZSAt
YWY8L3VzZXJpbnB1dD48L3NjcmVlbj4NCiANCkBAIC0zNzEsODEgKzM3OSwx
NDIgQEANCiAJYW55IHByb21wdHMgZHVyaW5nIHRoaXMgcHJvY2VzcywgcmVt
b3ZpbmcgdGhlIG5lZWQgZm9yDQogCW1hbnVhbCBpbnRlcnZlbnRpb24gZHVy
aW5nIHRoZSBidWlsZCBwcm9jZXNzLjwvcGFyYT4NCiANCi0gICAgICA8cGFy
YT5JZiBhIGN1c3RvbSBrZXJuZWwgaXMgaW4gdXNlLCB0aGUgdXBncmFkZSBw
cm9jZXNzIGlzDQotCXNsaWdodGx5IG1vcmUgaW52b2x2ZWQuICBBIGNvcHkg
b2YgdGhlDQotCTxmaWxlbmFtZT5HRU5FUklDPC9maWxlbmFtZT4ga2VybmVs
IGlzIG5lZWRlZCwgYW5kIGl0IHNob3VsZA0KLQliZSBwbGFjZWQgaW4NCi0J
PGZpbGVuYW1lIGNsYXNzPSJkaXJlY3RvcnkiPi9ib290L0dFTkVSSUM8L2Zp
bGVuYW1lPi4gIElmIHRoZQ0KLQk8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5h
bWU+IGtlcm5lbCBpcyBub3QgYWxyZWFkeSBwcmVzZW50IGluDQotCXRoZSBz
eXN0ZW0sIGl0IG1heSBiZSBvYnRhaW5lZCB1c2luZyBvbmUgb2YgdGhlIGZv
bGxvd2luZw0KLQltZXRob2RzOjwvcGFyYT4NCisgICAgICA8c2VjdDMgaWQ9
ImZyZWVic2QtdXBkYXRlLWN1c3RvbS1rZXJuZWwiPg0KKwk8dGl0bGU+RGVh
bGluZyB3aXRoIEN1c3RvbSBLZXJuZWxzPC90aXRsZT4NCiANCi0gICAgICA8
aXRlbWl6ZWRsaXN0Pg0KLQk8bGlzdGl0ZW0+DQotCSAgPHBhcmE+SWYgYSBj
dXN0b20ga2VybmVsIGhhcyBvbmx5IGJlZW4gYnVpbHQgb25jZSwgdGhlDQot
CSAgICBrZXJuZWwgaW4NCi0JICAgIDxmaWxlbmFtZSBjbGFzcz0iZGlyZWN0
b3J5Ij4vYm9vdC9rZXJuZWwub2xkPC9maWxlbmFtZT4gaXMNCi0JICAgIGFj
dHVhbGx5IHRoZSA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IG9uZS4g
IFNpbXBseQ0KLQkgICAgcmVuYW1lIHRoaXMgZGlyZWN0b3J5IHRvIDxmaWxl
bmFtZQ0KLQkgICAgICBjbGFzcz0iZGlyZWN0b3J5Ij4vYm9vdC9HRU5FUklD
PC9maWxlbmFtZT4uPC9wYXJhPg0KLQk8L2xpc3RpdGVtPg0KKwk8cGFyYT5J
ZiBhIGN1c3RvbSBrZXJuZWwgaXMgaW4gdXNlLCB0aGUgdXBncmFkZSBwcm9j
ZXNzIGlzDQorCSAgc2xpZ2h0bHkgbW9yZSBpbnZvbHZlZCwgYW5kIHRoZSBw
cm9jZWR1cmUgdmFyaWVzIGRlcGVuZGluZyBvbg0KKwkgIHRoZSB2ZXJzaW9u
IG9mICZvczsuPC9wYXJhPg0KIA0KLQk8bGlzdGl0ZW0+DQotCSAgPHBhcmE+
QXNzdW1pbmcgcGh5c2ljYWwgYWNjZXNzIHRvIHRoZSBtYWNoaW5lIGlzIHBv
c3NpYmxlLCBhDQotCSAgICBjb3B5IG9mIHRoZSA8ZmlsZW5hbWU+R0VORVJJ
QzwvZmlsZW5hbWU+IGtlcm5lbCBjYW4gYmUNCi0JICAgIGluc3RhbGxlZCBm
cm9tIHRoZSBDRC1ST00gbWVkaWEuICBJbnNlcnQgeW91ciBpbnN0YWxsYXRp
b24NCi0JICAgIGRpc2MgYW5kIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRz
OjwvcGFyYT4NCisJPHNlY3Q0IGlkPSJmcmVlYnNkLXVwZGF0ZS1jdXN0b20t
a2VybmVsLTh4Ij4NCisJICA8dGl0bGU+Q3VzdG9tIEtlcm5lbHMgd2l0aCAm
b3M7Jm5ic3A7OC5YIGFuZCBFYXJsaWVyPC90aXRsZT4NCiANCi0JICA8c2Ny
ZWVuPiZwcm9tcHQucm9vdDsgPHVzZXJpbnB1dD5tb3VudCAvY2Ryb208L3Vz
ZXJpbnB1dD4NCisJICA8cGFyYT5BIGNvcHkgb2YgdGhlDQorCSAgICA8Zmls
ZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IGtlcm5lbCBpcyBuZWVkZWQsIGFu
ZCBpdCBzaG91bGQNCisJICAgIGJlIHBsYWNlZCBpbg0KKwkgICAgPGZpbGVu
YW1lIGNsYXNzPSJkaXJlY3RvcnkiPi9ib290L0dFTkVSSUM8L2ZpbGVuYW1l
Pi4gIElmIHRoZQ0KKwkgICAgPGZpbGVuYW1lPkdFTkVSSUM8L2ZpbGVuYW1l
PiBrZXJuZWwgaXMgbm90IGFscmVhZHkgcHJlc2VudCBpbg0KKwkgICAgdGhl
IHN5c3RlbSwgaXQgbWF5IGJlIG9idGFpbmVkIHVzaW5nIG9uZSBvZiB0aGUg
Zm9sbG93aW5nDQorCSAgICBtZXRob2RzOjwvcGFyYT4NCisNCisJICA8aXRl
bWl6ZWRsaXN0Pg0KKwkgICAgPGxpc3RpdGVtPg0KKwkgICAgICA8cGFyYT5J
ZiBhIGN1c3RvbSBrZXJuZWwgaGFzIG9ubHkgYmVlbiBidWlsdCBvbmNlLCB0
aGUNCisJCWtlcm5lbCBpbg0KKwkgICAgICAgIDxmaWxlbmFtZSBjbGFzcz0i
ZGlyZWN0b3J5Ij4vYm9vdC9rZXJuZWwub2xkPC9maWxlbmFtZT4gaXMNCisJ
CWFjdHVhbGx5IHRoZSA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IG9u
ZS4gIFNpbXBseQ0KKwkJcmVuYW1lIHRoaXMgZGlyZWN0b3J5IHRvIDxmaWxl
bmFtZQ0KKwkJICBjbGFzcz0iZGlyZWN0b3J5Ij4vYm9vdC9HRU5FUklDPC9m
aWxlbmFtZT4uPC9wYXJhPg0KKwkgICAgPC9saXN0aXRlbT4NCisNCisJICAg
IDxsaXN0aXRlbT4NCisJICAgICAgPHBhcmE+QXNzdW1pbmcgcGh5c2ljYWwg
YWNjZXNzIHRvIHRoZSBtYWNoaW5lIGlzIHBvc3NpYmxlLCBhDQorCQljb3B5
IG9mIHRoZSA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IGtlcm5lbCBj
YW4gYmUNCisJCWluc3RhbGxlZCBmcm9tIHRoZSBDRC1ST00gbWVkaWEuICBJ
bnNlcnQgeW91ciBpbnN0YWxsYXRpb24NCisJCWRpc2MgYW5kIHVzZSB0aGUg
Zm9sbG93aW5nIGNvbW1hbmRzOjwvcGFyYT4NCisNCisJICAgICAgPHNjcmVl
bj4mcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+bW91bnQgL2Nkcm9tPC91c2Vy
aW5wdXQ+DQogJnByb21wdC5yb290OyA8dXNlcmlucHV0PmNkIC9jZHJvbS88
cmVwbGFjZWFibGU+WC5ZLVJFTEVBU0U8L3JlcGxhY2VhYmxlPi9rZXJuZWxz
PC91c2VyaW5wdXQ+DQogJnByb21wdC5yb290OyA8dXNlcmlucHV0Pi4vaW5z
dGFsbC5zaCBHRU5FUklDPC91c2VyaW5wdXQ+PC9zY3JlZW4+DQogDQotCSAg
PHBhcmE+UmVwbGFjZSA8ZmlsZW5hbWUNCi0JICAgICAgY2xhc3M9ImRpcmVj
dG9yeSI+PHJlcGxhY2VhYmxlPlguWS1SRUxFQVNFPC9yZXBsYWNlYWJsZT48
L2ZpbGVuYW1lPg0KLQkgICAgd2l0aCB0aGUgYWN0dWFsIHZlcnNpb24gb2Yg
dGhlIHJlbGVhc2UgeW91IGFyZSB1c2luZy4gIFRoZQ0KLQkgICAgPGZpbGVu
YW1lPkdFTkVSSUM8L2ZpbGVuYW1lPiBrZXJuZWwgd2lsbCBiZSBpbnN0YWxs
ZWQgaW4NCi0JICAgIDxmaWxlbmFtZSBjbGFzcz0iZGlyZWN0b3J5Ij4vYm9v
dC9HRU5FUklDPC9maWxlbmFtZT4gYnkNCi0JICAgIGRlZmF1bHQuPC9wYXJh
Pg0KLQk8L2xpc3RpdGVtPg0KKwkgICAgICA8cGFyYT5SZXBsYWNlIDxmaWxl
bmFtZQ0KKwkgICAgICAgICAgY2xhc3M9ImRpcmVjdG9yeSI+PHJlcGxhY2Vh
YmxlPlguWS1SRUxFQVNFPC9yZXBsYWNlYWJsZT48L2ZpbGVuYW1lPg0KKwkJ
d2l0aCB0aGUgYWN0dWFsIHZlcnNpb24gb2YgdGhlIHJlbGVhc2UgeW91IGFy
ZSB1c2luZy4gIFRoZQ0KKwkJPGZpbGVuYW1lPkdFTkVSSUM8L2ZpbGVuYW1l
PiBrZXJuZWwgd2lsbCBiZSBpbnN0YWxsZWQgaW4NCisJCTxmaWxlbmFtZSBj
bGFzcz0iZGlyZWN0b3J5Ij4vYm9vdC9HRU5FUklDPC9maWxlbmFtZT4gYnkN
CisJCWRlZmF1bHQuPC9wYXJhPg0KKwkgICAgPC9saXN0aXRlbT4NCiANCi0J
PGxpc3RpdGVtPg0KLQkgIDxwYXJhPkZhaWxpbmcgYWxsIHRoZSBhYm92ZSwg
dGhlDQotCSAgICA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IGtlcm5l
bCBtYXkgYmUgcmVidWlsdCBhbmQNCi0JICAgIGluc3RhbGxlZCBmcm9tIHRo
ZSBzb3VyY2VzOjwvcGFyYT4NCisJICAgIDxsaXN0aXRlbT4NCisJICAgICAg
PHBhcmE+RmFpbGluZyBhbGwgdGhlIGFib3ZlLCB0aGUNCisJCTxmaWxlbmFt
ZT5HRU5FUklDPC9maWxlbmFtZT4ga2VybmVsIG1heSBiZSByZWJ1aWx0IGFu
ZA0KKwkJaW5zdGFsbGVkIGZyb20gdGhlIHNvdXJjZXM6PC9wYXJhPg0KIA0K
LQkgIDxzY3JlZW4+JnByb21wdC5yb290OyA8dXNlcmlucHV0PmNkIC91c3Iv
c3JjPC91c2VyaW5wdXQ+DQorCSAgICAgIDxzY3JlZW4+JnByb21wdC5yb290
OyA8dXNlcmlucHV0PmNkIC91c3Ivc3JjPC91c2VyaW5wdXQ+DQogJnByb21w
dC5yb290OyA8dXNlcmlucHV0PmVudiBERVNURElSPS9ib290L0dFTkVSSUMg
bWFrZSBrZXJuZWw8L3VzZXJpbnB1dD4NCiAmcHJvbXB0LnJvb3Q7IDx1c2Vy
aW5wdXQ+bXYgL2Jvb3QvR0VORVJJQy9ib290L2tlcm5lbC8qIC9ib290L0dF
TkVSSUM8L3VzZXJpbnB1dD4NCiAmcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+
cm0gLXJmIC9ib290L0dFTkVSSUMvYm9vdDwvdXNlcmlucHV0Pjwvc2NyZWVu
Pg0KIA0KLQkgIDxwYXJhPkZvciB0aGlzIGtlcm5lbCB0byBiZSBwaWNrZWQg
dXAgYXMNCi0JICAgIDxmaWxlbmFtZT5HRU5FUklDPC9maWxlbmFtZT4NCi0J
ICAgIGJ5IDxjb21tYW5kPmZyZWVic2QtdXBkYXRlPC9jb21tYW5kPiwgdGhl
DQotCSAgICA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IGNvbmZpZ3Vy
YXRpb24gZmlsZSBtdXN0IG5vdA0KLQkgICAgaGF2ZSBiZWVuIG1vZGlmaWVk
IGluIGFueSB3YXkuICBJdCBpcyBhbHNvIHN1Z2dlc3RlZCB0aGF0DQotCSAg
ICBpdCBpcyBidWlsdCB3aXRob3V0IGFueSBvdGhlciBzcGVjaWFsIG9wdGlv
bnMgKHByZWZlcmFibHkNCi0JICAgIHdpdGggYW4gZW1wdHkgPGZpbGVuYW1l
Pi9ldGMvbWFrZS5jb25mPC9maWxlbmFtZT4pLjwvcGFyYT4NCi0JPC9saXN0
aXRlbT4NCi0gICAgICA8L2l0ZW1pemVkbGlzdD4NCisJICAgICAgPHBhcmE+
Rm9yIHRoaXMga2VybmVsIHRvIGJlIHBpY2tlZCB1cCBhcw0KKwkJPGZpbGVu
YW1lPkdFTkVSSUM8L2ZpbGVuYW1lPg0KKwkJYnkgPGNvbW1hbmQ+ZnJlZWJz
ZC11cGRhdGU8L2NvbW1hbmQ+LCB0aGUNCisJCTxmaWxlbmFtZT5HRU5FUklD
PC9maWxlbmFtZT4gY29uZmlndXJhdGlvbiBmaWxlIG11c3Qgbm90DQorCQlo
YXZlIGJlZW4gbW9kaWZpZWQgaW4gYW55IHdheS4gIEl0IGlzIGFsc28gc3Vn
Z2VzdGVkIHRoYXQNCisJCWl0IGlzIGJ1aWx0IHdpdGhvdXQgYW55IG90aGVy
IHNwZWNpYWwgb3B0aW9ucyAocHJlZmVyYWJseQ0KKwkJd2l0aCBhbiBlbXB0
eSA8ZmlsZW5hbWU+L2V0Yy9tYWtlLmNvbmY8L2ZpbGVuYW1lPikuPC9wYXJh
Pg0KKwkgICAgPC9saXN0aXRlbT4NCisJICA8L2l0ZW1pemVkbGlzdD4NCiAN
Ci0gICAgICA8cGFyYT5SZWJvb3RpbmcgdG8gdGhlIDxmaWxlbmFtZT5HRU5F
UklDPC9maWxlbmFtZT4ga2VybmVsIGlzDQotCW5vdCByZXF1aXJlZCBhdCB0
aGlzIHN0YWdlLjwvcGFyYT4NCisJICA8cGFyYT5SZWJvb3RpbmcgdG8gdGhl
IDxmaWxlbmFtZT5HRU5FUklDPC9maWxlbmFtZT4ga2VybmVsIGlzDQorCSAg
ICBub3QgcmVxdWlyZWQgYXQgdGhpcyBzdGFnZS48L3BhcmE+DQorCTwvc2Vj
dDQ+DQogDQotICAgICAgPHBhcmE+TWFqb3IgYW5kIG1pbm9yIHZlcnNpb24g
dXBkYXRlcyBtYXkgYmUgcGVyZm9ybWVkIGJ5DQotCXByb3ZpZGluZyA8Y29t
bWFuZD5mcmVlYnNkLXVwZGF0ZTwvY29tbWFuZD4gd2l0aCBhIHJlbGVhc2UN
Ci0JdmVyc2lvbiB0YXJnZXQsIGZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5n
IGNvbW1hbmQgd2lsbA0KLQl1cGRhdGUgdG8gJm9zOyZuYnNwOzguMTo8L3Bh
cmE+DQorCTxzZWN0NCBpZD0iZnJlZWJzZC11cGRhdGUtY3VzdG9tLWtlcm5l
bC05eCI+DQorCSAgPHRpdGxlPkN1c3RvbSBLZXJuZWxzIHdpdGggJm9zOyZu
YnNwOzkuWCBhbmQgTGF0ZXI8L3RpdGxlPg0KIA0KLSAgICAgIDxzY3JlZW4+
JnByb21wdC5yb290OyA8dXNlcmlucHV0PmZyZWVic2QtdXBkYXRlIC1yIDgu
MS1SRUxFQVNFIHVwZ3JhZGU8L3VzZXJpbnB1dD48L3NjcmVlbj4NCisJICA8
aXRlbWl6ZWRsaXN0Pg0KKwkgICAgPGxpc3RpdGVtPg0KKwkgICAgICA8cGFy
YT5JZiBhIGN1c3RvbSBrZXJuZWwgaGFzIG9ubHkgYmVlbiBidWlsdCBvbmNl
LCB0aGUNCisJCWtlcm5lbCBpbg0KKwkJPGZpbGVuYW1lIGNsYXNzPSJkaXJl
Y3RvcnkiPi9ib290L2tlcm5lbC5vbGQ8L2ZpbGVuYW1lPg0KKwkJaXMgYWN0
dWFsbHkgdGhlIDxsaXRlcmFsPkdFTkVSSUM8L2xpdGVyYWw+IGtlcm5lbC4N
CisJCVJlbmFtZSB0aGlzIGRpcmVjdG9yeSB0byA8ZmlsZW5hbWUNCisJCSAg
Y2xhc3M9ImRpcmVjdG9yeSI+L2Jvb3Qva2VybmVsPC9maWxlbmFtZT4uPC9w
YXJhPg0KKwkgICAgPC9saXN0aXRlbT4NCiANCi0gICAgICA8cGFyYT5BZnRl
ciB0aGUgY29tbWFuZCBoYXMgYmVlbiByZWNlaXZlZCwNCi0JPGNvbW1hbmQ+
ZnJlZWJzZC11cGRhdGU8L2NvbW1hbmQ+IHdpbGwgZXZhbHVhdGUgdGhlDQot
CWNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgY3VycmVudCBzeXN0ZW0gaW4gYW4g
YXR0ZW1wdCB0byBnYXRoZXINCi0JdGhlIGluZm9ybWF0aW9uIG5lY2Vzc2Fy
eSB0byB1cGRhdGUgdGhlIHN5c3RlbS4gIEEgc2NyZWVuDQotCWxpc3Rpbmcg
d2lsbCBkaXNwbGF5IHdoYXQgY29tcG9uZW50cyBoYXZlIGJlZW4gZGV0ZWN0
ZWQgYW5kDQotCXdoYXQgY29tcG9uZW50cyBoYXZlIG5vdCBiZWVuIGRldGVj
dGVkLiAgRm9yIGV4YW1wbGU6PC9wYXJhPg0KKwkgICAgPGxpc3RpdGVtPg0K
KwkgICAgICA8cGFyYT5JZiBwaHlzaWNhbCBhY2Nlc3MgdG8gdGhlIG1hY2hp
bmUgaXMgYXZhaWxhYmxlLCBhDQorCQljb3B5IG9mIHRoZSA8bGl0ZXJhbD5H
RU5FUklDPC9saXRlcmFsPiBrZXJuZWwgY2FuIGJlDQorCQlpbnN0YWxsZWQg
ZnJvbSB0aGUgQ0QtUk9NIG1lZGlhLiAgTG9hZCB0aGUNCisJCWluc3RhbGxh
dGlvbiBkaXNjIGFuZCB1c2UgdGhlc2UgY29tbWFuZHM6PC9wYXJhPg0KIA0K
LSAgICAgIDxzY3JlZW4+TG9va2luZyB1cCB1cGRhdGUuRnJlZUJTRC5vcmcg
bWlycm9ycy4uLiAxIG1pcnJvcnMgZm91bmQuDQorCSAgICAgIDxzY3JlZW4+
JnByb21wdC5yb290OyA8dXNlcmlucHV0Pm1vdW50IC9jZHJvbTwvdXNlcmlu
cHV0Pg0KKyZwcm9tcHQucm9vdDsgPHVzZXJpbnB1dD5jZCAvY2Ryb20vdXNy
L2ZyZWVic2QtZGlzdDwvdXNlcmlucHV0Pg0KKyZwcm9tcHQucm9vdDsgPHVz
ZXJpbnB1dD50YXIgLUMvIC14dmYga2VybmVsLnR4eiBib290L2tlcm5lbC9r
ZXJuZWw8L3VzZXJpbnB1dD48L3NjcmVlbj4NCisJICAgIDwvbGlzdGl0ZW0+
DQorDQorCSAgICA8bGlzdGl0ZW0+DQorCSAgICAgIDxwYXJhPklmIHRoZSBv
cHRpb25zIGFib3ZlIGNhbm5vdCBiZSB1c2VkLCB0aGUNCisJCTxsaXRlcmFs
PkdFTkVSSUM8L2xpdGVyYWw+IGtlcm5lbCBtYXkgYmUgcmVidWlsdCBhbmQN
CisJCWluc3RhbGxlZCBmcm9tIHRoZSBzb3VyY2VzOjwvcGFyYT4NCisNCisJ
ICAgICAgPHNjcmVlbj4mcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+Y2QgL3Vz
ci9zcmM8L3VzZXJpbnB1dD4NCismcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+
bWFrZSBrZXJuZWw8L3VzZXJpbnB1dD48L3NjcmVlbj4NCisNCisJICAgICAg
PHBhcmE+Rm9yIHRoaXMga2VybmVsIHRvIGJlIGlkZW50aWZpZWQgYXMgdGhl
DQorCQk8bGl0ZXJhbD5HRU5FUklDPC9saXRlcmFsPiBrZXJuZWwgYnkNCisJ
CTxjb21tYW5kPmZyZWVic2QtdXBkYXRlPC9jb21tYW5kPiwgdGhlDQorCQk8
ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5hbWU+IGNvbmZpZ3VyYXRpb24gZmls
ZSBtdXN0DQorCQlub3QgaGF2ZSBiZWVuIG1vZGlmaWVkIGluIGFueSB3YXku
ICBJdCBpcyBhbHNvDQorCQlzdWdnZXN0ZWQgdGhhdCB0aGUga2VybmVsIGlz
IGJ1aWx0IHdpdGhvdXQgYW55IG90aGVyDQorCQlzcGVjaWFsIG9wdGlvbnMs
IHByZWZlcmFibHkgd2l0aCBhbiBlbXB0eQ0KKwkJPGZpbGVuYW1lPi9ldGMv
bWFrZS5jb25mPC9maWxlbmFtZT4uPC9wYXJhPg0KKwkgICAgPC9saXN0aXRl
bT4NCisJICA8L2l0ZW1pemVkbGlzdD4NCisNCisJICA8cGFyYT5SZWJvb3Rp
bmcgdG8gdGhlIDxmaWxlbmFtZT5HRU5FUklDPC9maWxlbmFtZT4ga2VybmVs
IGlzDQorCSAgICBub3QgcmVxdWlyZWQgYXQgdGhpcyBzdGFnZS48L3BhcmE+
DQorCTwvc2VjdDQ+DQorICAgICAgPC9zZWN0Mz4NCisNCisgICAgICA8c2Vj
dDMgaWQ9ImZyZWVic2R1cGRhdGUtdXNpbmciPg0KKwk8dGl0bGU+UGVyZm9y
bWluZyB0aGUgVXBncmFkZTwvdGl0bGU+DQorDQorCTxwYXJhPk1ham9yIGFu
ZCBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVzIG1heSBiZSBwZXJmb3JtZWQgYnkN
CisJICBwcm92aWRpbmcgPGNvbW1hbmQ+ZnJlZWJzZC11cGRhdGU8L2NvbW1h
bmQ+IHdpdGggYSByZWxlYXNlDQorCSAgdmVyc2lvbiB0YXJnZXQsIGZvciBl
eGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgd2lsbA0KKwkgIHVwZGF0
ZSB0byAmb3M7Jm5ic3A7OC4xOjwvcGFyYT4NCisNCisJPHNjcmVlbj4mcHJv
bXB0LnJvb3Q7IDx1c2VyaW5wdXQ+ZnJlZWJzZC11cGRhdGUgLXIgOC4xLVJF
TEVBU0UgdXBncmFkZTwvdXNlcmlucHV0Pjwvc2NyZWVuPg0KKw0KKwk8cGFy
YT5BZnRlciB0aGUgY29tbWFuZCBoYXMgYmVlbiByZWNlaXZlZCwNCisJICA8
Y29tbWFuZD5mcmVlYnNkLXVwZGF0ZTwvY29tbWFuZD4gd2lsbCBldmFsdWF0
ZSB0aGUNCisJICBjb25maWd1cmF0aW9uIGZpbGUgYW5kIGN1cnJlbnQgc3lz
dGVtIGluIGFuIGF0dGVtcHQgdG8gZ2F0aGVyDQorCSAgdGhlIGluZm9ybWF0
aW9uIG5lY2Vzc2FyeSB0byB1cGRhdGUgdGhlIHN5c3RlbS4gIEEgc2NyZWVu
DQorCSAgbGlzdGluZyB3aWxsIGRpc3BsYXkgd2hhdCBjb21wb25lbnRzIGhh
dmUgYmVlbiBkZXRlY3RlZCBhbmQNCisJICB3aGF0IGNvbXBvbmVudHMgaGF2
ZSBub3QgYmVlbiBkZXRlY3RlZC4gIEZvciBleGFtcGxlOjwvcGFyYT4NCisN
CisJPHNjcmVlbj5Mb29raW5nIHVwIHVwZGF0ZS5GcmVlQlNELm9yZyBtaXJy
b3JzLi4uIDEgbWlycm9ycyBmb3VuZC4NCiBGZXRjaGluZyBtZXRhZGF0YSBz
aWduYXR1cmUgZm9yIDguMC1SRUxFQVNFIGZyb20gdXBkYXRlMS5GcmVlQlNE
Lm9yZy4uLiBkb25lLg0KIEZldGNoaW5nIG1ldGFkYXRhIGluZGV4Li4uIGRv
bmUuDQogSW5zcGVjdGluZyBzeXN0ZW0uLi4gZG9uZS4NCkBAIC00NjIsMTIz
ICs1MzEsMTI4IEBADQogDQogRG9lcyB0aGlzIGxvb2sgcmVhc29uYWJsZSAo
eS9uKT8geTwvc2NyZWVuPg0KIA0KLSAgICAgIDxwYXJhPkF0IHRoaXMgcG9p
bnQsIDxjb21tYW5kPmZyZWVic2QtdXBkYXRlPC9jb21tYW5kPiB3aWxsDQot
CWF0dGVtcHQgdG8gZG93bmxvYWQgYWxsIGZpbGVzIHJlcXVpcmVkIGZvciB0
aGUgdXBncmFkZS4gIEluDQotCXNvbWUgY2FzZXMsIHRoZSB1c2VyIG1heSBi
ZSBwcm9tcHRlZCB3aXRoIHF1ZXN0aW9ucyByZWdhcmRpbmcNCi0Jd2hhdCB0
byBpbnN0YWxsIG9yIGhvdyB0byBwcm9jZWVkLjwvcGFyYT4NCisJPHBhcmE+
QXQgdGhpcyBwb2ludCwgPGNvbW1hbmQ+ZnJlZWJzZC11cGRhdGU8L2NvbW1h
bmQ+IHdpbGwNCisJICBhdHRlbXB0IHRvIGRvd25sb2FkIGFsbCBmaWxlcyBy
ZXF1aXJlZCBmb3IgdGhlIHVwZ3JhZGUuICBJbg0KKwkgIHNvbWUgY2FzZXMs
IHRoZSB1c2VyIG1heSBiZSBwcm9tcHRlZCB3aXRoIHF1ZXN0aW9ucyByZWdh
cmRpbmcNCisJICB3aGF0IHRvIGluc3RhbGwgb3IgaG93IHRvIHByb2NlZWQu
PC9wYXJhPg0KIA0KLSAgICAgIDxwYXJhPldoZW4gdXNpbmcgYSBjdXN0b20g
a2VybmVsLCB0aGUgYWJvdmUgc3RlcCB3aWxsIHByb2R1Y2UgYQ0KLQl3YXJu
aW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzo8L3BhcmE+DQorCTxwYXJh
PldoZW4gdXNpbmcgYSBjdXN0b20ga2VybmVsLCB0aGUgYWJvdmUgc3RlcCB3
aWxsIHByb2R1Y2UgYQ0KKwkgIHdhcm5pbmcgc2ltaWxhciB0byB0aGUgZm9s
bG93aW5nOjwvcGFyYT4NCiANCi0gICAgICA8c2NyZWVuPldBUk5JTkc6IFRo
aXMgc3lzdGVtIGlzIHJ1bm5pbmcgYSAiPHJlcGxhY2VhYmxlPk1ZS0VSTkVM
PC9yZXBsYWNlYWJsZT4iIGtlcm5lbCwgd2hpY2ggaXMgbm90IGENCisJPHNj
cmVlbj5XQVJOSU5HOiBUaGlzIHN5c3RlbSBpcyBydW5uaW5nIGEgIjxyZXBs
YWNlYWJsZT5NWUtFUk5FTDwvcmVwbGFjZWFibGU+IiBrZXJuZWwsIHdoaWNo
IGlzIG5vdCBhDQoga2VybmVsIGNvbmZpZ3VyYXRpb24gZGlzdHJpYnV0ZWQg
YXMgcGFydCBvZiBGcmVlQlNEIDguMC1SRUxFQVNFLg0KIFRoaXMga2VybmVs
IHdpbGwgbm90IGJlIHVwZGF0ZWQ6IHlvdSBNVVNUIHVwZGF0ZSB0aGUga2Vy
bmVsIG1hbnVhbGx5DQogYmVmb3JlIHJ1bm5pbmcgIi91c3Ivc2Jpbi9mcmVl
YnNkLXVwZGF0ZSBpbnN0YWxsIjwvc2NyZWVuPg0KIA0KLSAgICAgIDxwYXJh
PlRoaXMgd2FybmluZyBtYXkgYmUgc2FmZWx5IGlnbm9yZWQgYXQgdGhpcyBw
b2ludC4gIFRoZQ0KLQl1cGRhdGVkIDxmaWxlbmFtZT5HRU5FUklDPC9maWxl
bmFtZT4ga2VybmVsIHdpbGwgYmUgdXNlZCBhcyBhbg0KLQlpbnRlcm1lZGlh
dGUgc3RlcCBpbiB0aGUgdXBncmFkZSBwcm9jZXNzLjwvcGFyYT4NCisJPHBh
cmE+VGhpcyB3YXJuaW5nIG1heSBiZSBzYWZlbHkgaWdub3JlZCBhdCB0aGlz
IHBvaW50LiAgVGhlDQorCSAgdXBkYXRlZCA8ZmlsZW5hbWU+R0VORVJJQzwv
ZmlsZW5hbWU+IGtlcm5lbCB3aWxsIGJlIHVzZWQgYXMgYW4NCisJICBpbnRl
cm1lZGlhdGUgc3RlcCBpbiB0aGUgdXBncmFkZSBwcm9jZXNzLjwvcGFyYT4N
CiANCi0gICAgICA8cGFyYT5BZnRlciBhbGwgcGF0Y2hlcyBoYXZlIGJlZW4g
ZG93bmxvYWRlZCB0byB0aGUgbG9jYWwNCi0Jc3lzdGVtLCB0aGV5IHdpbGwg
dGhlbiBiZSBhcHBsaWVkLiAgVGhpcyBwcm9jZXNzIG1heSB0YWtlIGENCi0J
d2hpbGUgZGVwZW5kaW5nIG9uIHRoZSBzcGVlZCBhbmQgd29ya2xvYWQgb2Yg
dGhlIG1hY2hpbmUuDQotCUNvbmZpZ3VyYXRpb24gZmlsZXMgd2lsbCB0aGVu
IGJlIG1lcmdlZCZuYnNwOyZtZGFzaDsgdGhpcyBwYXJ0DQotCW9mIHRoZSBw
cm9jZXNzIHJlcXVpcmVzIHNvbWUgdXNlciBpbnRlcnZlbnRpb24gYXMgYSBm
aWxlIG1heQ0KLQliZSBtZXJnZWQgb3IgYW4gZWRpdG9yIG1heSBhcHBlYXIg
b24gc2NyZWVuIGZvciBhIG1hbnVhbA0KLQltZXJnZS4gIFRoZSByZXN1bHRz
IG9mIGV2ZXJ5IHN1Y2Nlc3NmdWwgbWVyZ2Ugd2lsbCBiZSBzaG93biB0bw0K
LQl0aGUgdXNlciBhcyB0aGUgcHJvY2VzcyBjb250aW51ZXMuICBBIGZhaWxl
ZCBvciBpZ25vcmVkIG1lcmdlDQotCXdpbGwgY2F1c2UgdGhlIHByb2Nlc3Mg
dG8gYWJvcnQuICBVc2VycyBtYXkgd2lzaCB0byBtYWtlIGENCi0JYmFja3Vw
IG9mIDxmaWxlbmFtZSBjbGFzcz0iZGlyZWN0b3J5Ij4vZXRjPC9maWxlbmFt
ZT4gYW5kDQotCW1hbnVhbGx5IG1lcmdlIGltcG9ydGFudCBmaWxlcywgc3Vj
aCBhcw0KLQk8ZmlsZW5hbWU+bWFzdGVyLnBhc3N3ZDwvZmlsZW5hbWU+IG9y
DQotCTxmaWxlbmFtZT5ncm91cDwvZmlsZW5hbWU+IGF0IGEgbGF0ZXIgdGlt
ZS48L3BhcmE+DQorCTxwYXJhPkFmdGVyIGFsbCBwYXRjaGVzIGhhdmUgYmVl
biBkb3dubG9hZGVkIHRvIHRoZSBsb2NhbA0KKwkgIHN5c3RlbSwgdGhleSB3
aWxsIHRoZW4gYmUgYXBwbGllZC4gIFRoaXMgcHJvY2VzcyBtYXkgdGFrZSBh
DQorCSAgd2hpbGUgZGVwZW5kaW5nIG9uIHRoZSBzcGVlZCBhbmQgd29ya2xv
YWQgb2YgdGhlIG1hY2hpbmUuDQorCSAgQ29uZmlndXJhdGlvbiBmaWxlcyB3
aWxsIHRoZW4gYmUgbWVyZ2VkJm5ic3A7Jm1kYXNoOyB0aGlzIHBhcnQNCisJ
ICBvZiB0aGUgcHJvY2VzcyByZXF1aXJlcyBzb21lIHVzZXIgaW50ZXJ2ZW50
aW9uIGFzIGEgZmlsZSBtYXkNCisJICBiZSBtZXJnZWQgb3IgYW4gZWRpdG9y
IG1heSBhcHBlYXIgb24gc2NyZWVuIGZvciBhIG1hbnVhbA0KKwkgIG1lcmdl
LiAgVGhlIHJlc3VsdHMgb2YgZXZlcnkgc3VjY2Vzc2Z1bCBtZXJnZSB3aWxs
IGJlIHNob3duIHRvDQorCSAgdGhlIHVzZXIgYXMgdGhlIHByb2Nlc3MgY29u
dGludWVzLiAgQSBmYWlsZWQgb3IgaWdub3JlZCBtZXJnZQ0KKwkgIHdpbGwg
Y2F1c2UgdGhlIHByb2Nlc3MgdG8gYWJvcnQuICBVc2VycyBtYXkgd2lzaCB0
byBtYWtlIGENCisJICBiYWNrdXAgb2YgPGZpbGVuYW1lIGNsYXNzPSJkaXJl
Y3RvcnkiPi9ldGM8L2ZpbGVuYW1lPiBhbmQNCisJICBtYW51YWxseSBtZXJn
ZSBpbXBvcnRhbnQgZmlsZXMsIHN1Y2ggYXMNCisJICA8ZmlsZW5hbWU+bWFz
dGVyLnBhc3N3ZDwvZmlsZW5hbWU+IG9yDQorCSAgPGZpbGVuYW1lPmdyb3Vw
PC9maWxlbmFtZT4gYXQgYSBsYXRlciB0aW1lLjwvcGFyYT4NCiANCi0gICAg
ICA8bm90ZT4NCi0JPHBhcmE+VGhlIHN5c3RlbSBpcyBub3QgYmVpbmcgYWx0
ZXJlZCB5ZXQsIGFsbCBwYXRjaGluZyBhbmQNCi0JICBtZXJnaW5nIGlzIGhh
cHBlbmluZyBpbiBhbm90aGVyIGRpcmVjdG9yeS4gIFdoZW4gYWxsDQotCSAg
cGF0Y2hlcyBoYXZlIGJlZW4gYXBwbGllZCBzdWNjZXNzZnVsbHksIGFsbCBj
b25maWd1cmF0aW9uDQotCSAgZmlsZXMgaGF2ZSBiZWVuIG1lcmdlZCBhbmQg
aXQgc2VlbXMgdGhlIHByb2Nlc3Mgd2lsbCBnbw0KLQkgIHNtb290aGx5LCB0
aGUgY2hhbmdlcyB3aWxsIG5lZWQgdG8gYmUgY29tbWl0dGVkIGJ5IHRoZQ0K
LQkgIHVzZXIuPC9wYXJhPg0KLSAgICAgIDwvbm90ZT4NCisJPG5vdGU+DQor
CSAgPHBhcmE+VGhlIHN5c3RlbSBpcyBub3QgYmVpbmcgYWx0ZXJlZCB5ZXQs
IGFsbCBwYXRjaGluZyBhbmQNCisJICAgIG1lcmdpbmcgaXMgaGFwcGVuaW5n
IGluIGFub3RoZXIgZGlyZWN0b3J5LiAgV2hlbiBhbGwNCisJICAgIHBhdGNo
ZXMgaGF2ZSBiZWVuIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5LCBhbGwgY29uZmln
dXJhdGlvbg0KKwkgICAgZmlsZXMgaGF2ZSBiZWVuIG1lcmdlZCBhbmQgaXQg
c2VlbXMgdGhlIHByb2Nlc3Mgd2lsbCBnbw0KKwkgICAgc21vb3RobHksIHRo
ZSBjaGFuZ2VzIHdpbGwgbmVlZCB0byBiZSBjb21taXR0ZWQgYnkgdGhlDQor
CSAgICB1c2VyLjwvcGFyYT4NCisJPC9ub3RlPg0KIA0KLSAgICAgIDxwYXJh
Pk9uY2UgdGhpcyBwcm9jZXNzIGlzIGNvbXBsZXRlLCB0aGUgdXBncmFkZSBt
YXkgYmUNCi0JY29tbWl0dGVkIHRvIGRpc2sgdXNpbmcgdGhlIGZvbGxvd2lu
ZyBjb21tYW5kLjwvcGFyYT4NCisJPHBhcmE+T25jZSB0aGlzIHByb2Nlc3Mg
aXMgY29tcGxldGUsIHRoZSB1cGdyYWRlIG1heSBiZQ0KKwkgIGNvbW1pdHRl
ZCB0byBkaXNrIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZC48L3BhcmE+
DQogDQotICAgICAgPHNjcmVlbj4mcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+
ZnJlZWJzZC11cGRhdGUgaW5zdGFsbDwvdXNlcmlucHV0Pjwvc2NyZWVuPg0K
Kwk8c2NyZWVuPiZwcm9tcHQucm9vdDsgPHVzZXJpbnB1dD5mcmVlYnNkLXVw
ZGF0ZSBpbnN0YWxsPC91c2VyaW5wdXQ+PC9zY3JlZW4+DQogDQotICAgICAg
PHBhcmE+VGhlIGtlcm5lbCBhbmQga2VybmVsIG1vZHVsZXMgd2lsbCBiZSBw
YXRjaGVkIGZpcnN0LiAgQXQNCi0JdGhpcyBwb2ludCB0aGUgbWFjaGluZSBt
dXN0IGJlIHJlYm9vdGVkLiAgSWYgdGhlIHN5c3RlbSB3YXMNCi0JcnVubmlu
ZyB3aXRoIGEgY3VzdG9tIGtlcm5lbCwgdXNlIHRoZSAmbWFuLm5leHRib290
Ljg7IGNvbW1hbmQNCi0JdG8gc2V0IHRoZSBrZXJuZWwgZm9yIHRoZSBuZXh0
IGJvb3QgdG8NCi0JPGZpbGVuYW1lIGNsYXNzPSJkaXJlY3RvcnkiPi9ib290
L0dFTkVSSUM8L2ZpbGVuYW1lPiAod2hpY2gNCi0Jd2FzIHVwZGF0ZWQpOjwv
cGFyYT4NCisJPHBhcmE+VGhlIGtlcm5lbCBhbmQga2VybmVsIG1vZHVsZXMg
d2lsbCBiZSBwYXRjaGVkIGZpcnN0LiAgQXQNCisJICB0aGlzIHBvaW50IHRo
ZSBtYWNoaW5lIG11c3QgYmUgcmVib290ZWQuICBJZiB0aGUgc3lzdGVtIHdh
cw0KKwkgIHJ1bm5pbmcgd2l0aCBhIGN1c3RvbSBrZXJuZWwsIHVzZSB0aGUg
Jm1hbi5uZXh0Ym9vdC44OyBjb21tYW5kDQorCSAgdG8gc2V0IHRoZSBrZXJu
ZWwgZm9yIHRoZSBuZXh0IGJvb3QgdG8NCisJICA8ZmlsZW5hbWUgY2xhc3M9
ImRpcmVjdG9yeSI+L2Jvb3QvR0VORVJJQzwvZmlsZW5hbWU+ICh3aGljaA0K
KwkgIHdhcyB1cGRhdGVkKTo8L3BhcmE+DQogDQotICAgICAgPHNjcmVlbj4m
cHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+bmV4dGJvb3QgLWsgR0VORVJJQzwv
dXNlcmlucHV0Pjwvc2NyZWVuPg0KKwk8c2NyZWVuPiZwcm9tcHQucm9vdDsg
PHVzZXJpbnB1dD5uZXh0Ym9vdCAtayBHRU5FUklDPC91c2VyaW5wdXQ+PC9z
Y3JlZW4+DQogDQotICAgICAgPHdhcm5pbmc+DQotCTxwYXJhPkJlZm9yZSBy
ZWJvb3Rpbmcgd2l0aCB0aGUgPGZpbGVuYW1lPkdFTkVSSUM8L2ZpbGVuYW1l
Pg0KLQkgIGtlcm5lbCwgbWFrZSBzdXJlIGl0IGNvbnRhaW5zIGFsbCBkcml2
ZXJzIHJlcXVpcmVkIGZvciB5b3VyDQotCSAgc3lzdGVtIHRvIGJvb3QgcHJv
cGVybHkgKGFuZCBjb25uZWN0IHRvIHRoZSBuZXR3b3JrLCBpZiB0aGUNCi0J
ICBtYWNoaW5lIHRoYXQgaXMgYmVpbmcgdXBkYXRlZCBpcyBhY2Nlc3NlZCBy
ZW1vdGVseSkuICBJbg0KLQkgIHBhcnRpY3VsYXIsIGlmIHRoZSBwcmV2aW91
c2x5IHJ1bm5pbmcgY3VzdG9tIGtlcm5lbA0KLQkgIGNvbnRhaW5lZCBidWls
dC1pbiBmdW5jdGlvbmFsaXR5IHVzdWFsbHkgcHJvdmlkZWQgYnkga2VybmVs
DQotCSAgbW9kdWxlcywgbWFrZSBzdXJlIHRvIHRlbXBvcmFyaWx5IGxvYWQg
dGhlc2UgbW9kdWxlcyBpbnRvDQotCSAgdGhlIDxmaWxlbmFtZT5HRU5FUklD
PC9maWxlbmFtZT4ga2VybmVsIHVzaW5nIHRoZQ0KLQkgIDxmaWxlbmFtZT4v
Ym9vdC9sb2FkZXIuY29uZjwvZmlsZW5hbWU+IGZhY2lsaXR5LiAgWW91IG1h
eQ0KLQkgIGFsc28gd2lzaCB0byBkaXNhYmxlIG5vbi1lc3NlbnRpYWwgc2Vy
dmljZXMsIGRpc2sgYW5kDQotCSAgbmV0d29yayBtb3VudHMsIGV0Yy4gdW50
aWwgdGhlIHVwZ3JhZGUgcHJvY2VzcyBpcw0KLQkgIGNvbXBsZXRlLjwvcGFy
YT4NCi0gICAgICA8L3dhcm5pbmc+DQorCTx3YXJuaW5nPg0KKwkgIDxwYXJh
PkJlZm9yZSByZWJvb3Rpbmcgd2l0aCB0aGUgPGZpbGVuYW1lPkdFTkVSSUM8
L2ZpbGVuYW1lPg0KKwkgICAga2VybmVsLCBtYWtlIHN1cmUgaXQgY29udGFp
bnMgYWxsIGRyaXZlcnMgcmVxdWlyZWQgZm9yIHlvdXINCisJICAgIHN5c3Rl
bSB0byBib290IHByb3Blcmx5IChhbmQgY29ubmVjdCB0byB0aGUgbmV0d29y
aywgaWYgdGhlDQorCSAgICBtYWNoaW5lIHRoYXQgaXMgYmVpbmcgdXBkYXRl
ZCBpcyBhY2Nlc3NlZCByZW1vdGVseSkuICBJbg0KKwkgICAgcGFydGljdWxh
ciwgaWYgdGhlIHByZXZpb3VzbHkgcnVubmluZyBjdXN0b20ga2VybmVsDQor
CSAgICBjb250YWluZWQgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eSB1c3VhbGx5
IHByb3ZpZGVkIGJ5IGtlcm5lbA0KKwkgICAgbW9kdWxlcywgbWFrZSBzdXJl
IHRvIHRlbXBvcmFyaWx5IGxvYWQgdGhlc2UgbW9kdWxlcyBpbnRvDQorCSAg
ICB0aGUgPGZpbGVuYW1lPkdFTkVSSUM8L2ZpbGVuYW1lPiBrZXJuZWwgdXNp
bmcgdGhlDQorCSAgICA8ZmlsZW5hbWU+L2Jvb3QvbG9hZGVyLmNvbmY8L2Zp
bGVuYW1lPiBmYWNpbGl0eS4gIFlvdSBtYXkNCisJICAgIGFsc28gd2lzaCB0
byBkaXNhYmxlIG5vbi1lc3NlbnRpYWwgc2VydmljZXMsIGRpc2sgYW5kDQor
CSAgICBuZXR3b3JrIG1vdW50cywgZXRjLiB1bnRpbCB0aGUgdXBncmFkZSBw
cm9jZXNzIGlzDQorCSAgICBjb21wbGV0ZS48L3BhcmE+DQorCTwvd2Fybmlu
Zz4NCiANCi0gICAgICA8cGFyYT5UaGUgbWFjaGluZSBzaG91bGQgbm93IGJl
IHJlc3RhcnRlZCB3aXRoIHRoZSB1cGRhdGVkDQotCWtlcm5lbDo8L3BhcmE+
DQorCTxwYXJhPlRoZSBtYWNoaW5lIHNob3VsZCBub3cgYmUgcmVzdGFydGVk
IHdpdGggdGhlIHVwZGF0ZWQNCisJICBrZXJuZWw6PC9wYXJhPg0KIA0KLSAg
ICAgIDxzY3JlZW4+JnByb21wdC5yb290OyA8dXNlcmlucHV0PnNodXRkb3du
IC1yIG5vdzwvdXNlcmlucHV0Pjwvc2NyZWVuPg0KKwk8c2NyZWVuPiZwcm9t
cHQucm9vdDsgPHVzZXJpbnB1dD5zaHV0ZG93biAtciBub3c8L3VzZXJpbnB1
dD48L3NjcmVlbj4NCiANCi0gICAgICA8cGFyYT5PbmNlIHRoZSBzeXN0ZW0g
aGFzIGNvbWUgYmFjayBvbmxpbmUsDQotCTxjb21tYW5kPmZyZWVic2QtdXBk
YXRlPC9jb21tYW5kPiB3aWxsIG5lZWQgdG8gYmUgc3RhcnRlZA0KLQlhZ2Fp
bi4gIFRoZSBzdGF0ZSBvZiB0aGUgcHJvY2VzcyBoYXMgYmVlbiBzYXZlZCBh
bmQgdGh1cywNCi0JPGNvbW1hbmQ+ZnJlZWJzZC11cGRhdGU8L2NvbW1hbmQ+
IHdpbGwgbm90IHN0YXJ0IGZyb20gdGhlDQotCWJlZ2lubmluZywgYnV0IHdp
bGwgcmVtb3ZlIGFsbCBvbGQgc2hhcmVkIGxpYnJhcmllcyBhbmQgb2JqZWN0
DQotCWZpbGVzLiAgVG8gY29udGludWUgdG8gdGhpcyBzdGFnZSwgaXNzdWUg
dGhlIGZvbGxvd2luZw0KLQljb21tYW5kOjwvcGFyYT4NCisJPHBhcmE+T25j
ZSB0aGUgc3lzdGVtIGhhcyBjb21lIGJhY2sgb25saW5lLA0KKwkgIDxjb21t
YW5kPmZyZWVic2QtdXBkYXRlPC9jb21tYW5kPiB3aWxsIG5lZWQgdG8gYmUg
c3RhcnRlZA0KKwkgIGFnYWluLiAgVGhlIHN0YXRlIG9mIHRoZSBwcm9jZXNz
IGhhcyBiZWVuIHNhdmVkIGFuZCB0aHVzLA0KKwkgIDxjb21tYW5kPmZyZWVi
c2QtdXBkYXRlPC9jb21tYW5kPiB3aWxsIG5vdCBzdGFydCBmcm9tIHRoZQ0K
KwkgIGJlZ2lubmluZywgYnV0IHdpbGwgcmVtb3ZlIGFsbCBvbGQgc2hhcmVk
IGxpYnJhcmllcyBhbmQgb2JqZWN0DQorCSAgZmlsZXMuICBUbyBjb250aW51
ZSB0byB0aGlzIHN0YWdlLCBpc3N1ZSB0aGUgZm9sbG93aW5nDQorCSAgY29t
bWFuZDo8L3BhcmE+DQogDQotICAgICAgPHNjcmVlbj4mcHJvbXB0LnJvb3Q7
IDx1c2VyaW5wdXQ+ZnJlZWJzZC11cGRhdGUgaW5zdGFsbDwvdXNlcmlucHV0
Pjwvc2NyZWVuPg0KKwk8c2NyZWVuPiZwcm9tcHQucm9vdDsgPHVzZXJpbnB1
dD5mcmVlYnNkLXVwZGF0ZSBpbnN0YWxsPC91c2VyaW5wdXQ+PC9zY3JlZW4+
DQogDQotICAgICAgPG5vdGU+DQotCTxwYXJhPkRlcGVuZGluZyBvbiB3aGV0
aGVyIGFueSBsaWJyYXJpZXMgdmVyc2lvbiBudW1iZXJzIGdvdA0KLQkgIGJ1
bXBlZCwgdGhlcmUgbWF5IG9ubHkgYmUgdHdvIGluc3RhbGwgcGhhc2VzIGlu
c3RlYWQgb2YNCi0JICB0aHJlZS48L3BhcmE+DQotICAgICAgPC9ub3RlPg0K
Kwk8bm90ZT4NCisJICA8cGFyYT5EZXBlbmRpbmcgb24gd2hldGhlciBhbnkg
bGlicmFyaWVzIHZlcnNpb24gbnVtYmVycyBnb3QNCisJICAgIGJ1bXBlZCwg
dGhlcmUgbWF5IG9ubHkgYmUgdHdvIGluc3RhbGwgcGhhc2VzIGluc3RlYWQg
b2YNCisJICAgIHRocmVlLjwvcGFyYT4NCisJPC9ub3RlPg0KKyAgICAgIDwv
c2VjdDM+DQogDQotICAgICAgPHBhcmE+QWxsIHRoaXJkIHBhcnR5IHNvZnR3
YXJlIHdpbGwgbm93IG5lZWQgdG8gYmUgcmVidWlsdCBhbmQNCi0JcmUtaW5z
dGFsbGVkLiAgVGhpcyBpcyByZXF1aXJlZCBhcyBpbnN0YWxsZWQgc29mdHdh
cmUgbWF5DQotCWRlcGVuZCBvbiBsaWJyYXJpZXMgd2hpY2ggaGF2ZSBiZWVu
IHJlbW92ZWQgZHVyaW5nIHRoZSB1cGdyYWRlDQotCXByb2Nlc3MuICBUaGUN
Ci0JPGZpbGVuYW1lIHJvbGU9InBhY2thZ2UiPnBvcnRzLW1nbXQvcG9ydHVw
Z3JhZGU8L2ZpbGVuYW1lPg0KLQljb21tYW5kIG1heSBiZSB1c2VkIHRvIGF1
dG9tYXRlIHRoaXMgcHJvY2Vzcy4gIFRoZSBmb2xsb3dpbmcNCi0JY29tbWFu
ZHMgbWF5IGJlIHVzZWQgdG8gYmVnaW4gdGhpcyBwcm9jZXNzOjwvcGFyYT4N
CisgICAgICA8c2VjdDMgaWQ9ImZyZWVic2R1cGRhdGUtcG9ydHNyZWJ1aWxk
Ij4NCisJPHRpdGxlPlJlYnVpbGRpbmcgUG9ydHMgQWZ0ZXIgYSBNYWpvciBW
ZXJzaW9uIFVwZ3JhZGU8L3RpdGxlPg0KIA0KLSAgICAgIDxzY3JlZW4+JnBy
b21wdC5yb290OyA8dXNlcmlucHV0PnBvcnR1cGdyYWRlIC1mIHJ1Ynk8L3Vz
ZXJpbnB1dD4NCisJPHBhcmE+QWZ0ZXIgYSBtYWpvciB2ZXJzaW9uIHVwZ3Jh
ZGUsIGFsbCB0aGlyZCBwYXJ0eSBzb2Z0d2FyZSB3aWxsIG5vdyBuZWVkIHRv
IGJlIHJlYnVpbHQgYW5kDQorCSAgcmUtaW5zdGFsbGVkLiAgVGhpcyBpcyBy
ZXF1aXJlZCBhcyBpbnN0YWxsZWQgc29mdHdhcmUgbWF5DQorCSAgZGVwZW5k
IG9uIGxpYnJhcmllcyB3aGljaCBoYXZlIGJlZW4gcmVtb3ZlZCBkdXJpbmcg
dGhlIHVwZ3JhZGUNCisJICBwcm9jZXNzLiAgVGhlDQorCSAgPGZpbGVuYW1l
IHJvbGU9InBhY2thZ2UiPnBvcnRzLW1nbXQvcG9ydHVwZ3JhZGU8L2ZpbGVu
YW1lPg0KKwkgIGNvbW1hbmQgbWF5IGJlIHVzZWQgdG8gYXV0b21hdGUgdGhp
cyBwcm9jZXNzLiAgVGhlIGZvbGxvd2luZw0KKwkgIGNvbW1hbmRzIG1heSBi
ZSB1c2VkIHRvIGJlZ2luIHRoaXMgcHJvY2Vzczo8L3BhcmE+DQorDQorICAg
ICAgICA8c2NyZWVuPiZwcm9tcHQucm9vdDsgPHVzZXJpbnB1dD5wb3J0dXBn
cmFkZSAtZiBydWJ5PC91c2VyaW5wdXQ+DQogJnByb21wdC5yb290OyA8dXNl
cmlucHV0PnJtIC92YXIvZGIvcGtnL3BrZ2RiLmRiPC91c2VyaW5wdXQ+DQog
JnByb21wdC5yb290OyA8dXNlcmlucHV0PnBvcnR1cGdyYWRlIC1mIHJ1Ynkx
OC1iZGI8L3VzZXJpbnB1dD4NCiAmcHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+
cm0gL3Zhci9kYi9wa2cvcGtnZGIuZGIgL3Vzci9wb3J0cy9JTkRFWC0qLmRi
PC91c2VyaW5wdXQ+DQogJnByb21wdC5yb290OyA8dXNlcmlucHV0PnBvcnR1
cGdyYWRlIC1hZjwvdXNlcmlucHV0Pjwvc2NyZWVuPg0KIA0KLSAgICAgIDxw
YXJhPk9uY2UgdGhpcyBoYXMgY29tcGxldGVkLCBmaW5pc2ggdGhlIHVwZ3Jh
ZGUgcHJvY2VzcyB3aXRoIGENCi0JZmluYWwgY2FsbCB0byA8Y29tbWFuZD5m
cmVlYnNkLXVwZGF0ZTwvY29tbWFuZD4uICBJc3N1ZSB0aGUNCi0JZm9sbG93
aW5nIGNvbW1hbmQgdG8gdGllIHVwIGFsbCBsb29zZSBlbmRzIGluIHRoZSB1
cGdyYWRlDQotCXByb2Nlc3M6PC9wYXJhPg0KKyAgICAgICAgPHBhcmE+T25j
ZSB0aGlzIGhhcyBjb21wbGV0ZWQsIGZpbmlzaCB0aGUgdXBncmFkZSBwcm9j
ZXNzIHdpdGggYQ0KKwkgIGZpbmFsIGNhbGwgdG8gPGNvbW1hbmQ+ZnJlZWJz
ZC11cGRhdGU8L2NvbW1hbmQ+LiAgSXNzdWUgdGhlDQorCSAgZm9sbG93aW5n
IGNvbW1hbmQgdG8gdGllIHVwIGFsbCBsb29zZSBlbmRzIGluIHRoZSB1cGdy
YWRlDQorCSAgcHJvY2Vzczo8L3BhcmE+DQogDQotICAgICAgPHNjcmVlbj4m
cHJvbXB0LnJvb3Q7IDx1c2VyaW5wdXQ+ZnJlZWJzZC11cGRhdGUgaW5zdGFs
bDwvdXNlcmlucHV0Pjwvc2NyZWVuPg0KKwk8c2NyZWVuPiZwcm9tcHQucm9v
dDsgPHVzZXJpbnB1dD5mcmVlYnNkLXVwZGF0ZSBpbnN0YWxsPC91c2VyaW5w
dXQ+PC9zY3JlZW4+DQogDQotICAgICAgPHBhcmE+SWYgdGhlIDxmaWxlbmFt
ZT5HRU5FUklDPC9maWxlbmFtZT4ga2VybmVsIHdhcyB0ZW1wb3JhcmlseQ0K
LQl1c2VkLCB0aGlzIGlzIHRoZSB0aW1lIHRvIGJ1aWxkIGFuZCBpbnN0YWxs
IGEgbmV3IGN1c3RvbQ0KLQlrZXJuZWwgaW4gdGhlIHVzdWFsIHdheS48L3Bh
cmE+DQorCTxwYXJhPklmIHRoZSA8ZmlsZW5hbWU+R0VORVJJQzwvZmlsZW5h
bWU+IGtlcm5lbCB3YXMgdGVtcG9yYXJpbHkNCisJICB1c2VkLCB0aGlzIGlz
IHRoZSB0aW1lIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgbmV3IGN1c3RvbQ0K
KwkgIGtlcm5lbCBpbiB0aGUgdXN1YWwgd2F5LjwvcGFyYT4NCiANCi0gICAg
ICA8cGFyYT5SZWJvb3QgdGhlIG1hY2hpbmUgaW50byB0aGUgbmV3ICZvczsg
dmVyc2lvbi4gIFRoZSBwcm9jZXNzDQotCWlzIGNvbXBsZXRlLjwvcGFyYT4N
CisJPHBhcmE+UmVib290IHRoZSBtYWNoaW5lIGludG8gdGhlIG5ldyAmb3M7
IHZlcnNpb24uICBUaGUgcHJvY2Vzcw0KKwkgIGlzIGNvbXBsZXRlLjwvcGFy
YT4NCisgICAgICA8L3NlY3QzPg0KICAgICA8L3NlY3QyPg0KIA0KICAgICA8
c2VjdDIgaWQ9ImZyZWVic2R1cGRhdGUtc3lzdGVtLWNvbXBhcmlzb24iPg0K

--3512871622-1184402412-1358107748=:17568--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1301131304290.17568>