<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>66397</bug_id>
          
          <creation_ts>2004-10-05 02:56 0000</creation_ts>
          <short_desc>Request: Change --with-suexec-parameters in apache-ebuild</short_desc>
          <delta_ts>2007-12-29 07:34:16 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <status_whiteboard>2.0 (Pending), 2.2 (InCVS)</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gentoo@spam.lalamuhkuh.de</reporter>
          <assigned_to>apache-bugs@gentoo.org</assigned_to>
          <cc>calin@ajvar.org</cc>
    
    <cc>david@chanial.com</cc>
    
    <cc>jmanning@alisa-jon.net</cc>
    
    <cc>mal@komcept.com</cc>
    
    <cc>mccarw@lom.med.va.gov</cc>
    
    <cc>mkl@limtec.de</cc>

      

      
          <long_desc isprivate="0">
            <who>gentoo@spam.lalamuhkuh.de</who>
            <bug_when>2004-10-05 02:56:01 0000</bug_when>
            <thetext>Hi!

It&apos;s very anoying that you cannot change some parameters apache is compiled with, e.g. --with-suexec-docroot=/var/www or --with-suexec-logfile.

Is it possible to read values like the prefered documentRoot from an environment variable (e.g. APACHE_DOCROOT defined in make.conf), and only if they are empty use the default path?

PS: Sorry if this isn&apos;t the right place for feature request, i did not found another good place to post this.

Reproducible: Always
Steps to Reproduce:
1. emerge apache
2.
3.

Actual Results:  
After an sync, changes in the apache ebuild are reset.

Expected Results:  
Read those values from a sync-safe place.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>trapni@gentoo.org</who>
            <bug_when>2004-10-06 13:58:51 0000</bug_when>
            <thetext>this is not *that* simple, unfortunately:

according to those configuration-ability to 
apache-{1,2} we already have an active discussion 
on this without a solution yet.

I personally noticed, too, that suexec root bound to
/var/www is really bad, especially since you also may
have doctoos in /home/$USER/www/htdocs as well.

However, a global configuration variable, like 
APACHE_DOCROOT_BASE=&quot;/srv/www&quot;
in /etc/make.conf wouldn&apos;t be that good. Imagine whether 
*all* ebuilds would store global configs in there. If so,
the make.conf would blow up in instantly.

So, I&apos;d be interested in a solution all apache devs 
would agree to.

Greetings,
Christian Parpart.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mccarw@lom.med.va.gov</who>
            <bug_when>2004-10-08 14:09:23 0000</bug_when>
            <thetext>I&apos;m not sure if this fits with with the portage philosophy but...

Would it be possible to have a the ebuild check a user
edited file in net-www/apache, named &apos;build.conf&apos; or 
something that has the variables stored in it.
like
APACHE_DOC_ROOT=/var/www/htdocs
SUEXEC_DOCROOT=/home/
SUEXEC_USERDIR=public_html
SUEXEC_MINGID=1000
etc...

Optionally the ebuild could create the file with defaults
if it didn&apos;t exist.  This would allow the user to install
and update software with emerge maintaining previous 
custom configurations.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@spam.lalamuhkuh.de</who>
            <bug_when>2004-10-08 14:14:10 0000</bug_when>
            <thetext>I think this would be a very nice idea. It could be extended with &quot;per-ebuild customized use-flags&quot; (usefull for updates).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@spam.lalamuhkuh.de</who>
            <bug_when>2004-10-08 17:00:27 0000</bug_when>
            <thetext>Sorry i just saw that the use-flag-feature is already implemented (/etc/portage/packages.use). Forget the last posting :-)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mccarw@lom.med.va.gov</who>
            <bug_when>2004-10-08 21:35:52 0000</bug_when>
            <thetext>Created an attachment (id=41403)
allow conf parameters from file

The problem with USE flags is that it is a little difficult to set
suexec-userdir=www in a USE flag.  At least I have never seen this 
done.  If this is possible I will be happy to amend this attachment
to use USE flags.

The attached ebuild gets suexec config parameters from $FILESDIR/build.conf.  
If file does not exist then it is created with default parameters.  Then 
show the parameters to the installer and sleep for 5 seconds so they
can actually read them.

Again, I am not sure if this is the &quot;portage way&quot;.  And I am not a an
exceptional bash programmer either.  Just trying to get this moving 
so that I don&apos;t have to manually tweak an ebuild every time apache 
is updated.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2004-10-08 23:32:10 0000</bug_when>
            <thetext>Unfortunetly, your changes are very hackish and won&apos;t work. Every time you emerge sync all your changes to build.conf will be lost. And you can&apos;t really put build.conf in other places because of sandbox issues.

That leaves us with 2 possible solutions (that I can think of, and I&apos;ve been brainstorming this for a while) other then managing your own overlay:

Custom environment variables (similiar to how ${USERDIR} works for setting the --with-suexec-userdir option
Though these would have to be put on the command line for every merge, or added into make.conf (?) or /etc/portage/bashrc for it to work with emerge -u world

Another solution I was thinking of is creating a suexec-config utility that would recompile the suexec binary with new defines, so you could configure suexec how you wanted for your system. I&apos;m not even sure if this is doable, but it may be - I&apos;m experimenting now.

apache herd: anyone else have any ideas?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2004-10-08 23:36:05 0000</bug_when>
            <thetext>*** Bug 55603 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@spam.lalamuhkuh.de</who>
            <bug_when>2004-10-09 03:22:19 0000</bug_when>
            <thetext>@6: No i don&apos;t want to put those configuration in use-flags... this was just another problem i had in the past (per-packages use-flags).

Portage uses rsync for synchronisation, right? Why not change portage to use --exclude=build.conf* with rsync or something like this? Then other packages can use this system, too.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mccarw@lom.med.va.gov</who>
            <bug_when>2004-10-09 07:24:07 0000</bug_when>
            <thetext>hmm.  hackish?  probably.

I did realize that sync would remove files that aren&apos;t supposed to be part
of the tree.  That bothers me but there is probably nothing to do about
it now.

ENV variables solve the problem of manually editing files but they aren&apos;t
stored anywhere for updates. 

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gentoo@spam.lalamuhkuh.de</who>
            <bug_when>2004-10-10 14:43:32 0000</bug_when>
            <thetext>As an alternative to changing portage we could store the &quot;build.conf&quot; to /etc/portage/builds/apache(2).conf or something like that.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2004-10-10 14:57:51 0000</bug_when>
            <thetext>@10: It would require changing portage to be able to read a file such as that.

I am working on a suexec-config script that would rebuild /usr/sbin/suexec(2) with the settings you want.

I will post here when I get it to a working point for everyone to test.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mccarw@lom.med.va.gov</who>
            <bug_when>2004-10-11 20:34:47 0000</bug_when>
            <thetext>So you are planning on having to recompile suexec after every upgrade?  How much
different is this from having to tweak ebuilds?

Why does reading /etc/portage/builds/apache(2).conf require changing portage?  It seems to work during my limited testing.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>trapni@gentoo.org</who>
            <bug_when>2004-10-12 01:51:44 0000</bug_when>
            <thetext>suexec needs - in its current form - to be recompiled on 
every change. this is, because the path locations are via 
(preprocessing varables) hardcoded.

however, there&apos;s technically no need to patch portage for 
your proposal, since the ebuild could source the file himself.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2004-10-12 08:55:56 0000</bug_when>
            <thetext>I was mistaken in my understanding of how the portage sandbox works and that why I thought it wouldn&apos;t be able to read a /etc/portage/builds/apache(2).conf file.

I am working on a proof-of-concept suexec-config utility that would allow easy changes to /etc/apache(2)/suexec-build.conf as well as rebuild suexec(2) with those changes. I plan on also modifying the ebuild to use the same settings as defined in suexec-build.conf.

I should have the proof-of-concept done and committed to the apache-herd SVN overlay by the end of the day.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mal@komcept.com</who>
            <bug_when>2005-04-11 15:38:47 0000</bug_when>
            <thetext>Any update on this?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>beu@gentoo.org</who>
            <bug_when>2005-04-23 20:30:59 0000</bug_when>
            <thetext>No clue.  vericgar, what&apos;s the status on this ?

Resolving LATER, this is something that can be done after the updated stuff goes stable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2005-05-24 17:46:36 0000</bug_when>
            <thetext>This is on my TODO after apache settles down (not sure on that status, been away
a bit becuase I just moved). I am considering making it an eclectic module, but
I&apos;m still undecided on that.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2005-08-25 21:11:59 0000</bug_when>
            <thetext>*** Bug 103695 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2005-12-10 20:19:20 0000</bug_when>
            <thetext>Reopening this so that I don&apos;t forget about it again....</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chtekk@gentoo.org</who>
            <bug_when>2005-12-11 02:52:21 0000</bug_when>
            <thetext>I&apos;d like to remind you of bug 103695, where I attached working patches to do
exactly this, now I don&apos;t remember why it was closed, but I think they could be
used w/o problems and aren&apos;t too invasive in their approach either.
Best regards, CHTEKK.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>david@chanial.com</who>
            <bug_when>2006-06-08 08:27:01 0000</bug_when>
            <thetext>Everytime i compile apache, i say in my head &quot;i have to overlay and maintain manually this ebuild&quot;.

We can also make as busybox do :, read in the /etc/${PN}/${CHOST}/${conf}.config so it would be easy to make an idea as :

echo &apos;DOCUMENT_ROOT=&quot;/home&quot;&apos;&gt;&gt;/etc/apache/i686-pc-linux-gnu/apache.env.conf
emerge -av &apos;=apache-2.0*&apos;

no ?
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>david@chanial.com</who>
            <bug_when>2006-06-08 08:29:11 0000</bug_when>
            <thetext>or just a simply, as another package which i don&apos;t remember name, read an env var to configure apache instead gentoo default (if env var not empty)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2006-06-08 08:34:45 0000</bug_when>
            <thetext>That is what suexec-config does, but also allows reconfiguring after the package is compiled.

And since it seems I forgot to mention in this bug before, apache 2.2.2 has full suexec-config support and could use some testing. See bug 114232 for more information on apache 2.2.2.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mal@komcept.com</who>
            <bug_when>2006-06-08 09:14:07 0000</bug_when>
            <thetext>Does that mean suexec-config won&apos;t be added to apache-2.0 ?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vericgar@gentoo.org</who>
            <bug_when>2006-06-08 17:58:24 0000</bug_when>
            <thetext>(In reply to comment #24)
&gt; Does that mean suexec-config won&apos;t be added to apache-2.0 ?
&gt; 

It will be eventually, but it needs a lot of testing under 2.2 first.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>david@chanial.com</who>
            <bug_when>2006-06-09 00:38:55 0000</bug_when>
            <thetext>&gt; suexec-config needs a lot of testing under 2.2 first.

Ok but this bug exist since 2005, december. a &quot;lot of testing&quot; take some month too.

I understand that a simple envvar is not a good solution, but is it better than the overlay solution.

i hope, and i think that many other &quot;admins&quot;, that while the tests are performed on suexec-config, you make the envvar.

with many warning if necessary, but please, add this envvar.


Best regards,</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chtekk@gentoo.org</who>
            <bug_when>2006-06-09 05:39:55 0000</bug_when>
            <thetext>No, we won&apos;t now add an envvar just because, and then remove it later... Use 2.2 to get suexec-config if you want this functionality, test it, report bugs, if it works etc... And if you need it on 1.3, wait... On 2.0 it hasn&apos;t much sense imo as 2.2 works very well and is not unstable or broken, it just lacks some testing.
Conclusion:
For now, use 2.2 or modify your ebuilds as you did before.
If you need it on 1.3/2.0, wait and help us test suexec-config on 2.2.
Best regards, CHTEKK.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>bugzilla.gentoo.simon@arlott.org</who>
            <bug_when>2007-02-28 22:38:36 0000</bug_when>
            <thetext>mod_suphp does not work right with 2.2.4.

This bug was started in 2004, plenty of other ebuilds have env vars in them and there is no reason for the 1.3.x/2.0.x ebuilds to have one too. It&apos;s really annoying to have suexec break because I don&apos;t want to use /var/www/.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>bugzilla.gentoo.simon@arlott.org</who>
            <bug_when>2007-02-28 22:40:10 0000</bug_when>
            <thetext>(er, *not* to have one too)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2007-05-28 14:29:10 0000</bug_when>
            <thetext>The current apache-2.2.4-r4 has the new SUEXEC_ environment variables (as proposed by Luca in #103695) in it. They default to a sane values, but you are able to overwrite by either configuring them in your /etc/make.conf, or your current shell.

(In reply to comment #28)
&gt; mod_suphp does not work right with 2.2.4.
&gt; 
&gt; This bug was started in 2004, plenty of other ebuilds have env vars in them and
&gt; there is no reason for the 1.3.x/2.0.x ebuilds to have one too. It&apos;s really
&gt; annoying to have suexec break because I don&apos;t want to use /var/www/.

I&apos;ll see if I can backport most of the chances within the next few weeks, I won&apos;t make any promises.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>phreak@gentoo.org</who>
            <bug_when>2007-06-15 15:36:11 0000</bug_when>
            <thetext>(In reply to comment #30)
&gt; I&apos;ll see if I can backport most of the chances within the next few weeks, I
&gt; won&apos;t make any promises.

Looks like I&apos;m not going to backport the stuff.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>troy@dublan.net</who>
            <bug_when>2007-12-29 07:34:16 0000</bug_when>
            <thetext>Thanks so much for suexec environment variables!  It has taken away the fear that I always had that I&apos;d forget something while upgrading Apache.  ...And I&apos;d always forget to hack the ebuild to change the suexec parameters.   Now they&apos;re set in my make.conf file.  Now I can emerge -uD world in peace!  :)</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41403</attachid>
            <date>2004-10-08 21:35 0000</date>
            <desc>allow conf parameters from file</desc>
            <filename>apache-2.0.51-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L25ldC13d3cvYXBhY2hlL2FwYWNoZS0yLjAuNTEt
cjEuZWJ1aWxkLHYgMS4xMCAyMDA0LzEwLzAzIDIxOjU1OjM4IHN3ZWdlbmVyIEV4cCAkCgppbmhl
cml0IGZsYWctby1tYXRpYyBldXRpbHMgZml4aGVhZHRhaWxzIGdudWNvbmZpZwoKUEFUQ0hfTEVW
RUw9IiR7UFZ9IgpTPSIke1dPUktESVJ9L2h0dHBkLSR7UFZ9IgpERVNDUklQVElPTj0iQXBhY2hl
IFdlYiBTZXJ2ZXIsIFZlcnNpb24gMi4wLngiCkhPTUVQQUdFPSJodHRwOi8vd3d3LmFwYWNoZS5v
cmcvIgpTUkNfVVJJPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9odHRwZC9odHRwZC0ke1BW
fS50YXIuZ3oKCWh0dHA6Ly9kZXYuZ2VudG9vLm9yZy9+c3R1YXJ0L2FwYWNoZS9hcGFjaGUtcGF0
Y2hlcy0ke1BWUn0udGFyLmJ6MiIKCkxJQ0VOU0U9IkFwYWNoZS0yLjAiClNMT1Q9IjIiCktFWVdP
UkRTPSJhbHBoYSBhbWQ2NCBhcm0gaHBwYSBpYTY0IG1pcHMgcHBjIH5wcGM2NCBzMzkwIHNwYXJj
IHg4NiIKSVVTRT0iYmVya2RiIGdkYm0gbGRhcCB0aHJlYWRzIGlwdjYgZG9jIHN0YXRpYyBzc2wi
CgojU3RhbmRhcmQgbG9jYXRpb24gZm9yIEdlbnRvbyBMaW51eApEQVRBRElSPSIvdmFyL3d3dy9s
b2NhbGhvc3QiCgpERVBFTkQ9ImRldi11dGlsL3lhY2MKCWRldi1sYW5nL3BlcmwKCXN5cy1saWJz
L3psaWIKCWRldi1saWJzL2V4cGF0CglkZXYtbGlicy9vcGVuc3NsCgk+PXN5cy1hcHBzL3NlZC00
Cgk+PXN5cy1kZXZlbC9hdXRvY29uZi0yLjU5LXI0CgliZXJrZGI/ICggc3lzLWxpYnMvZGIgKQoJ
Z2RibT8gKCBzeXMtbGlicy9nZGJtICkKCSFtaXBzPyAoIGxkYXA/ICggPW5ldC1uZHMvb3Blbmxk
YXAtMiogKSApCglzZWxpbnV4PyAoIHNlYy1wb2xpY3kvc2VsaW51eC1hcGFjaGUgKSIKCkFQQUNI
RV9CVUlMRF9DT05GPSR7RklMRVNESVJ9L2J1aWxkLmNvbmYKCmFwYWNoZV9zZXR1cF92YXJzKCkg
ewoJIyBTZXRzIHRoZSBVU0VSRElSIHRvIGRlZmF1bHQuCglpZiBbIC1mICRBUEFDSEVfQlVJTERf
Q09ORiBdOyB0aGVuCgkgICBlY2hvICJjb25maWd1cmF0aW9uIGZpbGUgZm91bmQiCgllbHNlCgkg
ICBlY2hvICJEQVRBRElSPS92YXIvd3d3L2xvY2FsaG9zdCIgPiAkQVBBQ0hFX0JVSUxEX0NPTkYK
CSAgIGVjaG8gIlNVRVhFQ19TQUZFUEFUSD0vdXNyL2xvY2FsL2JpbjovdXNyL2JpbjovYmluIiA+
PiAkQVBBQ0hFX0JVSUxEX0NPTkYKCSAgIGVjaG8gIlNVRVhFQ19MT0dGSUxFPS92YXIvbG9nL2Fw
YWNoZTIvc3VleGVjX2xvZyIgPj4gJEFQQUNIRV9CVUlMRF9DT05GCgkgICBlY2hvICJTVUVYRUNf
VVNFUkRJUj1wdWJsaWNfaHRtbCIgPj4gJEFQQUNIRV9CVUlMRF9DT05GCgkgICBlY2hvICJTVUVY
RUNfQ0FMTEVSPWFwYWNoZSIgPj4gJEFQQUNIRV9CVUlMRF9DT05GCgkgICBlY2hvICJTVUVYRUNf
RE9DUk9PVD0vaG9tZSIgPj4gJEFQQUNIRV9CVUlMRF9DT05GCgkgICBlY2hvICJTVUVYRUNfVUlE
TUlOPTEwMDAiID4+ICRBUEFDSEVfQlVJTERfQ09ORgoJICAgZWNobyAiU1VFWEVDX0dJRE1JTj0x
MDAiID4+ICRBUEFDSEVfQlVJTERfQ09ORgogICAgICAgIGZpCgoJc291cmNlICRGSUxFU0RJUi9i
dWlsZC5jb25mICAgCgoJZWNobyAiIgoJZWNobyAiIgoJZWNobyAiPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0iCgllY2hvICIiCgllY2hvICIiCgllY2hvICIgICAg
ICAgICAgICAgQ09ORklHVVJBVElPTiBTRVRUSU5HUyAgIgoJZWNobyAiICAgbW9kaWZ5ICAkQVBB
Q0hFX0JVSUxEX0NPTkYgIHRvIHVwZGF0ZSBjb25maWd1cmF0aW9uICIKCWVjaG8gIiIKCWVjaG8g
IiIKCWNhdCAkQVBBQ0hFX0JVSUxEX0NPTkYKCWVjaG8gIiIKCWVjaG8gIiIKCWVjaG8gIj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IgoJZWNobyAiIgoJZWNobyAi
IgoJCglzbGVlcCA1Cn0KCnNldF9maWx0ZXJfZmxhZ3MgKCkgewoJQ0ZMQUdTPSIke0NGTEFHUy8g
IC8gfSIKCWhhc192ZXJzaW9uID1zeXMtbGlicy9nbGliYy0yLjIqICYmIGZpbHRlci1mbGFncyAt
RF9GSUxFX09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UKfQoKc3JjX3VucGFjaygp
IHsKCXNldF9maWx0ZXJfZmxhZ3MKCgl1bnBhY2sgJHtBfSB8fCBkaWUKCWNkICR7U30gfHwgZGll
CgoJIyB3aGljaCBtdXBwZXQgZGVjaWRlZCB0aGF0IGVwYXRjaCB3b3VsZCBkZWZhdWx0IHRvIGFw
cGx5aW5nIGNvbXByZXNzZWQKCSMgcGF0Y2hlcz8KCiAgICAgICAgYXBhY2hlX3NldHVwX3ZhcnMK
CglFUEFUQ0hfU1VGRklYPSJwYXRjaCIKCWVwYXRjaCAke1dPUktESVJ9L2FwYWNoZS1wYXRjaGVz
LSR7UFZSfSB8fCBkaWUKCglpZiB1c2UgYmVya2RiOyB0aGVuCgkJZWluZm8gIkVuYWJsaW5nIGJl
cmtkYi4iCgkJaWYgaGFzX3ZlcnNpb24gJz1zeXMtbGlicy9kYi00Kic7IHRoZW4KCQkJZWluZm8g
IkVuYWJsaW5nIGRiNCIKCQkJbXljb25mPSIke215Y29uZn0gLS13aXRoLWRibT1kYjQgLS13aXRo
LWJlcmtlbHktZGI9L3VzciIKCQllbGlmIGhhc192ZXJzaW9uICc9c3lzLWxpYnMvZGItMyonOyB0
aGVuCgkJCWVpbmZvICJFbmFibGluZyBkYjMiCgkJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1k
Ym09ZGIzIC0td2l0aC1iZXJrZWx5LWRiPS91c3IiCgkJZWxpZiBoYXNfdmVyc2lvbiAnPXN5cy1s
aWJzL2RiLTInOyB0aGVuCgkJCWVpbmZvICJFbmFibGluZyBkYjIiCgkJCW15Y29uZj0iJHtteWNv
bmZ9IC0td2l0aC1kYm09ZGIyIC0td2l0aC1iZXJrZWx5LWRiPS91c3IiCgkJZmkKCWVsc2UKCQll
Y2hvICJEaXNhYmxpbmcgYmVya2RiIgoJZmkKCgkjYXZvaWQgdXRmLTggY2hhcnNldCBwcm9ibGVt
cwoJZXhwb3J0IExDX0NUWVBFPUMKCglodF9maXhfZmlsZSBzcmNsaWIvYXByL2J1aWxkL2J1aWxk
Y2hlY2suc2gKCgkjZ2l2ZSBpdCB0aGUgc3RhbXAKCXNlZCAtaSAtZSAnczooIiBQTEFURk9STSAi
KTooR2VudG9vL0xpbnV4KTpnJyBzZXJ2ZXIvY29yZS5jCgoJI2ZpeCBwZXJsIHdpdGggcGVybCEK
CWZpbmQgLXR5cGUgZiB8IHhhcmdzIHBlcmwgLXBpIC1lIFwKCQkic3wvdXNyL2xvY2FsL2Jpbi9w
ZXJsfC91c3IvYmluL3Blcmx8ZzsgXAoJCXN8L3Vzci9sb2NhbC9iaW4vcGVybDV8L3Vzci9iaW4v
cGVybHxnOyBcCgkJc3wvcGF0aC90by9iaW4vcGVybHwvdXNyL2Jpbi9wZXJsfGc7IgoJI2RvbnQg
d2FudCB0aGlzIGNydWZ0IGluIC91c3IvYmluCglzZWQgLWkgLWUgJ3M6QGV4cF9iaW5kaXJAOkBl
eHBfaW5zdGFsbGJ1aWxkZGlyOmcnIHN1cHBvcnQvYXBhY2hlY3RsLmluCgoJI3NldHVwIHRoZSBm
aWxlc3lzdGVtIGxheW91dCBjb25maWcKCWNhdCAke0ZJTEVTRElSfS9jb21tb24vY29uZmlnLmxh
eW91dCA+PiBjb25maWcubGF5b3V0CglzZWQgLWkgLWUgJ3M6dmVyc2lvbjoke1BGfTpnJyBjb25m
aWcubGF5b3V0CgoJY2F0ICR7RklMRVNESVJ9L2NvbW1vbi9hcHItY29uZmlnLmxheW91dCA+PiBz
cmNsaWIvYXByL2NvbmZpZy5sYXlvdXQKCWNhdCAke0ZJTEVTRElSfS9jb21tb24vYXByLXV0aWwt
Y29uZmlnLmxheW91dCA+PiBzcmNsaWIvYXByLXV0aWwvY29uZmlnLmxheW91dAoKCXNlZCAtaSAt
ZSAiczovdmFyL3d3dy9sb2NhbGhvc3Q6JHtEQVRBRElSfTpnIiBzcmNsaWIvYXByL2NvbmZpZy5s
YXlvdXQKCXNlZCAtaSAtZSAiczovdmFyL3d3dy9sb2NhbGhvc3Q6JHtEQVRBRElSfTpnIiBzcmNs
aWIvYXByLXV0aWwvY29uZmlnLmxheW91dAoKCVdBTlRfQVVUT0NPTkZfMl81PTEgV0FOVF9BVVRP
Q09ORj0yLjUgLi9idWlsZGNvbmYgfHwgZGllICJidWlsZGNvbmYgZmFpbGVkIgp9CgpzcmNfY29t
cGlsZSgpIHsKCXNldF9maWx0ZXJfZmxhZ3MKCgkjIERldGVjdCBtaXBzIGFuZCB1Y2xpYmMgc3lz
dGVtcyBwcm9wZXJseQoJZ251Y29uZmlnX3VwZGF0ZQoKCWxvY2FsIG15Y29uZgoJaWYgdXNlIGxk
YXA7IHRoZW4KCQlpZiB1c2UgbWlwczsgdGhlbgoJCQllZXJyb3IgIlNvcnJ5LCBMREFQIHN1cHBv
cnQgaXNuJ3QgYXZhaWxhYmxlIHlldCBmb3IgTUlQUyIKCQkJZWVycm9yICJUZXN0IG91dCBPcGVu
TERBUCBhbmQgcmVwb3J0IGl0IHZpYSBCdWdaaWxsYSEiCgkJCWVlcnJvciAiQ29udGludWluZyBp
biA1IHNlY29uZHMiCgkJCXNsZWVwIDVzCgkJZWxzZQoJCQllaW5mbyAiRW5hYmxpbmcgTERBUCIK
CQkJaWYgdXNlIHN0YXRpYzsgdGhlbgoJCQkgIG15Y29uZj0iLS13aXRoLWxkYXAgLS1lbmFibGUt
YXV0aC1sZGFwPXN0YXRpYyAtLWVuYWJsZS1sZGFwPXN0YXRpYyIKCQkJZWxzZQoJCQkgIG15Y29u
Zj0iLS13aXRoLWxkYXAgLS1lbmFibGUtYXV0aC1sZGFwPXNoYXJlZCAtLWVuYWJsZS1sZGFwPXNo
YXJlZCIKCQkJZmkKCQlmaQoJZmkKCglpZiB1c2UgaXB2NjsgdGhlbgoJCWVpbmZvICJFbmFibGlu
ZyBpcHY2IgoJCW15Y29uZj0iJHtteWNvbmZ9IC0tZW5hYmxlLXZwNCIKCWVsc2UKCQlteWNvbmY9
IiR7bXljb25mfSAtLWRpc2FibGUtaXB2NiIKCWZpCgoJaWYgdXNlIHRocmVhZHM7IHRoZW4KCQll
aW5mbyAiRW5hYmxpbmcgdGhyZWFkcyBzdXBwb3J0IgoJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0
aC1tcG09d29ya2VyIgoJZWxzZQoJCW15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1tcG09JHtNUE06
PXByZWZvcmt9IgoJZmkKCglzZWxlY3RfbW9kdWxlc19jb25maWcgfHwgZGllICJkZXRlcm1pbmlu
ZyBtb2R1bGVzIgoKCSMgRml4IGZvciBidWcgIzI0MjE1IC0gcm9iYmF0MkBnZW50b28ub3JnLCAz
MCBPY3QgMjAwMwoJIyBXZSBwcmUtbG9hZCB0aGUgY2FjaGUgd2l0aCB0aGUgY29ycmVjdCBhbnN3
ZXIhICBUaGlzIGF2b2lkcwoJIyBpdCB2aW9sYXRpbmcgdGhlIHNhbmRib3guICBUaGlzIG1heSBo
YXZlIHRvIGJlIGNoYW5nZWQgZm9yCgkjIG5vbi1MaW51eCBzeXN0ZW1zIG9yIGlmIHNlbV9vcGVu
IGNoYW5nZXMgb24gTGludXguICBUaGlzCgkjIGhhY2sgaXMgYnVpbHQgYXJvdW5kIGRvY3VtZW50
YXRpb24gaW4gL3Vzci9pbmNsdWRlL3NlbWFwaG9yZS5oCgkjIGFuZCB0aGUgZ2xpYmMgKHB0aHJl
YWQpIHNvdXJjZQoJZWNobyAnYWNfY3ZfZnVuY19zZW1fb3Blbj0ke2FjX2N2X2Z1bmNfc2VtX29w
ZW49bm99JyA+PiAke1N9L2NvbmZpZy5jYWNoZQoKCSMgV29ya2Fyb3VuZCBmb3IgYnVnICMzMjQ0
NCAtIHJvYmJhdDJAZ2VudG9vLm9yZywgMjggTm92IDIwMDMKCSMgQXBhY2hlMiB0cmllcyB0byBi
dWlsZCBTQ1RQIHN1cHBvcnQgZXZlbiB3aGVuIGFsbCB0aGUgcGFydHMgb2YgaXQgYXJlbid0IHRo
ZXJlCgkjIFNvIGZvciB0aGUgbW9tZW50IHdlIHRlbGwgaXQgdG8gaWdub3JlIFNDVFAgc3VwcG9y
dAoJZWNobyAnYWNfY3Zfc2N0cD0ke2FjX2N2X3NjdHA9bm99JyA+PiAke1N9L2NvbmZpZy5jYWNo
ZQoJZWNobyAnYWNfY3ZfaGVhZGVyX25ldGluZXRfc2N0cF9oPSR7YWNfY3ZfaGVhZGVyX25ldGlu
ZXRfc2N0cF9oPW5vfScgPj4gJHtTfS9jb25maWcuY2FjaGUKCWVjaG8gJ2FjX2N2X2hlYWRlcl9u
ZXRpbmV0X3NjdHBfdWlvX2g9JHthY19jdl9oZWFkZXJfbmV0aW5ldF9zY3RwX3Vpb19oPW5vfScg
Pj4gJHtTfS9jb25maWcuY2FjaGUKCglTU0xfQkFTRT0iU1lTVEVNIiBcCglXQU5UX0FVVE9DT05G
XzJfNT0xIFdBTlRfQVVUT0NPTkY9Mi41CgkuL2NvbmZpZ3VyZSBcCgkJLS13aXRoLXN1ZXhlYy1z
YWZlcGF0aD0ke1NVRVhFQ19TQUZFUEFUSH0gXAoJCS0td2l0aC1zdWV4ZWMtbG9nZmlsZT0ke1NV
RVhFQ19MT0dGSUxFfSBcCgkJLS13aXRoLXN1ZXhlYy1iaW49L3Vzci9zYmluL3N1ZXhlYzIgXAoJ
CS0td2l0aC1zdWV4ZWMtdXNlcmRpcj0ke1NVRVhFQ19VU0VSRElSfSBcCgkJLS13aXRoLXN1ZXhl
Yy1jYWxsZXI9JHtTVUVYRUNfQ0FMTEVSfSBcCgkJLS13aXRoLXN1ZXhlYy1kb2Nyb290PSR7U1VF
WEVDX0RPQ1JPT1R9IFwKCQktLXdpdGgtc3VleGVjLXVpZG1pbj0ke1NVRVhFQ19VSURNSU59IFwK
CQktLXdpdGgtc3VleGVjLWdpZG1pbj0ke1NVRVhFQ19HSURNSU59IFwKCQktLXdpdGgtc3VleGVj
LXVtYXNrPTA3NyBcCgkJLS1lbmFibGUtc3VleGVjPXNoYXJlZCBcCgkJXAoJCSR7TVlfQlVJTFRJ
TlN9IFwKCQlcCgkJLS1jYWNoZS1maWxlPSR7U30vY29uZmlnLmNhY2hlIFwKCQktLXdpdGgtcGVy
bD0vdXNyL2Jpbi9wZXJsIFwKCQktLXdpdGgtZXhwYXQ9L3VzciBcCgkJLS13aXRoLXNzbD0vdXNy
IFwKCQktLXdpdGgtej0vdXNyIFwKCQktLXdpdGgtcG9ydD04MCBcCgkJLS1lbmFibGUtbGF5b3V0
PUdlbnRvbyBcCgkJLS13aXRoLXByb2dyYW0tbmFtZT1hcGFjaGUyIFwKCQktLXdpdGgtZGV2cmFu
ZG9tPS9kZXYvdXJhbmRvbSBcCgkJLS1ob3N0PSR7Q0hPU1R9ICR7bXljb25mfSB8fCBkaWUgImJh
ZCAuL2NvbmZpZ3VyZSBwbGVhc2Ugc3VibWl0IGJ1ZyByZXBvcnQgdG8gYnVncy5nZW50b28ub3Jn
LiBJbmNsdWRlIHlvdXIgY29uZmlnLmxheW91dC4iCgkJIy0td2l0aC1tcG09e3dvcmtlcnxwcmVm
b3JrfHBlcmNoaWxkfGxlYWRlcnx0aHJlYWRwb29sfQoKCSMgd2UgZG9uJ3Qgd2FudCB0byB0cnkg
YW5kIHJlY29tcGlsZSB0aGUgc3NsX2V4cHJfcGFyc2UuYyBmaWxlLCBiZWNhdXNlCgkjIHRoZSBs
ZXggc291cmNlIGlzIGJyb2tlbgoJdG91Y2ggbW9kdWxlcy9zc2wvc3NsX2V4cHJfc2Nhbi5jCgoJ
ZW1ha2UgfHwgZGllICJwcm9ibGVtIGNvbXBpbGluZyBBcGFjaGUyIDooIgoKCSNidWlsZCBzc2wg
dmVyc2lvbiBvZiBhcGFjaGUgYmVuY2ggKGFiLXNzbCkKCWNkIHN1cHBvcnQ7IHJtIC1mIGFiIC5s
aWJzL2FiIGFiLmxvIGFiLm8KCW1ha2UgYWIgQ0ZMQUdTPSIke0NGTEFHU30gLURVU0VfU1NMIC1s
Y3J5cHRvIC1sc3NsIFwKCQktSS91c3IvaW5jbHVkZS9vcGVuc3NsIC1ML3Vzci9saWIiIHx8IGRp
ZQoJbXYgYWIgYWItc3NsOyBtdiAubGlicy9hYiAubGlicy9hYi1zc2w7IHJtIC1mIGFiLmxvIGFi
Lm8KCW1ha2UgYWIgfHwgZGllCn0KCnNyY19pbnN0YWxsICgpIHsKCXNldF9maWx0ZXJfZmxhZ3MK
Cglsb2NhbCBpCgltYWtlIERFU1RESVI9JHtEfSBpbnN0YWxsIHx8IGRpZQoJZG9kb2MgQUJPVVRf
QVBBQ0hFIENIQU5HRVMgSU5TVEFMTCBMQVlPVVQgXAoJCUxJQ0VOU0UgUkVBRE1FKiAke0ZJTEVT
RElSfS9yb2JvdHMudHh0CgoJI2JvZ3VzIHZhbHVlcyBwb2ludGluZyBhdCAvdmFyL3RtcC9wb3J0
YWdlCglzZWQgLWkgLWUgJ3M6QVBSX1NPVVJDRV9ESVI9Lio6QVBSX1NPVVJDRV9ESVI9OmcnICR7
RH0vdXNyL2Jpbi9hcHItY29uZmlnCglzZWQgLWkgLWUgJ3M6QVBVX1NPVVJDRV9ESVI9Lio6QVBV
X1NPVVJDRV9ESVI9OmcnICR7RH0vdXNyL2Jpbi9hcHUtY29uZmlnCglzZWQgLWkgLWUgJ3M6QVBV
X0JVSUxEX0RJUj0uKjpBUFVfQlVJTERfRElSPTpnJyAke0R9L3Vzci9iaW4vYXB1LWNvbmZpZwoK
CSNwcm90ZWN0IHRoZSBzdWV4ZWMgYmluYXJ5Cglsb2NhbCBnaWQ9YGlkIC1nIGFwYWNoZWAKCVsg
LXogIiR7Z2lkfSIgXSAmJiBnaWQ9ODEKCWZvd25lcnMgcm9vdDoke2dpZH0gL3Vzci9zYmluL3N1
ZXhlYwoJZnBlcm1zIDQ3MTAgL3Vzci9zYmluL3N1ZXhlYwoKCSNhcHhzIG5lZWRzIHRoaXMgdG8g
cGlja3VwIHRoZSByaWdodCBsaWIgZm9yIGluc3RhbGwKCWRvc3ltIC91c3IvbGliIC91c3IvbGli
L2FwYWNoZTIvbGliCglkb3N5bSAvdmFyL2xvZy9hcGFjaGUyIC91c3IvbGliL2FwYWNoZTIvbG9n
cwoJZG9zeW0gL3Vzci9saWIvYXBhY2hlMi1leHRyYW1vZHVsZXMgL3Vzci9saWIvYXBhY2hlMi9l
eHRyYW1vZHVsZXMKCWRvc3ltIC9ldGMvYXBhY2hlMi9jb25mIC91c3IvbGliL2FwYWNoZTIvY29u
ZgoKCWNkICR7U30KCSNDcmVkaXRzIHRvIGFkdngub3JnIHBlb3BsZSBmb3IgdGhlc2Ugc2NyaXB0
cy4gSGVjaywgdGhhbmtzIGZvcgoJI3RoZSBuaWNlIGxheW91dCBhbmQgZXZlcnl0aGluZyBlbHNl
IDstKQoJZXhlaW50byAvdXNyL3NiaW4KCWZvciBpIGluIGFwYWNoZTJsb2dzZXJ2ZXJzdGF0dXMg
YXBhY2hlMnNwbGl0bG9nZmlsZQoJZG8KCQlkb2V4ZSAke0ZJTEVTRElSfS8yLjAuNDkvJGkKCWRv
bmUKCWV4ZWludG8gL3Vzci9saWIvc3NsL2FwYWNoZTItbW9kX3NzbAoJZG9leGUgJHtGSUxFU0RJ
Un0vMi4wLjQ5L2dlbnRlc3RjcnQuc2gKCgkjc29tZSBtb3JlIHNjcmlwdHMKCWV4ZWludG8gL3Vz
ci9zYmluCglmb3IgaSBpbiBzcGxpdC1sb2dmaWxlIGxpc3RfaG9va3MucGwgbG9ncmVzb2x2ZS5w
bCBsb2dfc2VydmVyX3N0YXR1cwoJZG8KCQlkb2V4ZSAke1N9L3N1cHBvcnQvJGkKCWRvbmUKCSN0
aGUgc3NsIHZlcnNpb24gb2YgYXBhY2hlIGJlbmNoCglkb2V4ZSBzdXBwb3J0Ly5saWJzL2FiLXNz
bAoKCSNtb3ZlIHNvbWUgbW9kcyB0byBleHRyYW1vZHVsZXMKCWRvZGlyIC91c3IvbGliL2FwYWNo
ZTItZXh0cmFtb2R1bGVzCglmb3IgaSBpbiBtb2Rfc3NsLnNvIG1vZF9sZGFwLnNvIG1vZF9hdXRo
X2xkYXAuc28KCWRvCgkJWyAteCAke0R9L3Vzci9saWIvYXBhY2hlMi9tb2R1bGVzLyRpIF0gJiYg
XAoJCW12ICR7RH0vdXNyL2xpYi9hcGFjaGUyL21vZHVsZXMvJGkgJHtEfS91c3IvbGliL2FwYWNo
ZTItZXh0cmFtb2R1bGVzCglkb25lCgoJI21vZHVsZXMuZCBjb25maWcgZmlsZSBzbmlwcGV0cwoJ
aW5zaW50byAvZXRjL2FwYWNoZTIvY29uZi9tb2R1bGVzLmQKCWZvciBpIGluIDQwX21vZF9zc2wu
Y29uZiA0MV9tb2Rfc3NsLmRlZmF1bHQtdmhvc3QuY29uZiA0NV9tb2RfZGF2LmNvbmYKCWRvCgkJ
ZG9pbnMgJHtGSUxFU0RJUn0vMi4wLjQ5LyRpCglkb25lCgl1c2UgIW1pcHMgJiYgdXNlIGxkYXAg
JiYgZG9pbnMgJHtGSUxFU0RJUn0vMi4wLjQ5LzQ2X21vZF9sZGFwLmNvbmYKCgkjZHJvcCBpbiBh
IGNvbnZlbmllbnQgbGluayB0byB0aGUgbWFudWFsCglpZiB1c2UgZG9jOyB0aGVuCgkJTUFOVUFM
X1ZFUlNJT049IjIuMC41MCIKCQlpbnNpbnRvIC9ldGMvYXBhY2hlMi9jb25mL21vZHVsZXMuZAoJ
CWRvaW5zICR7RklMRVNESVJ9LzAwX2FwYWNoZV9tYW51YWwuY29uZgoJCWRvc3ltIC91c3Ivc2hh
cmUvZG9jLyR7UEZ9L21hbnVhbCAke0RBVEFESVJ9L2h0ZG9jcy9tYW51YWwKCQlzZWQgLWkgLWUg
InM6Mi4wLjQ5OiR7TUFOVUFMX1ZFUlNJT059OiIgJHtEfS9ldGMvYXBhY2hlMi9jb25mL21vZHVs
ZXMuZC8wMF9hcGFjaGVfbWFudWFsLmNvbmYKCQllbHNlCgkJcm0gLXJmICR7RH0vdXNyL3NoYXJl
L2RvYy8ke1BGfS9tYW51YWwKCWZpCgoJI1NMT1Q9MiEhIQoJY2QgJHtEfQoJbXYgLXYgdXNyL3Ni
aW4vYXBhY2hlY3RsIHVzci9zYmluL2FwYWNoZTJjdGwKCW12IC12IHVzci9zYmluL2h0ZGlnZXN0
IHVzci9zYmluL2h0ZGlnZXN0MgoJbXYgLXYgdXNyL3NiaW4vaHRwYXNzd2QgdXNyL3NiaW4vaHRw
YXNzd2QyCgltdiAtdiB1c3Ivc2Jpbi9sb2dyZXNvbHZlIHVzci9zYmluL2xvZ3Jlc29sdmUyCglt
diAtdiB1c3Ivc2Jpbi9hcHhzIHVzci9zYmluL2FweHMyCgltdiAtdiB1c3Ivc2Jpbi9hYiB1c3Iv
c2Jpbi9hYjIKCW12IC12IHVzci9zYmluL2FiLXNzbCB1c3Ivc2Jpbi9hYjItc3NsCgltdiAtdiB1
c3Ivc2Jpbi9zdWV4ZWMgdXNyL3NiaW4vc3VleGVjMgoJbXYgLXYgdXNyL3NiaW4vcm90YXRlbG9n
cyB1c3Ivc2Jpbi9yb3RhdGVsb2dzMgoJbXYgLXYgdXNyL3NiaW4vZGJtbWFuYWdlIHVzci9zYmlu
L2RibW1hbmFnZTIKCW12IC12IHVzci9zYmluL2NoZWNrZ2lkIHVzci9zYmluL2NoZWNrZ2lkMgoJ
bXYgLXYgdXNyL3NiaW4vc3BsaXQtbG9nZmlsZSB1c3Ivc2Jpbi9zcGxpdC1sb2dmaWxlMgoJbXYg
LXYgdXNyL3NiaW4vbGlzdF9ob29rcy5wbCB1c3Ivc2Jpbi9saXN0X2hvb2tzMi5wbAoJbXYgLXYg
dXNyL3NiaW4vbG9ncmVzb2x2ZS5wbCB1c3Ivc2Jpbi9sb2dyZXNvbHZlMi5wbAoKCSMgZG8gdGhl
IG1hbiBwYWdlcwoJbXYgLXYgdXNyL3NoYXJlL21hbi9tYW4xL2h0ZGlnZXN0LjEgdXNyL3NoYXJl
L21hbi9tYW4xL2h0ZGlnZXN0Mi4xCgltdiAtdiB1c3Ivc2hhcmUvbWFuL21hbjEvaHRwYXNzd2Qu
MSB1c3Ivc2hhcmUvbWFuL21hbjEvaHRwYXNzd2QyLjEKCW12IC12IHVzci9zaGFyZS9tYW4vbWFu
MS9kYm1tYW5hZ2UuMSB1c3Ivc2hhcmUvbWFuL21hbjEvZGJtbWFuYWdlMi4xCgltdiAtdiB1c3Iv
c2hhcmUvbWFuL21hbjgvYWIuOCB1c3Ivc2hhcmUvbWFuL21hbjgvYWIyLjgKCW12IC12IHVzci9z
aGFyZS9tYW4vbWFuOC9hcHhzLjggdXNyL3NoYXJlL21hbi9tYW44L2FweHMyLjgKCW12IC12IHVz
ci9zaGFyZS9tYW4vbWFuOC9hcGFjaGVjdGwuOCB1c3Ivc2hhcmUvbWFuL21hbjgvYXBhY2hlMmN0
bC44CgltdiAtdiB1c3Ivc2hhcmUvbWFuL21hbjgvaHR0cGQuOCB1c3Ivc2hhcmUvbWFuL21hbjgv
YXBhY2hlMi44CgltdiAtdiB1c3Ivc2hhcmUvbWFuL21hbjgvbG9ncmVzb2x2ZS44IHVzci9zaGFy
ZS9tYW4vbWFuOC9sb2dyZXNvbHZlMi44CgltdiAtdiB1c3Ivc2hhcmUvbWFuL21hbjgvcm90YXRl
bG9ncy44IHVzci9zaGFyZS9tYW4vbWFuOC9yb3RhdGVsb2dzMi44CgltdiAtdiB1c3Ivc2hhcmUv
bWFuL21hbjgvc3VleGVjLjggdXNyL3NoYXJlL21hbi9tYW44L3N1ZXhlYzIuOAoKCSN0aWR5IHVw
CgltdiAke0R9L3Vzci9zYmluL2VudnZhcnMqICR7RH0vdXNyL2xpYi9hcGFjaGUyL2J1aWxkCglk
b2RvYyAke0R9L2V0Yy9hcGFjaGUyL2NvbmYvKi1zdGQuY29uZgoJcm0gLWYgJHtEfS9ldGMvYXBh
Y2hlMi9jb25mLyouY29uZgoJcm0gLXJmICR7RH0vdmFyL3J1biAke0R9L3Zhci9sb2cKCgkjY29u
ZmlnIGZpbGVzCglpbnNpbnRvIC9ldGMvY29uZi5kOyBuZXdpbnMgJHtGSUxFU0RJUn0vMi4wLjQ5
L2FwYWNoZTIuY29uZmQgYXBhY2hlMgoJZXhlaW50byAvZXRjL2luaXQuZDsgbmV3ZXhlICR7RklM
RVNESVJ9LzIuMC40OS9hcGFjaGUyLmluaXRkIGFwYWNoZTIKCWluc2ludG8gL2V0Yy9hcGFjaGUy
OyBkb2lucyAke0ZJTEVTRElSfS8yLjAuNDkvYXBhY2hlMi1idWlsdGluLW1vZHMKCWluc2ludG8g
L2V0Yy9hcGFjaGUyL2NvbmYKCWRvaW5zICR7RklMRVNESVJ9LzIuMC40OS9jb21tb25hcGFjaGUy
LmNvbmYKCWRvaW5zICR7RklMRVNESVJ9LzIuMC40OS9hcGFjaGUyLmNvbmYKCWluc2ludG8gL2V0
Yy9hcGFjaGUyL2NvbmYvdmhvc3RzCglkb2lucyAke0ZJTEVTRElSfS8yLjAuNDkvdmlydHVhbC1o
b21lcGFnZXMuY29uZgoJZG9pbnMgJHtGSUxFU0RJUn0vMi4wLjQ5L2R5bmFtaWMtdmhvc3RzLmNv
bmYKCWRvaW5zICR7RklMRVNESVJ9LzIuMC40OS92aG9zdHMuY29uZgoKCSMgQWRkZWQgYnkgSmFz
b24gV2V2ZXIgPHdlZXZlQGdlbnRvby5vcmc+CgkjIEEgbGl0dGxlIHNlZGZ1IHRvIGZpeCBidWcg
IzcxNzIgZm9yIHNwYXJjNjRzCglpZiBbICR7QVJDSH0gPSAic3BhcmMiIF0KCXRoZW4KCQlzZWQg
LWkgLWUgJzEzYVxBY2NlcHRNdXRleCBmY250bCcgXAoJCQkke0R9L2V0Yy9hcGFjaGUyL2NvbmYv
YXBhY2hlMi5jb25mCglmaQp9CgpwYXJzZV9tb2R1bGVzX2NvbmZpZygpIHsKCXNldF9maWx0ZXJf
ZmxhZ3MKCglsb2NhbCBmaWxlbmFtZT0kMQoJbG9jYWwgbmFtZT0iIgoJbG9jYWwgZHNvPSIiCgls
b2NhbCBkaXNhYmxlPSIiCglbIC1mICR7ZmlsZW5hbWV9IF0gfHwgcmV0dXJuIDEKCWZvciBpIGlu
IGBjYXQgJGZpbGVuYW1lIHwgc2VkICJzL14jLiovLyJgIDsgZG8KCQlpZiBbICRpID09ICItIiBd
IDsgdGhlbgoJCQlkaXNhYmxlPSJ0cnVlIgoJCWVsaWYgWyAteiAiJG5hbWUiIF0gJiYgWyAhIC16
ICJgZWNobyAkaSB8IGdyZXAgIm1vZF8iYCIgXSA7IHRoZW4KCQkJbmFtZT1gZWNobyAkaSB8IHNl
ZCAicy9tb2RfLy8iYAoJCWVsaWYgWyAiJGRpc2FibGUiIF0gJiYgKCBbICRpID09ICJzdGF0aWMi
IF0gfHwgWyAkaSA9PSAic2hhcmVkIiBdICkgOyB0aGVuCgkJCU1ZX0JVSUxUSU5TPSIke01ZX0JV
SUxUSU5TfSAtLWRpc2FibGUtJG5hbWUiCgkJCW5hbWU9IiIgOyBkaXNhYmxlPSIiCgkJZWxpZiBb
ICRpID09ICJzdGF0aWMiIF0gOyB0aGVuCgkJCU1ZX0JVSUxUSU5TPSIke01ZX0JVSUxUSU5TfSAt
LWVuYWJsZS0kbmFtZT15ZXMiCgkJCW5hbWU9IiIgOyBkaXNhYmxlPSIiCgkJZWxpZiBbICRpID09
ICJzaGFyZWQiIF0gOyB0aGVuCgkJCU1ZX0JVSUxUSU5TPSIke01ZX0JVSUxUSU5TfSAtLWVuYWJs
ZS0kbmFtZT1zaGFyZWQiCgkJCW5hbWU9IiIgOyBkaXNhYmxlPSIiCgkJZmkKCWRvbmUKCWVpbmZv
ICIke2ZpbGVuYW1lfSBvcHRpb25zOlxuJHtNWV9CVUlMVElOU30iCn0KCnNlbGVjdF9tb2R1bGVz
X2NvbmZpZygpIHsKCXBhcnNlX21vZHVsZXNfY29uZmlnIC9ldGMvYXBhY2hlMi9hcGFjaGUyLWJ1
aWx0aW4tbW9kcyB8fCBcCglwYXJzZV9tb2R1bGVzX2NvbmZpZyAke0ZJTEVTRElSfS8yLjAuNDkv
YXBhY2hlMi1idWlsdGluLW1vZHMgfHwgXAoJcmV0dXJuIDEKfQoKcGtnX3Bvc3RpbnN0KCkgewoJ
c2V0X2ZpbHRlcl9mbGFncwoKCSNlbXB0eSBkaXJzLi4uCglpbnN0YWxsIC1kIC1tMDc1NSAtbyBh
cGFjaGUgLWcgYXBhY2hlICR7Uk9PVH0vdmFyL2xpYi9kYXYKCWluc3RhbGwgLWQgLW0wNzU1IC1v
IHJvb3QgLWcgcm9vdCAke1JPT1R9L3Zhci9sb2cvYXBhY2hlMgoJaW5zdGFsbCAtZCAtbTA3NTUg
LW8gYXBhY2hlIC1nIGFwYWNoZSAke1JPT1R9L3Zhci9jYWNoZS9hcGFjaGUyCgoJaWYgdXNlIHNz
bDsgdGhlbgoJIwlpbnN0YWxsIC1kIC1tMDc1NSAtbyByb290IC1nIHJvb3QgJHtST09UfS9ldGMv
YXBhY2hlMi9jb25mL3NzbAoJaW5zdGFsbCAtZCAtbTA3NTUgLW8gcm9vdCAtZyByb290ICR7Uk9P
VH0vZXRjL2FwYWNoZTIvY29uZi9zc2wKCQljZCAke1JPT1R9L2V0Yy9hcGFjaGUyL2NvbmYvc3Ns
CgkJZWluZm8KCQllaW5mbyAiR2VuZXJhdGluZyBzZWxmLXNpZ25lZCB0ZXN0IGNlcnRpZmljYXRl
IGluIC9ldGMvYXBhY2hlMi9jb25mL3NzbC4uLiIKCQl5ZXMgIiIgMj4vZGV2L251bGwgfCAke1JP
T1R9L3Vzci9saWIvc3NsL2FwYWNoZTItbW9kX3NzbC9nZW50ZXN0Y3J0LnNoID4vZGV2L251bGwg
Mj4mMQoJCWVpbmZvCglmaQoKCWlmIGhhc192ZXJzaW9uICc9bmV0LXd3dy9hcGFjaGUtMSonIDsg
dGhlbgoJZXdhcm4KCWV3YXJuICJQbGVhc2UgYWRkIHRoZSAnYXBhY2hlMicgZmxhZyB0byB5b3Vy
IFVTRSB2YXJpYWJsZSBhbmQgKHJlKWluc3RhbGwiCglld2FybiAiYW55IGFkZGl0aW9uYWwgRFNP
IG1vZHVsZXMgeW91IG1heSB3aXNoIHRvIHVzZSB3aXRoIEFwYWNoZS0yLnguIgoJZXdhcm4gIkFk
ZG9uIG1vZHVsZXMgYXJlIGNvbmZpZ3VyZWQgaW4gL2V0Yy9hcGFjaGUyL2NvbmYvbW9kdWxlcy5k
LyIKCWV3YXJuCglmaQoKCSMgQ2hlY2sgdG8gc2VlIGlmIHRoaXMgaXMgYW4gdXBncmFkZQoJaWYg
WyAtZCAvaG9tZS9odHRwZCBdOwoJdGhlbgoJZWluZm8KCWVpbmZvICJQbGVhc2UgcmVtZW1iZXIg
dG8gdXBkYXRlIHlvdXIgY29uZmlnIGZpbGVzIGluIC9ldGMvYXBhY2hlMiIKCWVpbmZvICJhcyAt
LWRhdGFkaXIgaGFzIGJlZW4gY2hhbmdlZCB0byAke0RBVEFESVJ9LCBhbmQgU2VydmVyUm9vdCIK
CWVpbmZvICJoYXMgY2hhbmdlZCB0byAvdXNyL2xpYi9hcGFjaGUyISIKCWVpbmZvCglmaQoKCWxv
Y2FsIGxpc3Q9IiIKCWZvciBpIGluIGxpYiBsb2dzIG1vZHVsZXMgZXh0cmFtb2R1bGVzOyBkbwoJ
CWxvY2FsIGQ9Ii9ldGMvYXBhY2hlMi8ke2l9IgoJCVsgLXMgIiR7ZH0iIF0gJiYgbGlzdD0iJHts
aXN0fSAke2R9IgoJZG9uZQoJaWYgWyAtbiAiJHtsaXN0fSIgXTsgdGhlbgoJCWVpbmZvICJZb3Ug
c2hvdWxkIGRlbGV0ZSB0aGVzZSBvbGQgc3ltbGlua3M6ICR7bGlzdH0iCglmaQp9Cg==
</data>        

          </attachment>
    </bug>

</bugzilla>