<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>43949</bug_id>
          
          <creation_ts>2010-08-12 22:26:31 -0700</creation_ts>
          <short_desc>Add support for MathML entities</short_desc>
          <delta_ts>2012-04-16 12:51:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43595</dependson>
    
    <dependson>44036</dependson>
          <blocked>84012</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mark</cc>
    
    <cc>sausset</cc>
    
    <cc>tony</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yaar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264175</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 22:26:31 -0700</bug_when>
    <thetext>+++ This bug was initially created as a clone of Bug #43595 +++

Add support for MathML entities

The original bug got spammed, so making a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264177</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 22:26:52 -0700</bug_when>
    <thetext>*** Bug 43595 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264179</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 22:30:46 -0700</bug_when>
    <thetext>@mmentovai: My gyp changes in the previous patch were partial and wrong.  I just copied the gperf rule and modified it, so any typos you saw were also in the gperf rule. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264181</commentid>
    <comment_count>3</comment_count>
      <attachid>64303</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 22:33:15 -0700</bug_when>
    <thetext>Created attachment 64303
Now with all build systems including HTMLEntitySearch.*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264189</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-12 23:00:37 -0700</bug_when>
    <thetext>Attachment 64303 did not build on mac:
Build output: http://queues.webkit.org/results/3754101</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264404</commentid>
    <comment_count>5</comment_count>
      <attachid>64303</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-13 09:24:46 -0700</bug_when>
    <thetext>Comment on attachment 64303
Now with all build systems including HTMLEntitySearch.*

WebKitTools/ChangeLog:12
 +                patch will not build!  OOPS!
Maybe remove this note?

WebCore/html/HTMLEntityParser.cpp:35
 +  #include &quot;HTMLEntityNames.cpp&quot;
How does this still compile?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264407</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 09:35:08 -0700</bug_when>
    <thetext>Bah.  You mean we need the old entity code for the xml code?!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264463</commentid>
    <comment_count>7</comment_count>
      <attachid>64363</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 12:26:52 -0700</bug_when>
    <thetext>Created attachment 64363
Now should compile for everyone except chromium and possibly tiger</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264465</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 12:30:54 -0700</bug_when>
    <thetext>Hmm... my patches are having the same trouble on win-ews.  I think this is a svn-apply regression. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264467</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 12:33:57 -0700</bug_when>
    <thetext>Attachment 64363 did not build on mac:
Build output: http://queues.webkit.org/results/3757134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264500</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 14:24:00 -0700</bug_when>
    <thetext>Odd.  It seems to build both debug and release on my machine.  Maybe a SL vs. Leopard difference.  Maybe I forgot to do a clean build locally?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264504</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-13 14:38:12 -0700</bug_when>
    <thetext>I bet the generated file was left over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264509</commentid>
    <comment_count>12</comment_count>
      <attachid>64377</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 14:57:01 -0700</bug_when>
    <thetext>Created attachment 64377
Now should compile for everyone</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264512</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 15:06:21 -0700</bug_when>
    <thetext>Attachment 64377 did not build on mac:
Build output: http://queues.webkit.org/results/3712146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264513</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 15:12:44 -0700</bug_when>
    <thetext>Doing a clean build to see if I can figure out what&apos;s wrong with Mac.  If that doesn&apos;t fix it, I&apos;ll poke the ews bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264521</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 15:46:40 -0700</bug_when>
    <thetext>Clean build worked locally.  I&apos;ll poke the EWS bot...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264530</commentid>
    <comment_count>16</comment_count>
      <attachid>64384</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 16:01:19 -0700</bug_when>
    <thetext>Created attachment 64384
Fixed mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264533</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 16:15:13 -0700</bug_when>
    <thetext>This looks ready to land.  We&apos;ll fix any Tiger/Chromium breakage after landing if necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264585</commentid>
    <comment_count>18</comment_count>
      <attachid>64384</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 19:01:13 -0700</bug_when>
    <thetext>Comment on attachment 64384
Fixed mac build

Since Adam wrote the patch, I guess I&apos;m supposed to r+ it.

The code looks great.  Lets hope I did the build system integration right. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264599</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 20:18:39 -0700</bug_when>
    <thetext>Committed r65351: &lt;http://trac.webkit.org/changeset/65351&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264605</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 20:26:33 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65351 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264606</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 20:29:13 -0700</bug_when>
    <thetext>Committed r65352: &lt;http://trac.webkit.org/changeset/65352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264607</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 20:32:32 -0700</bug_when>
    <thetext>Committed r65353: &lt;http://trac.webkit.org/changeset/65353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264609</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-13 21:11:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65353 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264627</commentid>
    <comment_count>24</comment_count>
      <attachid>64407</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 22:38:22 -0700</bug_when>
    <thetext>Created attachment 64407
Patch to fix cr-win builder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264628</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 22:39:01 -0700</bug_when>
    <thetext>I would have landed this manually, except I have other stuff in my tree which would make me need a full rebuild. :p</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264640</commentid>
    <comment_count>26</comment_count>
      <attachid>64407</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-13 23:45:05 -0700</bug_when>
    <thetext>Comment on attachment 64407
Patch to fix cr-win builder

Clearing flags on attachment: 64407

Committed r65359: &lt;http://trac.webkit.org/changeset/65359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264641</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-13 23:45:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264647</commentid>
    <comment_count>28</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-14 00:18:34 -0700</bug_when>
    <thetext>Committed r65360: &lt;http://trac.webkit.org/changeset/65360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264654</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-14 00:55:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65360 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264841</commentid>
    <comment_count>30</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-08-15 10:55:24 -0700</bug_when>
    <thetext>I&apos;m still having trouble building Chromium/TestShell after http://trac.webkit.org/changeset/65351 (which removed HTMLEntityNames.gperf, even with http://trac.webkit.org/changeset/65353.  WebKit/chromium/src/WebEntities.cpp still includes HTMLEntityNames.cpp, and uses the Entity struct from it:

http://trac.webkit.org/browser/trunk/WebKit/chromium/src/WebEntities.cpp#L50</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264843</commentid>
    <comment_count>31</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-15 11:02:40 -0700</bug_when>
    <thetext>Yup.  I could see how that would break.

We&apos;ll need to re-write WebEntities.cpp.  That code looks wrong.

Why would chromium even need this code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264845</commentid>
    <comment_count>32</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-15 11:05:56 -0700</bug_when>
    <thetext>The easy fix is to restore the HTMLEntityNames.cpp generation code for chromium only.

The code as-written is wrong for HTML5.  But someone from chromium who understands this code will have to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264848</commentid>
    <comment_count>33</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-15 11:11:09 -0700</bug_when>
    <thetext>I suspect the WebEntities stuff is part of Chromiums broken hacks around markup.cpp.  iirc, Chromium does its own dom serialization outside of WebCore.  Which is super-wrong.  The correct fix is to fix markup.cpp to work as Chromium needs it to.

But someone who knows what this code is for should comment.  I&apos;ll see if I can sketch up a patch to fix the build break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264849</commentid>
    <comment_count>34</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-08-15 11:12:21 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Why would chromium even need this code?

Looks like it was added for http://trac.webkit.org/changeset/52268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264851</commentid>
    <comment_count>35</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-15 11:15:44 -0700</bug_when>
    <thetext>&gt; The easy fix is to restore the HTMLEntityNames.cpp generation code for chromium only.

I don&apos;t think that&apos;s the right fix.  The minimal thing we should do is move this code over to using HTMLEntityTable.  A better fix would be to move this logic into WebCore, where it belongs, and make it correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264852</commentid>
    <comment_count>36</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-15 11:18:37 -0700</bug_when>
    <thetext>The logic appears to be trying to build a reverse lookup map for the entity table.

markup.cpp only escapes a few entities, not all of the HTML ones like Chromium seems to.  I&apos;m not sure why they would want to escape all possible entities, that would not end up looking like the original source. :)

Honestly this code is just horribly wrong, and I think we should try not to touch it.  We should retore their build and let someone else fix the wrongness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264853</commentid>
    <comment_count>37</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-15 11:22:45 -0700</bug_when>
    <thetext>&gt; The logic appears to be trying to build a reverse lookup map for the entity table.

Right, which is easy to do from HTMLEntityTable.

&gt; Honestly this code is just horribly wrong, and I think we should try not to touch it.  We should retore their build and let someone else fix the wrongness.

It seems very bad to have two out-of-sync lists of all the entities.  Surely that&apos;s not a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264863</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-15 12:40:31 -0700</bug_when>
    <thetext>Yes, but this is clearly already an out-of-sync list.  Between markup.cpp and this code.  Why Chromium has chosen this arbitrary subset of HTML entities to replace when creating markup from a DOM is unclear.  Why they have an explicit blacklist instead of a whitelist is also unclear.  Moving them to the new list of entities will have a behavior change they may or may not want.  Again, completely unclear from this code what they want.

Either path forward is fine.  My gut would say just restore the old broken behavior to fix their compile.  We could also write new broken code for them.  But that sounds like more work which seems silly to do since this whole approach/architecture/code-location seems wrong. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415831</commentid>
    <comment_count>39</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2011-06-06 07:45:03 -0700</bug_when>
    <thetext>I don&apos;t know if it is the right place to report the problem, but a unit test for MathJax detected the following problems with these Webkit-based browsers (on Windows 7):

Safari 5.0.5: &amp;lang; and &amp;rang; are not converted to the new values.
Chrome 11.0.696.71: &amp;notinE; and &amp;notindot; are converted to ¬inE; and ¬indot;

Maybe it&apos;s fixed in development versions, but I just wanted to inform Webkit&apos;s developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415994</commentid>
    <comment_count>40</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-06 14:12:45 -0700</bug_when>
    <thetext>Please report new issues in new bugs. I have a few quick comments however.

&gt; Safari 5.0.5: &amp;lang; and &amp;rang; are not converted to the new values.

This was a reckless incompatible spec change. We can update to the new mapping once it&apos;s implemented in other browsers, but not just because of a spec change.

&gt; Chrome 11.0.696.71: &amp;notinE; and &amp;notindot; are converted to ¬inE; and ¬indot;

This is something we need to add support for (please file a new bug). Note this is correct parsing for an engine that doesn&apos;t support these character references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416010</commentid>
    <comment_count>41</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2011-06-06 14:34:41 -0700</bug_when>
    <thetext>(In reply to comment #40)
&gt; Please report new issues in new bugs. I have a few quick comments however.

I didn&apos;t know if this should be dealt in Webkit or if it specific to each browser. So I preferred to leave a comment here rather than opening duplicated or misclassified bugs.

&gt; 
&gt; &gt; Safari 5.0.5: &amp;lang; and &amp;rang; are not converted to the new values.
&gt; 
&gt; This was a reckless incompatible spec change. We can update to the new mapping once it&apos;s implemented in other browsers, but not just because of a spec change.

It&apos;s already in stable versions of Chrome and Firefox, at least (I don&apos;t know for the other browsers).

&gt; 
&gt; &gt; Chrome 11.0.696.71: &amp;notinE; and &amp;notindot; are converted to ¬inE; and ¬indot;
&gt; 
&gt; This is something we need to add support for (please file a new bug). Note this is correct parsing for an engine that doesn&apos;t support these character references.

OK. Again, should I report this in Webkit bugzilla or is it best to do that in a dedicated place for Chrome?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416060</commentid>
    <comment_count>42</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-06 15:21:54 -0700</bug_when>
    <thetext>&gt; OK. Again, should I report this in Webkit bugzilla or is it best to do that in a dedicated place for Chrome?

WebKit please.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416581</commentid>
    <comment_count>43</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-07 09:57:16 -0700</bug_when>
    <thetext>&gt; It&apos;s already in stable versions of Chrome and Firefox, at least (I don&apos;t know for the other browsers).

If Chrome has updated, then the change is probably in mainline WebKit - I don&apos;t think that this is something they customize. Please test with a nightly build from http://nightly.webkit.org or with Safari 5.1 developer preview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417932</commentid>
    <comment_count>44</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2011-06-09 03:11:42 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; &gt; It&apos;s already in stable versions of Chrome and Firefox, at least (I don&apos;t know for the other browsers).
&gt; 
&gt; If Chrome has updated, then the change is probably in mainline WebKit - I don&apos;t think that this is something they customize. Please test with a nightly build from http://nightly.webkit.org or with Safari 5.1 developer preview.

I just tested with a nightly build. The entities lang and rang are still mapped to the former values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418091</commentid>
    <comment_count>45</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-09 10:36:13 -0700</bug_when>
    <thetext>&gt; I just tested with a nightly build. The entities lang and rang are still mapped to the former values.

The entities are stored here:

http://trac.webkit.org/browser/trunk/Source/WebCore/html/parser/HTMLEntityNames.in

They should be the same for all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418098</commentid>
    <comment_count>46</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-09 10:43:32 -0700</bug_when>
    <thetext>In any case, please file a new bug (in this Bugzilla).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603358</commentid>
    <comment_count>47</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2012-04-16 12:51:37 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; &gt; I just tested with a nightly build. The entities lang and rang are still mapped to the former values.
&gt; 
&gt; The entities are stored here:
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/html/parser/HTMLEntityNames.in
&gt; 
&gt; They should be the same for all ports.

I just tested again with the latest release of Safari and lang and rang are now mapped to the new entities.

Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64303</attachid>
            <date>2010-08-12 22:33:15 -0700</date>
            <delta_ts>2010-08-13 12:26:38 -0700</delta_ts>
            <desc>Now with all build systems including HTMLEntitySearch.*</desc>
            <filename>bug-43949-20100812223309.patch</filename>
            <type>text/plain</type>
            <size>49239</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTVhNjJmNjA5YzI4OWUzZjI1ZTMzN2YxNThkZTVkYjAxMzljZjgwLi5lOTdkNjNi
ODk0NDZkY2NmZDdiM2M3YjYxNGQ2MWQ1YjAxMjIwYTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0
aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk0OQorCisgICAgICAgIFRlc3QgcHJvZ3Jlc3Npb24gZm9yIHByb3BlciBlbnRpdHkg
c3VwcG9ydC4KKworICAgICAgICAqIGh0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQ6
CisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wOC0xMiAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGxh
bmRpbmcgZ29vZ2xlLWNocm9tZSBsaW51eCA2NCB0ZXN0IHJlc3VsdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAppbmRleCAyZWIwMWI0Y2JmOGFh
NzYyMzg0YWI1ODEwZjJmMThmNzk5YTI1ZGNmLi44NGM3MjE3NGZkY2UxYmU1M2QxNjhkYTY4MjY2
ZWQyOTIzNGE5ODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQtaHRtbDUudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC1odG1sNS50eHQKQEAgLTExOCw5MiArMTE4LDEwIEBAIHJlc291cmNlcy9kb2N0eXBlMDEuZGF0
OiBQQVNTCiAKIHJlc291cmNlcy9zY3JpcHRkYXRhMDEuZGF0OiBQQVNTCiAKLXJlc291cmNlcy9o
dG1sNXRlc3QtY29tLmRhdDoKLTcKLTkKLTEwCi0xMQotCi1UZXN0IDcgb2YgMjQgaW4gcmVzb3Vy
Y2VzL2h0bWw1dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbGFuZzsmcmFuZzsKLUdvdDoK
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi44CI44CJIgotRXhwZWN0
ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKfqOKfqSIKLQot
VGVzdCA5IG9mIDI0IGluIHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0
OgotJkltYWdpbmFyeUk7Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgIiZJbWFnaW5hcnlJOyIKLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgICLihYgiCi0KLVRlc3QgMTAgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mS29wZjsKLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJktvcGY7IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIvCdlYIiCityZXNvdXJjZXMvaHRtbDV0ZXN0
LWNvbS5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNv
bS5kYXQgZmFpbGVkLiBJbnB1dDoKLSZub3RpbnZhOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICImbm90aW52YTsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oiJIgotcmVzb3VyY2VzL2VudGl0aWVzMDEu
ZGF0OgotMgotNQotCi1UZXN0IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci1GT08mZ3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICAiRk9PJmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgIkZPTz5CQVIiCityZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQ6
IFBBU1MKIAotVGVzdCA1IG9mIDY4IGluIHJlc291cmNlcy9lbnRpdGllczAxLmRhdCBmYWlsZWQu
IElucHV0OgotSSdtICZub3RpdDsgSSB0ZWxsIHlvdQotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gJm5vdGl0OyBJIHRlbGwgeW91IgotRXhwZWN0ZWQ6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIkknbSDCrGl0OyBJIHRl
bGwgeW91IgogcmVzb3VyY2VzL2VudGl0aWVzMDIuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9jb21t
ZW50czAxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQK
aW5kZXggOGE4ZjdiZTM4YzY2ZTMxZjdkNWM5MWVhYTg5YjVmODM4ZmEzYTJhOS4uYzlhZTI0NTQ4
MGQ0OWZmNTAyZjcwMzA3MTJjMjRiOGMzMDU1ZTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CkBAIC0xOTEsOTIgKzE5MSwxMCBAQCByZXNvdXJjZXMvZG9jdHlw
ZTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2NyaXB0ZGF0YTAxLmRhdDogUEFTUwogCi1yZXNv
dXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQ6Ci03Ci05Ci0xMAotMTEKLQotVGVzdCA3IG9mIDI0IGlu
IHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJmxhbmc7JnJhbmc7
Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuOAiOOAiSIK
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLin6ji
n6kiCi0KLVRlc3QgOSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQgZmFpbGVk
LiBJbnB1dDoKLSZJbWFnaW5hcnlJOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgICImSW1hZ2luYXJ5STsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oWIIgotCi1UZXN0IDEwIG9mIDI0IGluIHJlc291cmNl
cy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJktvcGY7Ci1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZLb3BmOyIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLwnZWCIgorcmVzb3VyY2VzL2h0
bWw1dGVzdC1jb20uZGF0OiBQQVNTCiAKLVRlc3QgMTEgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbm90aW52YTsKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJm5vdGludmE7IgotRXhwZWN0ZWQ6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKIiSIKLXJlc291cmNlcy9lbnRp
dGllczAxLmRhdDoKLTIKLTUKK3Jlc291cmNlcy9lbnRpdGllczAxLmRhdDogUEFTUwogCi1UZXN0
IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci1GT08m
Z3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiRk9P
Jmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIkZPTz5CQVIiCi0KLVRlc3QgNSBvZiA2OCBpbiByZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQg
ZmFpbGVkLiBJbnB1dDoKLUknbSAmbm90aXQ7IEkgdGVsbCB5b3UKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiSSdtICZub3RpdDsgSSB0ZWxsIHlvdSIKLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gwqxp
dDsgSSB0ZWxsIHlvdSIKIHJlc291cmNlcy9lbnRpdGllczAyLmRhdDogUEFTUwogCiByZXNvdXJj
ZXMvY29tbWVudHMwMS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFjNjRmNjZmYzVlZjMzZDU3YzQyMmJm
MjZkMWM0N2I3MTZjMmQxNjguLjA0MTM0ZDI1Mzc4ODk0ZTdjNmRjYjMyYTljNzAxZDJhMTIzZGQ3
OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTczLDYgKzk3Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL0hUTUxEb2N1bWVudC5jcHAKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTEVsZW1lbnRTdGFjay5jcHAKKyAgICBodG1sL0hUTUxFbnRpdHlTZWFyY2guY3BwCiAgICAg
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNzYwOGU4ZWVmZTBm
NjNjYjgxZGQ5NWQwYjg5OWVlOGJjYzUwODcuLjI2YjgzYjk2M2FmNDFjZGUyMmVjMWI0NzZjMTIy
NWE5OTdhNjg0NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDgtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0OQorCisgICAgICAgIEltcGxlbWVu
dGluZyB0aGUgSFRNTDUgZW50aXR5IHBhcnNpbmcgYWxnb3JpdGhtIHJlcXVpcmUgcmVmYWN0b3Jp
bmcgaG93CisgICAgICAgIHdlIHNlYXJjaCBmb3IgZW50aXR5IG5hbWVzLiAgSW5zdGVhZCBvZiB1
c2luZyBhIHBlcmZlY3QgaGFzaCwgd2Ugbm93CisgICAgICAgIHVzZSBhIHNvcnRlZCBsaXN0LiAg
QXMgd2UgYWR2YW5jZSB0aHJvdWdoIHRoZSBpbnB1dCwgd2Ugd2FsayBkb3duIGEKKyAgICAgICAg
YmluYXJ5IHNlYXJjaCBvZiB0aGUgdGFibGUgbG9va2luZyBmb3IgYW4gZW50aXR5LgorCisgICAg
ICAgIFVzaW5nIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgbGV0cyB1cyBrZWVwIHRyYWNrIG9mIHdoZXRo
ZXIgdGhlIGN1cnJlbnQKKyAgICAgICAgc3RyaW5nIGlzIGEgcHJlZml4IG9mIGFuIGV4aXN0aW5n
IGVudGl0eSwgd2hpY2ggd2UgbmVlZCBmb3IgdGhlCisgICAgICAgIGFsZ29yaXRobS4gIEluIGEg
ZnV0dXJlIHBhdGNoLCBJIHBsYW4gdG8gYWRkIHNvbWUgaW5kaWNlcyB0byB0aGUKKyAgICAgICAg
dGFibGUsIHdoaWNoIHNob3VsZCBsZXQgdXMgbmFycm93IGRvd24gdGhlIHJhbmdlIG9mIGludGVy
ZXN0aW5nIGVudHJpZXMKKyAgICAgICAgbW9yZSBxdWlja2x5LgorCisgICAgICAgIFRoZSBvbmUg
bmFzdHkgcGllY2Ugb2YgdGhlIGFsZ29yaXRobSBpcyBpZiB3ZSB3YWxrIHRvbyBmYXIgZG93biB0
aGUKKyAgICAgICAgaW5wdXQgYW5kIHdlIG5lZWQgdG8gYmFjayB1cCB0byBhIHByZXZpb3VzIG1h
dGNoLiAgSW4gdGhpcyBwYXRjaCwgd2UKKyAgICAgICAgYWNjb21wbGlzaCB0aGlzIGJ5IHJld2lu
ZGluZyB0aGUgaW5wdXQgYW5kIGNvbnN1bWluZyBhIGtub3duIG51bWJlciBvZgorICAgICAgICBj
aGFyYWN0ZXJzIHRvIHJlc3luYyB0aGUgc291cmNlLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lSFRNTEVudGl0eSk6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5U2VhcmNoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVudGl0eVNlYXJjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpjb21wYXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW50aXR5U2VhcmNoOjpmaW5kRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmFkdmFuY2UpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVNlYXJjaC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmlzRW50aXR5UHJlZml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpsYXN0TWF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVudGl0eVNlYXJjaDo6KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmZhaWwpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVRhYmxlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVRhYmxlRW50cnk6Omxhc3RDaGFyYWN0ZXIpOgorCiAy
MDEwLTA4LTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzdjMmYxMGQzM2Y4
ZGJkOTIzOGRiYjRlMjQ1ZmVlYzM5YjZjOWVkZi4uYzVkZGZmOWVhYjJiZDdhMTBjMmE1YzQ3NGJk
YTU2N2E1YThjMWI0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA1LDcgKzUwNSw3IEBAIGFsbCA6
IFwKICAgICBDb2xvckRhdGEuY3BwIFwKICAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAogICAgIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5jcHAgXAorICAgIEhU
TUxFbnRpdHlUYWJsZS5jcHAgXAogICAgIEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRG
YWN0b3J5LmNwcCBcCiAgICAgV01MTmFtZXMuY3BwIFwKQEAgLTYwMCw4ICs2MDAsOCBAQCBEb2NU
eXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotSFRNTEVudGl0eU5hbWVz
LmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCi0JcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkv
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKK0hUTUxFbnRpdHlUYWJsZS5jcHAgOiBodG1sL0hU
TUxFbnRpdHlOYW1lcy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVh
dGUtaHRtbC1lbnRpdHktdGFibGUKKwlweXRob24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0
eU5hbWVzLmpzb24gPiBIVE1MRW50aXR5VGFibGUuY3BwCiAKICMgLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggYmNhMmFhZTMwZmI5MDk1ZjY5ZjBmZWUxODk2YjllY2JmN2E0Nzk5NS4uNzIwY2JjMmI1MWFj
ZjExMmMxOTQyOTllZmY3NWM1YjI4NTI1MDE5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC05Miw3ICs5Miw3IEBAIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NWYWx1
ZUtleXdvcmRzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVudEZhY3RvcnkuaCBcCi0J
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5TmFtZXMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSFRNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAg
XApAQCAtMTQyNyw2ICsxNDI3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50U3RhY2suY3BwIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRTdGFjay5oIFwKKwlXZWJDb3JlL2h0bWwvSFRNTEVu
dGl0eVNlYXJjaC5jcHAgXAorCVdlYkNvcmUvaHRtbC9IVE1MRW50aXR5U2VhcmNoLmggXAogCVdl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKQEAg
LTQzOTMsOCArNDM5NSw4IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3Mu
Y3BwIDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAJJChQRVJMKSAkKFdl
YkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkgJChXZWJDb3Jl
KS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKLURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eU5hbWVzLmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKLQkkKFBF
UkwpICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsICQoR0VOU09VUkNFU19XRUJDT1JFKSAk
KFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCitEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0hUTUxFbnRpdHlUYWJsZS5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVz
Lmpzb24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0
eS10YWJsZQorCSQoUFlUSE9OKSAkKFdlYkNvcmUpLy4uL1dlYktpdFRvb2xzL1NjcmlwdHMvY3Jl
YXRlLWh0bWwtZW50aXR5LXRhYmxlICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNv
biA+ICQoR0VOU09VUkNFU19XRUJDT1JFKS9IVE1MRW50aXR5VGFibGUuY3BwCiAKICMgY29sb3Ig
bmFtZXMKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcDogJChXZWJDb3JlKS9w
bGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNzRlODEyNjliYjU3Yjc3ZDRlMzFkZWU0NGYxZTI2NTc4OTQxNDE4ZC4uMDE5Y2IyYzAyMjMz
NDgwMjgyYjJkMDBkZWE1YWYwZWZmOGFhMzZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE1ODgsNiArMTU4OCw4IEBACiAg
ICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxF
bGVtZW50U3RhY2suY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxFbGVtZW50U3RhY2suaCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MRW50aXR5U2VhcmNoLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oJywKICAgICAg
ICAgICAgICdodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGIwZWZmZWU3ZWI2ZWUy
YjFlYjdlYjRmYjVkZTY2OTlmZThhODRlYzguLjEzN2MzYjAzZmUxMGNkYmI3NmIwZGNhNzY3OWNi
NzYyMTAxYTQxNzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQpAQCAtMjksNyArMjksNyBAQCBYTUxfTkFNRVMgPSAkJFBXRC94bWwveG1s
YXR0cnMuaW4KIAogWE1MTlNfTkFNRVMgPSAkJFBXRC94bWwveG1sbnNhdHRycy5pbgogCi1FTlRJ
VElFU19HUEVSRiA9ICQkUFdEL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCitIVE1MX0VOVElU
SUVTID0gJCRQV0QvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNvbgogCiBDT0xPUkRBVEFfR1BFUkYg
PSAkJFBXRC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIApAQCAtNTkwLDEyICs1OTAsMTIgQEAg
eG1sbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJHhtbG5h
bWVzLndrU2NyaXB0IC0tYXR0cnMgJCQKIGFkZEV4dHJhQ29tcGlsZXIoeG1sbmFtZXMpCiAKICMg
R0VORVJBVE9SIDgtQToKLWVudGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0vSFRNTEVudGl0eU5hbWVzLmNwcAotZW50aXRpZXMuaW5wdXQgPSBFTlRJVElFU19HUEVS
RgotZW50aXRpZXMud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKLWVudGl0aWVz
LmNvbW1hbmRzID0gcGVybCAkJGVudGl0aWVzLndrU2NyaXB0ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0gJCRFTlRJVElFU19HUEVSRgorZW50aXRpZXMub3V0cHV0ID0gJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5VGFibGUuY3BwCitlbnRpdGllcy5pbnB1dCA9IEhU
TUxfRU5USVRJRVMKK2VudGl0aWVzLndrU2NyaXB0ID0gJCRQV0QvLi4vV2ViS2l0VG9vbHMvU2Ny
aXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKK2VudGl0aWVzLmNvbW1hbmRzID0gcHl0aG9u
ICQkZW50aXRpZXMud2tTY3JpcHQgJCRIVE1MX0VOVElUSUVTID4gJCR7V0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfS9IVE1MRW50aXR5VGFibGUuY3BwCiBlbnRpdGllcy5jbGVhbiA9ICR7UU1BS0Vf
RklMRV9PVVR9Ci1lbnRpdGllcy5kZXBlbmRzID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitl
bnRpdGllcy5kZXBlbmRzID0gJCRQV0QvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRt
bC1lbnRpdHktdGFibGUKIGFkZEV4dHJhQ29tcGlsZXIoZW50aXRpZXMpCiAKICMgR0VORVJBVE9S
IDgtQjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDRjYTlmZDBjOGU3YTkxZDA3NzhmNjU0YTA3MGFhMmFiYmEwMWJmOTEuLjY5NGI2
NTMxMTIxMTM3ZWIzNGE3MWRiNzJjMGNkNjc2MzBlNWMwYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNjc3LDYgKzY3Nyw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTERvY3VtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1M
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTEVsZW1lbnRTdGFjay5jcHAgXAorICAgIGh0bWwv
SFRNTEVudGl0eVNlYXJjaC5jcHAgXAogICAgIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgXAog
ICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTEZvbnRFbGVt
ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1ZmY0MjUw
N2I2MmRkYzU2MGE4OTRhOWZlMmIyMjhjZjcxYzQzYmJjLi4yODVjMGEzYmQ1ZDYwNDIwMWFkY2Yy
MjUwOWY5ZjVlZDdiZDM4ZTFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTM3NjM3LDYgKzM3NjM3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVudGl0eVNlYXJjaC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxF
bnRpdHlTZWFyY2guaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVtYmVkRWxlbWVudC5jcHAiDQogCQkJCT4NCiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmOWVkMWI0MzEzOTZiZTBjMWZkODdlMTA3ZDY1MWMxNzJiZjMwMjQzLi43NTBlZDQw
MGE4ZGVmZDQxNGNlYTk1Y2FjZTIyZjFmYjlmMTQ1MjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE4MSw2ICszMTgxLDkgQEAKIAkJQThBNTY0QTYx
MURDMEU1OTAwM0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNTY0QTQxMURDMEU1OTAw
M0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwICovOyB9OwogCQlBOEE5MDlB
QzBDQkNENkI1MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBOTA5QUEwQ0JD
RDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCAqLzsgfTsK
IAkJQThBOTA5QUQwQ0JDRDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBOTA5QUIwQ0JDRDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuY3BwICovOyB9OworCQlBOEJDMDQ0RTEyMTRFQjJBMDBCNUYxMjIgLyogSFRNTEVudGl0eVNl
YXJjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzBDNEZERjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5jcHAgKi87IH07CisJ
CUE4QkMwNDRGMTIxNEVCMkIwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBDNEZFMDEyMTEyNjYyMDBD
M0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5oICovOyB9OworCQlBOEJDMDQ5MjEyMTRGNjk2MDBC
NUYxMjIgLyogSFRNTEVudGl0eVRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5
VGFibGUuY3BwICovOyB9OwogCQlBOEJDRkQwNTEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0aFNl
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJD
RkQwNDEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0aFNlZy5jcHAgKi87IH07CiAJCUE4QzIyODBF
MTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMyMjgwRDExRDRBNTk3MDBENUE3RDMgLyog
RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OwogCQlBOEMyMjhBMTExRDU3MjJFMDBENUE3RDMgLyog
RGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRh
RG9jdW1lbnRQYXJzZXIuaCAqLzsgfTsKQEAgLTg0NzYsNiArODQ3OSwxMCBAQAogCQk5NzA1OTk3
NDEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG9saWN5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xp
Y3lDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGREYxMjExMjY2MjAwQzNE
MzkzIC8qIEhUTUxFbnRpdHlTZWFyY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTEVudGl0eVNlYXJjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5U2VhcmNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxFbnRpdHlTZWFyY2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGRTExMjExMjY2MjAwQzNEMzkzIC8qIEhUTUxFbnRp
dHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRW50
aXR5VGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzBDNEZFMjEyMTEy
NjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxFbnRpdHlUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzE5QUVGRjExRDA5RjJDMDBENDU4MzEgLyogSFRNTElucHV0U3RyZWFtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxJbnB1dFN0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzM4ODk5RTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRXcml0
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzM4ODk5RjExNkVBOURDMDBB
REYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRG9jdW1lbnRXcml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NjEs
NiArODg2OCw3IEBACiAJCUE4QTU2NEE0MTFEQzBFNTkwMDNBQzJGMCAvKiBIVE1MRm9ybWF0dGlu
Z0VsZW1lbnRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE5MDlBQTBDQkNENkI1MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTkwOUFC
MENCQ0Q2QjUwMDI5QjgwNyAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEJDMDQ5MTEy
MTRGNjk2MDBCNUYxMjIgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEhUTUxFbnRpdHlUYWJsZS5jcHA7IHBhdGggPSAvYnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5VGFibGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlBOEJDRkQwNDEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0
aFNlZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoU2Vn
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMjI4MEQxMUQ0QTU5NzAwRDVB
N0QzIC8qIERvY3VtZW50UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERvY3VtZW50UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NDEsNyArMTA5NDksNiBAQAog
CQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERv
Y1R5cGVTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERv
Y1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIx
MTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlOYW1lcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTBDMEQ5QTA1ODcwMDMzQ0U5NyAvKiBFbGVt
ZW50VGltZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRUaW1lQ29u
dHJvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTY4MEQ5QTE2NUQw
MDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI4OCw3ICsxMjI5NSw3IEBACiAJCQkJ
RTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLywKIAkJCQlB
MTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLywKIAkJ
CQlBMTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8sCi0J
CQkJRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8sCisJ
CQkJQThCQzA0OTExMjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgKi8sCiAJ
CQkJQThEMDZCMzgwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgKi8sCiAJCQkJQThE
MDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTkzOEU2NUY2MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLApAQCAt
MTM5ODYsNiArMTM5OTMsMTAgQEAKIAkJCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRN
TEVtYmVkRWxlbWVudC5pZGwgKi8sCiAJCQkJOTc2RTg5NUUxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhU
TUxFbnRpdHlQYXJzZXIuY3BwICovLAogCQkJCTk3NkU4OTVGMTFDMENBM0EwMEVBOUNBOSAvKiBI
VE1MRW50aXR5UGFyc2VyLmggKi8sCisJCQkJOTcwQzRGREYxMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlTZWFyY2guY3BwICovLAorCQkJCTk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBI
VE1MRW50aXR5U2VhcmNoLmggKi8sCisJCQkJOTcwQzRGRTExMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlUYWJsZS5jcHAgKi8sCisJCQkJOTcwQzRGRTIxMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlUYWJsZS5oICovLAogCQkJCUE4MTM2OUI5MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
RmllbGRTZXRFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCODA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTEZpZWxkU2V0RWxlbWVudC5oICovLAogCQkJCTFBRTJBOUY0MEExQ0RBNTcwMEI0MkIyNSAv
KiBIVE1MRmllbGRTZXRFbGVtZW50LmlkbCAqLywKQEAgLTIwMTU2LDYgKzIwMTY3LDcgQEAKIAkJ
CQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRUVENTdGRTEyMTRBOUMyMDA3NjU2QkIgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThCQzA0NEYxMjE0RUIyQjAwQjVGMTIyIC8qIEhUTUxF
bnRpdHlTZWFyY2guaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI1ODIsNiArMjI1OTQsOCBAQAogCQkJ
CUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3RkQxMjE0QTlDMjAwNzY1NkJCIC8qIFRocmVhZGFibGVC
bG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThCQzA0NEUxMjE0RUIyQTAwQjVG
MTIyIC8qIEhUTUxFbnRpdHlTZWFyY2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThCQzA0OTIx
MjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NjY1ZWZlYTUyNDAxYTIwMjMzN2NmMmVhNmJiODgwMGJiY2I3NTRkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFt
ZXMuZ3BlcmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBAQAotJXsKLS8qCi0gICAgIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQotICAgICBD
b3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICAKLSAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICAKLSAgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICAKLSAgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAgCi0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
Ci0gICAgSFRNTEVudGl0eU5hbWVzLmdwZXJmOiBpbnB1dCBmaWxlIHRvIGdlbmVyYXRlIGEgaGFz
aCB0YWJsZSBmb3IgZW50aXRpZXMKLSAgICBIVE1MRW50aXR5TmFtZXMuY3BwOiBETyBOT1QgRURJ
VCEgZ2VuZXJhdGVkIGJ5IFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCi0qLwotJX0KLSVzdHJ1
Y3QtdHlwZQotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBpbnQg
Y29kZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCi0lcmVhZG9ubHktdGFibGVzCi0lZ2xvYmFsLXRh
YmxlCi0lY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRF
bnRpdHkKLSVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGVudGl0eV9oYXNoX2Z1bmN0aW9uCi0l
aW5jbHVkZXMKLSVlbnVtCi0lJQotQUVsaWcsIDB4MDBjNgotQU1QLCAzOAotQWFjdXRlLCAweDAw
YzEKLUFjaXJjLCAweDAwYzIKLUFncmF2ZSwgMHgwMGMwCi1BbHBoYSwgMHgwMzkxCi1BcmluZywg
MHgwMGM1Ci1BdGlsZGUsIDB4MDBjMwotQXVtbCwgMHgwMGM0Ci1CZXRhLCAweDAzOTIKLUNPUFks
IDB4MDBhOQotQ2NlZGlsLCAweDAwYzcKLUNoaSwgMHgwM2E3Ci1EYWdnZXIsIDB4MjAyMQotRGVs
dGEsIDB4MDM5NAotRVRILCAweDAwZDAKLUVhY3V0ZSwgMHgwMGM5Ci1FY2lyYywgMHgwMGNhCi1F
Z3JhdmUsIDB4MDBjOAotRXBzaWxvbiwgMHgwMzk1Ci1FdGEsIDB4MDM5NwotRXVtbCwgMHgwMGNi
Ci1HVCwgNjIKLUdhbW1hLCAweDAzOTMKLUlhY3V0ZSwgMHgwMGNkCi1JY2lyYywgMHgwMGNlCi1J
Z3JhdmUsIDB4MDBjYwotSW90YSwgMHgwMzk5Ci1JdW1sLCAweDAwY2YKLUthcHBhLCAweDAzOWEK
LUxULCA2MAotTGFtYmRhLCAweDAzOWIKLU11LCAweDAzOWMKLU50aWxkZSwgMHgwMGQxCi1OdSwg
MHgwMzlkCi1PRWxpZywgMHgwMTUyCi1PYWN1dGUsIDB4MDBkMwotT2NpcmMsIDB4MDBkNAotT2dy
YXZlLCAweDAwZDIKLU9tZWdhLCAweDAzYTkKLU9taWNyb24sIDB4MDM5ZgotT3NsYXNoLCAweDAw
ZDgKLU90aWxkZSwgMHgwMGQ1Ci1PdW1sLCAweDAwZDYKLVBoaSwgMHgwM2E2Ci1QaSwgMHgwM2Ew
Ci1QcmltZSwgMHgyMDMzCi1Qc2ksIDB4MDNhOAotUVVPVCwgMzQKLVJFRywgMHgwMGFlCi1SaG8s
IDB4MDNhMQotU2Nhcm9uLCAweDAxNjAKLVNpZ21hLCAweDAzYTMKLVRIT1JOLCAweDAwZGUKLVRh
dSwgMHgwM2E0Ci1UaGV0YSwgMHgwMzk4Ci1VYWN1dGUsIDB4MDBkYQotVWNpcmMsIDB4MDBkYgot
VWdyYXZlLCAweDAwZDkKLVVwc2lsb24sIDB4MDNhNQotVXVtbCwgMHgwMGRjCi1YaSwgMHgwMzll
Ci1ZYWN1dGUsIDB4MDBkZAotWXVtbCwgMHgwMTc4Ci1aZXRhLCAweDAzOTYKLWFhY3V0ZSwgMHgw
MGUxCi1hY2lyYywgMHgwMGUyCi1hY3V0ZSwgMHgwMGI0Ci1hZWxpZywgMHgwMGU2Ci1hZ3JhdmUs
IDB4MDBlMAotYWxlZnN5bSwgMHgyMTM1Ci1hbHBoYSwgMHgwM2IxCi1hbXAsIDM4Ci1hbmQsIDB4
MjIyNwotYW5nLCAweDIyMjAKLWFwb3MsIDB4MDAyNwotYXJpbmcsIDB4MDBlNQotYXN5bXAsIDB4
MjI0OAotYXRpbGRlLCAweDAwZTMKLWF1bWwsIDB4MDBlNAotYmRxdW8sIDB4MjAxZQotYmV0YSwg
MHgwM2IyCi1icnZiYXIsIDB4MDBhNgotYnVsbCwgMHgyMDIyCi1jYXAsIDB4MjIyOQotY2NlZGls
LCAweDAwZTcKLWNlZGlsLCAweDAwYjgKLWNlbnQsIDB4MDBhMgotY2hpLCAweDAzYzcKLWNpcmMs
IDB4MDJjNgotY2x1YnMsIDB4MjY2MwotY29uZywgMHgyMjQ1Ci1jb3B5LCAweDAwYTkKLWNyYXJy
LCAweDIxYjUKLWN1cCwgMHgyMjJhCi1jdXJyZW4sIDB4MDBhNAotZEFyciwgMHgyMWQzCi1kYWdn
ZXIsIDB4MjAyMAotZGFyciwgMHgyMTkzCi1kZWcsIDB4MDBiMAotZGVsdGEsIDB4MDNiNAotZGlh
bXMsIDB4MjY2NgotZGl2aWRlLCAweDAwZjcKLWVhY3V0ZSwgMHgwMGU5Ci1lY2lyYywgMHgwMGVh
Ci1lZ3JhdmUsIDB4MDBlOAotZW1wdHksIDB4MjIwNQotZW1zcCwgMHgyMDAzCi1lbnNwLCAweDIw
MDIKLWVwc2lsb24sIDB4MDNiNQotZXF1aXYsIDB4MjI2MQotZXRhLCAweDAzYjcKLWV0aCwgMHgw
MGYwCi1ldW1sLCAweDAwZWIKLWV1cm8sIDB4MjBhYwotZXhpc3QsIDB4MjIwMwotZm5vZiwgMHgw
MTkyCi1mb3JhbGwsIDB4MjIwMAotZnJhYzEyLCAweDAwYmQKLWZyYWMxNCwgMHgwMGJjCi1mcmFj
MzQsIDB4MDBiZQotZnJhc2wsIDB4MjA0NAotZ2FtbWEsIDB4MDNiMwotZ2UsIDB4MjI2NQotZ3Qs
IDYyCi1oQXJyLCAweDIxZDQKLWhhcnIsIDB4MjE5NAotaGVhcnRzLCAweDI2NjUKLWhlbGxpcCwg
MHgyMDI2Ci1pYWN1dGUsIDB4MDBlZAotaWNpcmMsIDB4MDBlZQotaWV4Y2wsIDB4MDBhMQotaWdy
YXZlLCAweDAwZWMKLWltYWdlLCAweDIxMTEKLWluZmluLCAweDIyMWUKLWludCwgMHgyMjJiCi1p
b3RhLCAweDAzYjkKLWlxdWVzdCwgMHgwMGJmCi1pc2luLCAweDIyMDgKLWl1bWwsIDB4MDBlZgot
a2FwcGEsIDB4MDNiYQotbEFyciwgMHgyMWQwCi1sYW1iZGEsIDB4MDNiYgotbGFuZywgMHgzMDA4
Ci1sYXF1bywgMHgwMGFiCi1sYXJyLCAweDIxOTAKLWxjZWlsLCAweDIzMDgKLWxkcXVvLCAweDIw
MWMKLWxlLCAweDIyNjQKLWxmbG9vciwgMHgyMzBhCi1sb3dhc3QsIDB4MjIxNwotbG96LCAweDI1
Y2EKLWxybSwgMHgyMDBlCi1sc2FxdW8sIDB4MjAzOQotbHNxdW8sIDB4MjAxOAotbHQsIDYwCi1t
YWNyLCAweDAwYWYKLW1kYXNoLCAweDIwMTQKLW1pY3JvLCAweDAwYjUKLW1pZGRvdCwgMHgwMGI3
Ci1taW51cywgMHgyMjEyCi1tdSwgMHgwM2JjCi1uYWJsYSwgMHgyMjA3Ci1uYnNwLCAweDAwYTAK
LW5kYXNoLCAweDIwMTMKLW5lLCAweDIyNjAKLW5pLCAweDIyMGIKLW5vdCwgMHgwMGFjCi1ub3Rp
biwgMHgyMjA5Ci1uc3ViLCAweDIyODQKLW5zdXAsIDB4MjI4NQotbnRpbGRlLCAweDAwZjEKLW51
LCAweDAzYmQKLW9hY3V0ZSwgMHgwMGYzCi1vY2lyYywgMHgwMGY0Ci1vZWxpZywgMHgwMTUzCi1v
Z3JhdmUsIDB4MDBmMgotb2xpbmUsIDB4MjAzZQotb21lZ2EsIDB4MDNjOQotb21pY3JvbiwgMHgw
M2JmCi1vcGx1cywgMHgyMjk1Ci1vciwgMHgyMjI4Ci1vcmRmLCAweDAwYWEKLW9yZG0sIDB4MDBi
YQotb3NsYXNoLCAweDAwZjgKLW90aWxkZSwgMHgwMGY1Ci1vdGltZXMsIDB4MjI5Nwotb3VtbCwg
MHgwMGY2Ci1wYXJhLCAweDAwYjYKLXBhcnQsIDB4MjIwMgotcGVyY250LCAweDAwMjUKLXBlcm1p
bCwgMHgyMDMwCi1wZXJwLCAweDIyYTUKLXBoaSwgMHgwM2M2Ci1waSwgMHgwM2MwCi1waXYsIDB4
MDNkNgotcGx1c21uLCAweDAwYjEKLXBvdW5kLCAweDAwYTMKLXByaW1lLCAweDIwMzIKLXByb2Qs
IDB4MjIwZgotcHJvcCwgMHgyMjFkCi1wc2ksIDB4MDNjOAotcXVvdCwgMzQKLXJBcnIsIDB4MjFk
MgotcmFkaWMsIDB4MjIxYQotcmFuZywgMHgzMDA5Ci1yYXF1bywgMHgwMGJiCi1yYXJyLCAweDIx
OTIKLXJjZWlsLCAweDIzMDkKLXJkcXVvLCAweDIwMWQKLXJlYWwsIDB4MjExYwotcmVnLCAweDAw
YWUKLXJmbG9vciwgMHgyMzBiCi1yaG8sIDB4MDNjMQotcmxtLCAweDIwMGYKLXJzYXF1bywgMHgy
MDNhCi1yc3F1bywgMHgyMDE5Ci1zYnF1bywgMHgyMDFhCi1zY2Fyb24sIDB4MDE2MQotc2RvdCwg
MHgyMmM1Ci1zZWN0LCAweDAwYTcKLXNoeSwgMHgwMGFkCi1zaWdtYSwgMHgwM2MzCi1zaWdtYWYs
IDB4MDNjMgotc2ltLCAweDIyM2MKLXNwYWRlcywgMHgyNjYwCi1zdWIsIDB4MjI4Mgotc3ViZSwg
MHgyMjg2Ci1zdW0sIDB4MjIxMQotc3VwLCAweDIyODMKLXN1cDEsIDB4MDBiOQotc3VwMiwgMHgw
MGIyCi1zdXAzLCAweDAwYjMKLXN1cGUsIDB4MjI4Nwotc3VwbCwgMHgwMGI5Ci1zemxpZywgMHgw
MGRmCi10YXUsIDB4MDNjNAotdGhlcmU0LCAweDIyMzQKLXRoZXRhLCAweDAzYjgKLXRoZXRhc3lt
LCAweDAzZDEKLXRoaW5zcCwgMHgyMDA5Ci10aG9ybiwgMHgwMGZlCi10aWxkZSwgMHgwMmRjCi10
aW1lcywgMHgwMGQ3Ci10cmFkZSwgMHgyMTIyCi11QXJyLCAweDIxZDEKLXVhY3V0ZSwgMHgwMGZh
Ci11YXJyLCAweDIxOTEKLXVjaXJjLCAweDAwZmIKLXVncmF2ZSwgMHgwMGY5Ci11bWwsIDB4MDBh
OAotdXBzaWgsIDB4MDNkMgotdXBzaWxvbiwgMHgwM2M1Ci11dW1sLCAweDAwZmMKLXdlaWVycCwg
MHgyMTE4Ci14aSwgMHgwM2JlCi15YWN1dGUsIDB4MDBmZAoteWVuLCAweDAwYTUKLXl1bWwsIDB4
MDBmZgotemV0YSwgMHgwM2I2Ci16d2osIDB4MjAwZAotenduaiwgMHgyMDBjCi0lJQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxFbnRpdHlQYXJzZXIuY3BwCmluZGV4IDZiZWM4MTkwZGM4ODZjYzNlNjlkZjcxZWQwNDA1ZmEx
MDZjMGJlMDMuLjQ4MjI4MjdjZjQzYzU0ODIxNGE1NDFkYTdmMzk2NjhiODhmMDkwMDAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eVBhcnNlci5jcHAKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJIVE1MRW50aXR5UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJIVE1MRW50
aXR5U2VhcmNoLmgiCisjaW5jbHVkZSAiSFRNTEVudGl0eVRhYmxlLmgiCiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiAjaW5jbHVkZSAiSFRNTEVudGl0eU5hbWVzLmNwcCIKQEAgLTEwMiw3ICsx
MDQsNiBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgIEVudGl0eVN0YXRlIGVudGl0eVN0
YXRlID0gSW5pdGlhbDsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwogICAgIFZlY3RvcjxVQ2hh
ciwgMTA+IGNvbnN1bWVkQ2hhcmFjdGVyczsKLSAgICBWZWN0b3I8Y2hhciwgMTA+IGVudGl0eU5h
bWU7CiAKICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkpIHsKICAgICAgICAgVUNoYXIgY2Mg
PSAqc291cmNlOwpAQCAtMTY2LDcgKzE2Nyw3IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAg
ICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAnOycpIHsKICAgICAgICAgICAgICAgICBzb3VyY2Uu
YWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZ2FsRW50
aXR5Rm9yKHJlc3VsdCk7Ci0gICAgICAgICAgICB9IGVsc2UgCisgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICByZXR1cm4gbGVnYWxFbnRpdHlGb3IocmVzdWx0KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xODEsNDggKzE4Miw0OCBAQCB1bnNpZ25lZCBjb25z
dW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hh
cmFjdGVycywgVQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBO
YW1lZDogewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBpcyB3cm9uZy4gV2UgbmVl
ZCB0byBmaW5kIHRoZSBsb25nZXN0IG1hdGNoaW5nIGVudGl0eS4KLSAgICAgICAgICAgIC8vICAg
ICAgICBUaGUgZXhhbXBsZXMgZnJvbSB0aGUgc3BlYyBhcmU6Ci0gICAgICAgICAgICAvLyAgICAg
ICAgICAgIEknbSAmbm90aXQ7IEkgdGVsbCB5b3UKLSAgICAgICAgICAgIC8vICAgICAgICAgICAg
SSdtICZub3RpbjsgSSB0ZWxsIHlvdQotICAgICAgICAgICAgLy8gICAgICAgIEluIHRoZSBmaXJz
dCBjYXNlLCAiJm5vdCIgaXMgdGhlIGVudGl0eS4gIEluIHRoZSBzZWNvbmQKLSAgICAgICAgICAg
IC8vICAgICAgICBjYXNlLCAiJm5vdGluOyIgaXMgdGhlIGVudGl0eS4KLSAgICAgICAgICAgIC8v
IEZJWE1FOiBPdXIgbGlzdCBvZiBIVE1MIGVudGl0aWVzIGlzIGluY29tcGxldGUuCi0gICAgICAg
ICAgICAvLyBGSVhNRTogVGhlIG51bWJlciA4IGJlbG93IGlzIGJvZ3VzLgotICAgICAgICAgICAg
d2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgpICYmIGVudGl0eU5hbWUuc2l6ZSgpIDw9IDgpIHsKKyAg
ICAgICAgICAgIEhUTUxFbnRpdHlTZWFyY2ggZW50aXR5U2VhcmNoOworICAgICAgICAgICAgd2hp
bGUgKCFzb3VyY2UuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY2MgPSAqc291cmNlOwot
ICAgICAgICAgICAgICAgIGlmIChjYyA9PSAnOycpIHsKLSAgICAgICAgICAgICAgICAgICAgY29u
c3QgRW50aXR5KiBlbnRpdHkgPSBmaW5kRW50aXR5KGVudGl0eU5hbWUuZGF0YSgpLCBlbnRpdHlO
YW1lLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlbnRpdHkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKCc7Jyk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZW50aXR5LT5jb2RlOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAoIWlzQWxwaGFOdW1lcmljKGNjKSkgewotICAgICAgICAgICAgICAgICAgICBj
b25zdCBFbnRpdHkqIGVudGl0eSA9IGZpbmRFbnRpdHkoZW50aXR5TmFtZS5kYXRhKCksIGVudGl0
eU5hbWUuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVudGl0eSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSFRNTDUgdGVsbHMgdXMgdG8gaWdub3JlIHRoaXMgZW50aXR5
LCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYg
dGhlIGxvb2toZWFkIGNoYXJhY3RlciBpcyAnPScuCi0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgJiYgY2MgPT0gJz0nKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gU29tZSBl
bnRpdGllcyByZXF1aXJlIGEgdGVybWluYXRpbmcgc2VtaWNvbG9uLCB3aGVyZWFzIG90aGVyCi0g
ICAgICAgICAgICAgICAgICAgICAgICAvLyBlbnRpdGllcyBkbyBub3QuICBUaGUgSFRNTDUgc3Bl
YyBoYXMgYSBnaWFudCBsaXN0OgotICAgICAgICAgICAgICAgICAgICAgICAgLy8KLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLmh0bWwjbmFt
ZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0gICAg
ICAgICAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCB0aGUgbGlzdCBzZWVtcyB0byBib2lsIGRv
d24gdG8gdGhpcyBicmFuY2g6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LT5j
b2RlID4gMjU1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eS0+Y29kZTsKLSAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGVudGl0eVNlYXJjaC5hZHZhbmNlKGNjKTsKKyAgICAgICAgICAg
ICAgICBpZiAoIWVudGl0eVNlYXJjaC5pc0VudGl0eVByZWZpeCgpKQogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZW50aXR5TmFt
ZS5hcHBlbmQoY2MpOwogICAgICAgICAgICAgICAgIGNvbnN1bWVkQ2hhcmFjdGVycy5hcHBlbmQo
Y2MpOwogICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIG5vdEVub3VnaENoYXJhY3RlcnMgPSBzb3VyY2UuaXNFbXB0
eSgpOworICAgICAgICAgICAgaWYgKG5vdEVub3VnaENoYXJhY3RlcnMpIHsKKyAgICAgICAgICAg
ICAgICAvLyBXZSBjYW4ndCBhbiBlbnRpdHkgYmVjYXVzZSB0aGVyZSBtaWdodCBiZSBhIGxvbmdl
ciBlbnRpdHkKKyAgICAgICAgICAgICAgICAvLyB0aGF0IHdlIGNvdWxkIG1hdGNoIGlmIHdlIGhh
ZCBtb3JlIGRhdGEuCisgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2Us
IGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoIWVudGl0eVNlYXJjaC5sYXN0TWF0Y2goKSkgeworICAg
ICAgICAgICAgICAgIEFTU0VSVCghZW50aXR5U2VhcmNoLmN1cnJlbnRWYWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJz
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChlbnRpdHlTZWFyY2gubGFzdE1hdGNoKCktPmxlbmd0aCAhPSBlbnRpdHlTZWFyY2guY3Vy
cmVudExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UndmUgY29uc3VtZWQgdG9vIG1h
bnkgY2hhcmFjdGVycy4gIFdlIG5lZWQgdG8gd2FsayB0aGUKKyAgICAgICAgICAgICAgICAvLyBz
b3VyY2UgYmFjayB0byB0aGUgcG9pbnQgYXQgd2hpY2ggd2UgaGFkIGNvbnN1bWVkIGFuCisgICAg
ICAgICAgICAgICAgLy8gYWN0dWFsIGVudGl0eS4KKyAgICAgICAgICAgICAgICB1bmNvbnN1bWVD
aGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICBj
b25zdW1lZENoYXJhY3RlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBpbnQgbGVu
Z3RoID0gZW50aXR5U2VhcmNoLmxhc3RNYXRjaCgpLT5sZW5ndGg7CisgICAgICAgICAgICAgICAg
Y29uc3QgVUNoYXIqIHJlZmVyZW5jZSA9IGVudGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+ZW50aXR5
OworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2MgPSAqc291cmNlOworICAgICAgICAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKHJlZmVyZW5jZSwgY2MgPT0gKnJlZmVyZW5jZSsrKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzLmFwcGVuZChjYyk7CisgICAgICAgICAgICAgICAgICAg
IHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KCFzb3VyY2UuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Y2MgPSAqc291cmNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVudGl0eVNlYXJj
aC5sYXN0TWF0Y2goKS0+bGFzdENoYXJhY3RlcigpID09ICc7JykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZW50aXR5U2VhcmNoLmxhc3RNYXRjaCgpLT52YWx1ZTsKKyAgICAgICAgICAgIGlmICgh
YWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgfHwgIShpc0FscGhhTnVtZXJpYyhjYykgfHwgY2Mg
PT0gJz0nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5U2VhcmNoLmxhc3RNYXRjaCgp
LT52YWx1ZTsKICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1l
ZENoYXJhY3RlcnMpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1M
RW50aXR5U2VhcmNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDUyNmEzZDZkZTdmYjI3ZWJiM2M4M2FjMzlh
MWVhN2E2NmVjMTY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlT
ZWFyY2guY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxF
bnRpdHlTZWFyY2guaCIKKworI2luY2x1ZGUgIkhUTUxFbnRpdHlUYWJsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisgICAgCitjb25zdCBIVE1MRW50aXR5VGFibGVF
bnRyeSogaGFsZndheShjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbGVmdCwgY29uc3QgSFRN
TEVudGl0eVRhYmxlRW50cnkqIHJpZ2h0KQoreworICAgIHJldHVybiAmbGVmdFsocmlnaHQgLSBs
ZWZ0KSAvIDJdOworfQorCit9CisgICAgCitIVE1MRW50aXR5U2VhcmNoOjpIVE1MRW50aXR5U2Vh
cmNoKCkKKyAgICA6IG1fY3VycmVudExlbmd0aCgwKQorICAgICwgbV9jdXJyZW50VmFsdWUoMCkK
KyAgICAsIG1fbGFzdE1hdGNoKDApCisgICAgLCBtX3N0YXJ0KEhUTUxFbnRpdHlUYWJsZTo6c3Rh
cnQoKSkKKyAgICAsIG1fZW5kKEhUTUxFbnRpdHlUYWJsZTo6ZW5kKCkpCit7Cit9CisKK0hUTUxF
bnRpdHlTZWFyY2g6OkNvbXBhcmVSZXN1bHQgSFRNTEVudGl0eVNlYXJjaDo6Y29tcGFyZShjb25z
dCBIVE1MRW50aXR5VGFibGVFbnRyeSogZW50cnksIFVDaGFyIG5leHRDaGFyYWN0ZXIpIGNvbnN0
Cit7CisgICAgaWYgKGVudHJ5LT5sZW5ndGggPCBtX2N1cnJlbnRMZW5ndGggKyAxKQorICAgICAg
ICByZXR1cm4gQmVmb3JlOworICAgIFVDaGFyIGVudHJ5TmV4dENoYXJhY3RlciA9IGVudHJ5LT5l
bnRpdHlbbV9jdXJyZW50TGVuZ3RoXTsKKyAgICBpZiAoZW50cnlOZXh0Q2hhcmFjdGVyID09IG5l
eHRDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBQcmVmaXg7CisgICAgcmV0dXJuIGVudHJ5TmV4
dENoYXJhY3RlciA8IG5leHRDaGFyYWN0ZXIgPyBCZWZvcmUgOiBBZnRlcjsKK30KKworY29uc3Qg
SFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydChVQ2hhciBu
ZXh0Q2hhcmFjdGVyKSBjb25zdAoreworICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBs
ZWZ0ID0gbV9zdGFydDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogcmlnaHQgPSBt
X2VuZDsKKyAgICBpZiAobGVmdCA9PSByaWdodCkKKyAgICAgICAgcmV0dXJuIGxlZnQ7CisgICAg
Q29tcGFyZVJlc3VsdCByZXN1bHQgPSBjb21wYXJlKGxlZnQsIG5leHRDaGFyYWN0ZXIpOworICAg
IGlmIChyZXN1bHQgPT0gUHJlZml4KQorICAgICAgICByZXR1cm4gbGVmdDsKKyAgICBpZiAocmVz
dWx0ID09IEFmdGVyKQorICAgICAgICByZXR1cm4gcmlnaHQ7CisgICAgd2hpbGUgKGxlZnQgKyAx
IDwgcmlnaHQpIHsKKyAgICAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHByb2JlID0g
aGFsZndheShsZWZ0LCByaWdodCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUocHJvYmUsIG5l
eHRDaGFyYWN0ZXIpOworICAgICAgICBpZiAocmVzdWx0ID09IEJlZm9yZSkKKyAgICAgICAgICAg
IGxlZnQgPSBwcm9iZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVzdWx0
ID09IEFmdGVyIHx8IHJlc3VsdCA9PSBQcmVmaXgpOworICAgICAgICAgICAgcmlnaHQgPSBwcm9i
ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBBU1NFUlQobGVmdCArIDEgPT0gcmlnaHQpOworICAg
IHJldHVybiByaWdodDsKK30KKworY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRp
dHlTZWFyY2g6OmZpbmRFbmQoVUNoYXIgbmV4dENoYXJhY3RlcikgY29uc3QKK3sKKyAgICBjb25z
dCBIVE1MRW50aXR5VGFibGVFbnRyeSogbGVmdCA9IG1fc3RhcnQ7CisgICAgY29uc3QgSFRNTEVu
dGl0eVRhYmxlRW50cnkqIHJpZ2h0ID0gbV9lbmQ7CisgICAgaWYgKGxlZnQgPT0gcmlnaHQpCisg
ICAgICAgIHJldHVybiByaWdodDsKKyAgICBDb21wYXJlUmVzdWx0IHJlc3VsdCA9IGNvbXBhcmUo
cmlnaHQsIG5leHRDaGFyYWN0ZXIpOworICAgIGlmIChyZXN1bHQgPT0gUHJlZml4KQorICAgICAg
ICByZXR1cm4gcmlnaHQ7CisgICAgaWYgKHJlc3VsdCA9PSBCZWZvcmUpCisgICAgICAgIHJldHVy
biBsZWZ0OworICAgIHdoaWxlIChsZWZ0ICsgMSA8IHJpZ2h0KSB7CisgICAgICAgIGNvbnN0IEhU
TUxFbnRpdHlUYWJsZUVudHJ5KiBwcm9iZSA9IGhhbGZ3YXkobGVmdCwgcmlnaHQpOworICAgICAg
ICByZXN1bHQgPSBjb21wYXJlKHByb2JlLCBuZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKHJl
c3VsdCA9PSBBZnRlcikKKyAgICAgICAgICAgIHJpZ2h0ID0gcHJvYmU7CisgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSBCZWZvcmUgfHwgcmVzdWx0ID09IFByZWZp
eCk7CisgICAgICAgICAgICBsZWZ0ID0gcHJvYmU7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNT
RVJUKGxlZnQgKyAxID09IHJpZ2h0KTsKKyAgICByZXR1cm4gbGVmdDsKK30KKwordm9pZCBIVE1M
RW50aXR5U2VhcmNoOjphZHZhbmNlKFVDaGFyIG5leHRDaGFyYWN0ZXIpCit7CisgICAgQVNTRVJU
KGlzRW50aXR5UHJlZml4KCkpOworICAgIGlmICghbV9jdXJyZW50TGVuZ3RoKSB7CisgICAgICAg
IG1fc3RhcnQgPSBIVE1MRW50aXR5VGFibGU6OnN0YXJ0KG5leHRDaGFyYWN0ZXIpOworICAgICAg
ICBtX2VuZCA9IEhUTUxFbnRpdHlUYWJsZTo6ZW5kKG5leHRDaGFyYWN0ZXIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIG1fc3RhcnQgPSBmaW5kU3RhcnQobmV4dENoYXJhY3Rlcik7CisgICAgICAg
IG1fZW5kID0gZmluZEVuZChuZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKG1fc3RhcnQgPT0g
bV9lbmQgJiYgY29tcGFyZShtX3N0YXJ0LCBuZXh0Q2hhcmFjdGVyKSAhPSBQcmVmaXgpCisgICAg
ICAgICAgICByZXR1cm4gZmFpbCgpOworICAgIH0KKyAgICArK21fY3VycmVudExlbmd0aDsKKyAg
ICBpZiAobV9zdGFydC0+bGVuZ3RoICE9IG1fY3VycmVudExlbmd0aCkgeworICAgICAgICBtX2N1
cnJlbnRWYWx1ZSA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9sYXN0TWF0Y2gg
PSBtX3N0YXJ0OworICAgIG1fY3VycmVudFZhbHVlID0gbV9sYXN0TWF0Y2gtPnZhbHVlOworfQor
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbnRpdHlTZWFyY2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTc4NTlkNGViY2NkMmExMmIw
M2JkZTBmOGNmMTI4MjM5NGRiY2M5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxFbnRpdHlTZWFyY2guaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBIVE1MRW50aXR5U2VhcmNoX2gKKyNk
ZWZpbmUgSFRNTEVudGl0eVNlYXJjaF9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBIVE1MRW50aXR5VGFibGVFbnRyeTsKKwor
Y2xhc3MgSFRNTEVudGl0eVNlYXJjaCB7CitwdWJsaWM6CisgICAgSFRNTEVudGl0eVNlYXJjaCgp
OworCisgICAgdm9pZCBhZHZhbmNlKFVDaGFyKTsKKworICAgIGJvb2wgaXNFbnRpdHlQcmVmaXgo
KSBjb25zdCB7IHJldHVybiAhIW1fc3RhcnQ7IH0KKyAgICBpbnQgY3VycmVudFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50VmFsdWU7IH0KKyAgICBpbnQgY3VycmVudExlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudExlbmd0aDsgfQorCisgICAgY29uc3QgSFRNTEVudGl0eVRh
YmxlRW50cnkqIGxhc3RNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1hdGNoOyB9CisKK3By
aXZhdGU6CisgICAgZW51bSBDb21wYXJlUmVzdWx0IHsKKyAgICAgICAgQmVmb3JlLAorICAgICAg
ICBQcmVmaXgsCisgICAgICAgIEFmdGVyLAorICAgIH07CisKKyAgICBDb21wYXJlUmVzdWx0IGNv
bXBhcmUoY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqLCBVQ2hhcikgY29uc3Q7CisgICAgY29u
c3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGZpbmRTdGFydChVQ2hhcikgY29uc3Q7CisgICAgY29u
c3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGZpbmRFbmQoVUNoYXIpIGNvbnN0OworCisgICAgdm9p
ZCBmYWlsKCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudFZhbHVlID0gMDsKKyAgICAgICAgbV9z
dGFydCA9IDA7CisgICAgICAgIG1fZW5kID0gMDsKKyAgICB9CisKKyAgICBpbnQgbV9jdXJyZW50
TGVuZ3RoOworICAgIGludCBtX2N1cnJlbnRWYWx1ZTsKKworICAgIGNvbnN0IEhUTUxFbnRpdHlU
YWJsZUVudHJ5KiBtX2xhc3RNYXRjaDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSog
bV9zdGFydDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbV9lbmQ7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlUYWJsZS5oIGIv
V2ViQ29yZS9odG1sL0hUTUxFbnRpdHlUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1YTFhZmQzMTYxZjBk
Y2EzNGM1MmQzMDFkY2E5YzM5NTljNzI5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eVRhYmxlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRNTEVudGl0eVRhYmxlX2gK
KyNkZWZpbmUgSFRNTEVudGl0eVRhYmxlX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5IHsK
KyAgICBVQ2hhciBsYXN0Q2hhcmFjdGVyKCkgY29uc3QgeyByZXR1cm4gZW50aXR5W2xlbmd0aCAt
IDFdOyB9CisKKyAgICBjb25zdCBVQ2hhciogZW50aXR5OworICAgIGludCBsZW5ndGg7CisgICAg
aW50IHZhbHVlOworfTsKKworY2xhc3MgSFRNTEVudGl0eVRhYmxlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHN0YXJ0KCk7CisgICAgc3RhdGljIGNv
bnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBlbmQoKTsKKworICAgIHN0YXRpYyBjb25zdCBIVE1M
RW50aXR5VGFibGVFbnRyeSogc3RhcnQoVUNoYXIpOworICAgIHN0YXRpYyBjb25zdCBIVE1MRW50
aXR5VGFibGVFbnRyeSogZW5kKFVDaGFyKTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbCBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBs
CmluZGV4IDQyY2I2ZmQ5NThmMTA1YWU2YWZiZjZlZGUzNDhhYzM1YjZmMzk2M2UuLjhjYzk5NTJj
MTU3MmIwMDMzODFiMGQ4MjczY2IxZDY2NWMzMGZmZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbWFr
ZS1oYXNoLXRvb2xzLnBsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCkBAIC0yOSwx
NiArMjksNiBAQCBteSAkb3B0aW9uID0gYmFzZW5hbWUoJEFSR1ZbMF0sIi5ncGVyZiIpOwogCiBz
d2l0Y2ggKCRvcHRpb24pIHsKIAotY2FzZSAiSFRNTEVudGl0eU5hbWVzIiB7Ci0KLSAgICBteSAk
aHRtbEVudGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRpci9IVE1MRW50aXR5TmFtZXMuY3Bw
IjsKLSAgICBteSAkaHRtbEVudGl0eU5hbWVzR3BlcmYgICAgICAgPSAkQVJHVlswXTsKLSAgICBz
aGlmdDsKLQotICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIg
JGh0bWxFbnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCIpID09IDAg
fHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwotCi19ICMgY2FzZSAiSFRNTEVudGl0
eU5hbWVzIgotCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCiAgICAgbXkgJGRvY1R5cGVTdHJp
bmdzR2VuZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBm
OGQxZDg4YzJiZDhhYzkzY2Y2MjhkMDYyM2M1ODk3ODI3NGMxOTUzLi45MzE5ZmExOTdiYjQ1MzEx
ZjBlOThhNmRmYTQyNDM1OTQ0MWJhMDNiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDgt
MTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0
aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0
OQorCisgICAgICAgIEEgc2NyaXB0IGZvciBnZW5lcmF0aW5nIHRoZSBDKysgc3RhdGUgZGF0YSBz
dHJ1Y3R1cmUgZGVzY3JpYmluZyBhbGwgdGhlCisgICAgICAgIGVudGl0aWVzIGZyb20gYSBKU09O
IGRlc2NyaXB0aW9uLgorCisgICAgICAgIE5vdGU6IFRoaXMgc2NyaXB0IGlzIG5vdCB5ZXQgaW50
ZWdyYXRlZCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0sIHNvIHRoaXMKKyAgICAgICAgICAgICAgcGF0
Y2ggd2lsbCBub3QgYnVpbGQhICBPT1BTIQorCisgICAgICAgICogU2NyaXB0cy9jcmVhdGUtaHRt
bC1lbnRpdHktdGFibGU6IEFkZGVkLgorCiAyMDEwLTA4LTEyICBEYXZpZCBMZXZpbiAgPGxldmlu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBCdWlsZCBicmVhayBmaXguCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MTNiMjlkYTc4
YjNmYjVlYjgwZjg0NWJiYjM0ODAzMzBjMzIwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQpAQCAtMCwwICsxLDE3MyBAQAor
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjIAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgb3MucGF0
aAoraW1wb3J0IHN0cmluZworaW1wb3J0IHN5cworCitpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0
eS5zaW1wbGVqc29uIGFzIHNpbXBsZWpzb24KKworCitkZWYgY29udmVydF9lbnRpdHlfdG9fY3Bw
X25hbWUoZW50aXR5KToKKyAgICBwb3N0Zml4ID0gIkVudGl0eU5hbWUiCisgICAgaWYgZW50aXR5
Wy0xXSA9PSAiOyI6CisgICAgICAgIHJldHVybiAiJXNTZW1pY29sb24lcyIgJSAoZW50aXR5Wzot
MV0sIHBvc3RmaXgpCisgICAgcmV0dXJuICIlcyVzIiAlIChlbnRpdHksIHBvc3RmaXgpCisKKwor
ZGVmIGNvbnZlcnRfZW50aXR5X3RvX3VjaGFyX2FycmF5KGVudGl0eSk6CisgICAgcmV0dXJuICJ7
JyVzJ30iICUgIicsICciLmpvaW4oZW50aXR5KQorCisKK2RlZiBjb252ZXJ0X3ZhbHVlX3RvX2lu
dCh2YWx1ZSk6CisgICAgYXNzZXJ0KHZhbHVlWzBdID09ICJVIikKKyAgICBhc3NlcnQodmFsdWVb
MV0gPT0gIisiKQorICAgIHJldHVybiAiMHgiICsgdmFsdWVbMjpdCisKKworZGVmIG9mZnNldF90
YWJsZV9lbnRyeShvZmZzZXQpOgorICAgIHJldHVybiAiICAgICZzdGF0aWNFbnRpdHlUYWJsZVsl
c10sIiAlIG9mZnNldAorCisKK3Byb2dyYW1fbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoX19maWxl
X18pCitpZiBsZW4oc3lzLmFyZ3YpIDwgMjoKKyAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiVXNh
Z2U6ICVzIElOUFVUX0ZJTEUiICUgcHJvZ3JhbV9uYW1lCisgICAgZXhpdCgxKQorCitpbnB1dF9m
aWxlID0gc3lzLmFyZ3ZbMV0KK2h0bWxfZW50aXR5X25hbWVzX2ZpbGUgPSBvcGVuKGlucHV0X2Zp
bGUpCitlbnRyaWVzID0gc2ltcGxlanNvbi5sb2FkKGh0bWxfZW50aXR5X25hbWVzX2ZpbGUpCito
dG1sX2VudGl0eV9uYW1lc19maWxlLmNsb3NlKCkKKworZW50cmllcyA9IHNvcnRlZChlbnRyaWVz
LCBrZXk9bGFtYmRhIGVudHJ5OiBlbnRyeVsnZW50aXR5J10pCitlbnRpdHlfY291bnQgPSBsZW4o
ZW50cmllcykKKworcHJpbnQgIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKy8vIFRISVMgRklMRSBJUyBHRU5FUkFURUQgQlkgV2ViS2l0VG9vbHMvU2Ny
aXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKKy8vIERPIE5PVCBFRElUICh1bmxlc3MgeW91
IGFyZSBhIG5pbmphKSEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxFbnRp
dHlUYWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisiIiIKKwor
Zm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgcHJpbnQgImNvbnN0IFVDaGFyICVzRW50aXR5TmFt
ZVtdID0gJXM7IiAlICgKKyAgICAgICAgY29udmVydF9lbnRpdHlfdG9fY3BwX25hbWUoZW50cnlb
ImVudGl0eSJdKSwKKyAgICAgICAgY29udmVydF9lbnRpdHlfdG9fdWNoYXJfYXJyYXkoZW50cnlb
ImVudGl0eSJdKSkKKworcHJpbnQgIiIiCitIVE1MRW50aXR5VGFibGVFbnRyeSBzdGF0aWNFbnRp
dHlUYWJsZVslc10gPSB7IiIiICUgZW50aXR5X2NvdW50CisKK2luZGV4ID0ge30KK29mZnNldCA9
IDAKK2ZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgIGxldHRlciA9IGVudHJ5WyJlbnRpdHkiXVsw
XQorICAgIGlmIG5vdCBpbmRleC5nZXQobGV0dGVyKToKKyAgICAgICAgaW5kZXhbbGV0dGVyXSA9
IG9mZnNldAorICAgIHByaW50ICcgICAgeyAlc0VudGl0eU5hbWUsICVzLCAlcyB9LCcgJSAoCisg
ICAgICAgIGNvbnZlcnRfZW50aXR5X3RvX2NwcF9uYW1lKGVudHJ5WyJlbnRpdHkiXSksCisgICAg
ICAgIGxlbihlbnRyeVsiZW50aXR5Il0pLAorICAgICAgICBjb252ZXJ0X3ZhbHVlX3RvX2ludChl
bnRyeVsidmFsdWUiXSkpCisgICAgb2Zmc2V0ICs9IDEKKworcHJpbnQgIiIifTsKKyIiIgorCitw
cmludCAiY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHVwcGVyY2FzZU9mZnNldFtdID0geyIK
K2ZvciBsZXR0ZXIgaW4gc3RyaW5nLnVwcGVyY2FzZToKKyAgICBwcmludCBvZmZzZXRfdGFibGVf
ZW50cnkoaW5kZXhbbGV0dGVyXSkKK3ByaW50IG9mZnNldF90YWJsZV9lbnRyeShpbmRleFsnYSdd
KQorcHJpbnQgIiIifTsKKworY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGxvd2VyY2FzZU9m
ZnNldFtdID0geyIiIgorZm9yIGxldHRlciBpbiBzdHJpbmcubG93ZXJjYXNlOgorICAgIHByaW50
IG9mZnNldF90YWJsZV9lbnRyeShpbmRleFtsZXR0ZXJdKQorcHJpbnQgb2Zmc2V0X3RhYmxlX2Vu
dHJ5KGVudGl0eV9jb3VudCkKK3ByaW50ICIiIn07CisKK30KKworY29uc3QgSFRNTEVudGl0eVRh
YmxlRW50cnkqIEhUTUxFbnRpdHlUYWJsZTo6c3RhcnQoVUNoYXIgYykKK3sKKyAgICBpZiAoYyA+
PSAnQScgJiYgYyA8PSAnWicpCisgICAgICAgIHJldHVybiB1cHBlcmNhc2VPZmZzZXRbYyAtICdB
J107CisgICAgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKQorICAgICAgICByZXR1cm4gbG93ZXJj
YXNlT2Zmc2V0W2MgLSAnYSddOworICAgIHJldHVybiAwOworfQorCitjb25zdCBIVE1MRW50aXR5
VGFibGVFbnRyeSogSFRNTEVudGl0eVRhYmxlOjplbmQoVUNoYXIgYykKK3sKKyAgICBpZiAoYyA+
PSAnQScgJiYgYyA8PSAnWicpCisgICAgICAgIHJldHVybiB1cHBlcmNhc2VPZmZzZXRbYyAtICdB
JyArIDFdIC0gMTsKKyAgICBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicpCisgICAgICAgIHJldHVy
biBsb3dlcmNhc2VPZmZzZXRbYyAtICdhJyArIDFdIC0gMTsKKyAgICByZXR1cm4gMDsKK30KKwor
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlUYWJsZTo6c3RhcnQoKQorewor
ICAgIHJldHVybiAmc3RhdGljRW50aXR5VGFibGVbMF07Cit9CisKK2NvbnN0IEhUTUxFbnRpdHlU
YWJsZUVudHJ5KiBIVE1MRW50aXR5VGFibGU6OmVuZCgpCit7CisgICAgcmV0dXJuICZzdGF0aWNF
bnRpdHlUYWJsZVslcyAtIDFdOworfQorCit9CisiIiIgJSBlbnRpdHlfY291bnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64363</attachid>
            <date>2010-08-13 12:26:52 -0700</date>
            <delta_ts>2010-08-13 14:56:48 -0700</delta_ts>
            <desc>Now should compile for everyone except chromium and possibly tiger</desc>
            <filename>bug-43949-20100813122650.patch</filename>
            <type>text/plain</type>
            <size>50003</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTVhNjJmNjA5YzI4OWUzZjI1ZTMzN2YxNThkZTVkYjAxMzljZjgwLi5lOTdkNjNi
ODk0NDZkY2NmZDdiM2M3YjYxNGQ2MWQ1YjAxMjIwYTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0
aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk0OQorCisgICAgICAgIFRlc3QgcHJvZ3Jlc3Npb24gZm9yIHByb3BlciBlbnRpdHkg
c3VwcG9ydC4KKworICAgICAgICAqIGh0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQ6
CisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wOC0xMiAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGxh
bmRpbmcgZ29vZ2xlLWNocm9tZSBsaW51eCA2NCB0ZXN0IHJlc3VsdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAppbmRleCAyZWIwMWI0Y2JmOGFh
NzYyMzg0YWI1ODEwZjJmMThmNzk5YTI1ZGNmLi44NGM3MjE3NGZkY2UxYmU1M2QxNjhkYTY4MjY2
ZWQyOTIzNGE5ODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQtaHRtbDUudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC1odG1sNS50eHQKQEAgLTExOCw5MiArMTE4LDEwIEBAIHJlc291cmNlcy9kb2N0eXBlMDEuZGF0
OiBQQVNTCiAKIHJlc291cmNlcy9zY3JpcHRkYXRhMDEuZGF0OiBQQVNTCiAKLXJlc291cmNlcy9o
dG1sNXRlc3QtY29tLmRhdDoKLTcKLTkKLTEwCi0xMQotCi1UZXN0IDcgb2YgMjQgaW4gcmVzb3Vy
Y2VzL2h0bWw1dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbGFuZzsmcmFuZzsKLUdvdDoK
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi44CI44CJIgotRXhwZWN0
ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKfqOKfqSIKLQot
VGVzdCA5IG9mIDI0IGluIHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0
OgotJkltYWdpbmFyeUk7Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgIiZJbWFnaW5hcnlJOyIKLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgICLihYgiCi0KLVRlc3QgMTAgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mS29wZjsKLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJktvcGY7IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIvCdlYIiCityZXNvdXJjZXMvaHRtbDV0ZXN0
LWNvbS5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNv
bS5kYXQgZmFpbGVkLiBJbnB1dDoKLSZub3RpbnZhOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICImbm90aW52YTsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oiJIgotcmVzb3VyY2VzL2VudGl0aWVzMDEu
ZGF0OgotMgotNQotCi1UZXN0IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci1GT08mZ3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICAiRk9PJmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgIkZPTz5CQVIiCityZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQ6
IFBBU1MKIAotVGVzdCA1IG9mIDY4IGluIHJlc291cmNlcy9lbnRpdGllczAxLmRhdCBmYWlsZWQu
IElucHV0OgotSSdtICZub3RpdDsgSSB0ZWxsIHlvdQotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gJm5vdGl0OyBJIHRlbGwgeW91IgotRXhwZWN0ZWQ6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIkknbSDCrGl0OyBJIHRl
bGwgeW91IgogcmVzb3VyY2VzL2VudGl0aWVzMDIuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9jb21t
ZW50czAxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQK
aW5kZXggOGE4ZjdiZTM4YzY2ZTMxZjdkNWM5MWVhYTg5YjVmODM4ZmEzYTJhOS4uYzlhZTI0NTQ4
MGQ0OWZmNTAyZjcwMzA3MTJjMjRiOGMzMDU1ZTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CkBAIC0xOTEsOTIgKzE5MSwxMCBAQCByZXNvdXJjZXMvZG9jdHlw
ZTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2NyaXB0ZGF0YTAxLmRhdDogUEFTUwogCi1yZXNv
dXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQ6Ci03Ci05Ci0xMAotMTEKLQotVGVzdCA3IG9mIDI0IGlu
IHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJmxhbmc7JnJhbmc7
Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuOAiOOAiSIK
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLin6ji
n6kiCi0KLVRlc3QgOSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQgZmFpbGVk
LiBJbnB1dDoKLSZJbWFnaW5hcnlJOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgICImSW1hZ2luYXJ5STsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oWIIgotCi1UZXN0IDEwIG9mIDI0IGluIHJlc291cmNl
cy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJktvcGY7Ci1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZLb3BmOyIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLwnZWCIgorcmVzb3VyY2VzL2h0
bWw1dGVzdC1jb20uZGF0OiBQQVNTCiAKLVRlc3QgMTEgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbm90aW52YTsKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJm5vdGludmE7IgotRXhwZWN0ZWQ6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKIiSIKLXJlc291cmNlcy9lbnRp
dGllczAxLmRhdDoKLTIKLTUKK3Jlc291cmNlcy9lbnRpdGllczAxLmRhdDogUEFTUwogCi1UZXN0
IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci1GT08m
Z3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiRk9P
Jmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIkZPTz5CQVIiCi0KLVRlc3QgNSBvZiA2OCBpbiByZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQg
ZmFpbGVkLiBJbnB1dDoKLUknbSAmbm90aXQ7IEkgdGVsbCB5b3UKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiSSdtICZub3RpdDsgSSB0ZWxsIHlvdSIKLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gwqxp
dDsgSSB0ZWxsIHlvdSIKIHJlc291cmNlcy9lbnRpdGllczAyLmRhdDogUEFTUwogCiByZXNvdXJj
ZXMvY29tbWVudHMwMS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFjNjRmNjZmYzVlZjMzZDU3YzQyMmJm
MjZkMWM0N2I3MTZjMmQxNjguLjA0MTM0ZDI1Mzc4ODk0ZTdjNmRjYjMyYTljNzAxZDJhMTIzZGQ3
OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTczLDYgKzk3Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL0hUTUxEb2N1bWVudC5jcHAKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTEVsZW1lbnRTdGFjay5jcHAKKyAgICBodG1sL0hUTUxFbnRpdHlTZWFyY2guY3BwCiAgICAg
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNzYwOGU4ZWVmZTBm
NjNjYjgxZGQ5NWQwYjg5OWVlOGJjYzUwODcuLjI2YjgzYjk2M2FmNDFjZGUyMmVjMWI0NzZjMTIy
NWE5OTdhNjg0NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDgtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0OQorCisgICAgICAgIEltcGxlbWVu
dGluZyB0aGUgSFRNTDUgZW50aXR5IHBhcnNpbmcgYWxnb3JpdGhtIHJlcXVpcmUgcmVmYWN0b3Jp
bmcgaG93CisgICAgICAgIHdlIHNlYXJjaCBmb3IgZW50aXR5IG5hbWVzLiAgSW5zdGVhZCBvZiB1
c2luZyBhIHBlcmZlY3QgaGFzaCwgd2Ugbm93CisgICAgICAgIHVzZSBhIHNvcnRlZCBsaXN0LiAg
QXMgd2UgYWR2YW5jZSB0aHJvdWdoIHRoZSBpbnB1dCwgd2Ugd2FsayBkb3duIGEKKyAgICAgICAg
YmluYXJ5IHNlYXJjaCBvZiB0aGUgdGFibGUgbG9va2luZyBmb3IgYW4gZW50aXR5LgorCisgICAg
ICAgIFVzaW5nIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgbGV0cyB1cyBrZWVwIHRyYWNrIG9mIHdoZXRo
ZXIgdGhlIGN1cnJlbnQKKyAgICAgICAgc3RyaW5nIGlzIGEgcHJlZml4IG9mIGFuIGV4aXN0aW5n
IGVudGl0eSwgd2hpY2ggd2UgbmVlZCBmb3IgdGhlCisgICAgICAgIGFsZ29yaXRobS4gIEluIGEg
ZnV0dXJlIHBhdGNoLCBJIHBsYW4gdG8gYWRkIHNvbWUgaW5kaWNlcyB0byB0aGUKKyAgICAgICAg
dGFibGUsIHdoaWNoIHNob3VsZCBsZXQgdXMgbmFycm93IGRvd24gdGhlIHJhbmdlIG9mIGludGVy
ZXN0aW5nIGVudHJpZXMKKyAgICAgICAgbW9yZSBxdWlja2x5LgorCisgICAgICAgIFRoZSBvbmUg
bmFzdHkgcGllY2Ugb2YgdGhlIGFsZ29yaXRobSBpcyBpZiB3ZSB3YWxrIHRvbyBmYXIgZG93biB0
aGUKKyAgICAgICAgaW5wdXQgYW5kIHdlIG5lZWQgdG8gYmFjayB1cCB0byBhIHByZXZpb3VzIG1h
dGNoLiAgSW4gdGhpcyBwYXRjaCwgd2UKKyAgICAgICAgYWNjb21wbGlzaCB0aGlzIGJ5IHJld2lu
ZGluZyB0aGUgaW5wdXQgYW5kIGNvbnN1bWluZyBhIGtub3duIG51bWJlciBvZgorICAgICAgICBj
aGFyYWN0ZXJzIHRvIHJlc3luYyB0aGUgc291cmNlLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lSFRNTEVudGl0eSk6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5U2VhcmNoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVudGl0eVNlYXJjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpjb21wYXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW50aXR5U2VhcmNoOjpmaW5kRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmFkdmFuY2UpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVNlYXJjaC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmlzRW50aXR5UHJlZml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpsYXN0TWF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVudGl0eVNlYXJjaDo6KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmZhaWwpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVRhYmxlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVRhYmxlRW50cnk6Omxhc3RDaGFyYWN0ZXIpOgorCiAy
MDEwLTA4LTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzdjMmYxMGQzM2Y4
ZGJkOTIzOGRiYjRlMjQ1ZmVlYzM5YjZjOWVkZi4uYzVkZGZmOWVhYjJiZDdhMTBjMmE1YzQ3NGJk
YTU2N2E1YThjMWI0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA1LDcgKzUwNSw3IEBAIGFsbCA6
IFwKICAgICBDb2xvckRhdGEuY3BwIFwKICAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAogICAgIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5jcHAgXAorICAgIEhU
TUxFbnRpdHlUYWJsZS5jcHAgXAogICAgIEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRG
YWN0b3J5LmNwcCBcCiAgICAgV01MTmFtZXMuY3BwIFwKQEAgLTYwMCw4ICs2MDAsOCBAQCBEb2NU
eXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotSFRNTEVudGl0eU5hbWVz
LmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCi0JcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkv
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKK0hUTUxFbnRpdHlUYWJsZS5jcHAgOiBodG1sL0hU
TUxFbnRpdHlOYW1lcy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVh
dGUtaHRtbC1lbnRpdHktdGFibGUKKwlweXRob24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0
eU5hbWVzLmpzb24gPiBIVE1MRW50aXR5VGFibGUuY3BwCiAKICMgLS0tLS0tLS0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggYmNhMmFhZTMwZmI5MDk1ZjY5ZjBmZWUxODk2YjllY2JmN2E0Nzk5NS4uNzIwY2JjMmI1MWFj
ZjExMmMxOTQyOTllZmY3NWM1YjI4NTI1MDE5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC05Miw3ICs5Miw3IEBAIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NWYWx1
ZUtleXdvcmRzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVudEZhY3RvcnkuaCBcCi0J
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5TmFtZXMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSFRNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MTmFtZXMuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAg
XApAQCAtMTQyNyw2ICsxNDI3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50U3RhY2suY3BwIFwK
IAlXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnRTdGFjay5oIFwKKwlXZWJDb3JlL2h0bWwvSFRNTEVu
dGl0eVNlYXJjaC5jcHAgXAorCVdlYkNvcmUvaHRtbC9IVE1MRW50aXR5U2VhcmNoLmggXAogCVdl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKQEAg
LTQzOTMsOCArNDM5NSw4IEBAIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRG9jVHlwZVN0cmluZ3Mu
Y3BwIDogJChXZWJDb3JlKS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAJJChQRVJMKSAkKFdl
YkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkgJChXZWJDb3Jl
KS9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKLURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eU5hbWVzLmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9I
VE1MRW50aXR5TmFtZXMuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKLQkkKFBF
UkwpICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsICQoR0VOU09VUkNFU19XRUJDT1JFKSAk
KFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCitEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0hUTUxFbnRpdHlUYWJsZS5jcHAgOiAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVz
Lmpzb24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0
eS10YWJsZQorCSQoUFlUSE9OKSAkKFdlYkNvcmUpLy4uL1dlYktpdFRvb2xzL1NjcmlwdHMvY3Jl
YXRlLWh0bWwtZW50aXR5LXRhYmxlICQoV2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNv
biA+ICQoR0VOU09VUkNFU19XRUJDT1JFKS9IVE1MRW50aXR5VGFibGUuY3BwCiAKICMgY29sb3Ig
bmFtZXMKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcDogJChXZWJDb3JlKS9w
bGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYgJChXZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggNzRlODEyNjliYjU3Yjc3ZDRlMzFkZWU0NGYxZTI2NTc4OTQxNDE4ZC4uMDE5Y2IyYzAyMjMz
NDgwMjgyYjJkMDBkZWE1YWYwZWZmOGFhMzZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE1ODgsNiArMTU4OCw4IEBACiAg
ICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxF
bGVtZW50U3RhY2suY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxFbGVtZW50U3RhY2suaCcs
CisgICAgICAgICAgICAnaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9IVE1MRW50aXR5U2VhcmNoLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oJywKICAgICAg
ICAgICAgICdodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGIwZWZmZWU3ZWI2ZWUy
YjFlYjdlYjRmYjVkZTY2OTlmZThhODRlYzguLjEzN2MzYjAzZmUxMGNkYmI3NmIwZGNhNzY3OWNi
NzYyMTAxYTQxNzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQpAQCAtMjksNyArMjksNyBAQCBYTUxfTkFNRVMgPSAkJFBXRC94bWwveG1s
YXR0cnMuaW4KIAogWE1MTlNfTkFNRVMgPSAkJFBXRC94bWwveG1sbnNhdHRycy5pbgogCi1FTlRJ
VElFU19HUEVSRiA9ICQkUFdEL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCitIVE1MX0VOVElU
SUVTID0gJCRQV0QvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNvbgogCiBDT0xPUkRBVEFfR1BFUkYg
PSAkJFBXRC9wbGF0Zm9ybS9Db2xvckRhdGEuZ3BlcmYKIApAQCAtNTkwLDEyICs1OTAsMTIgQEAg
eG1sbmFtZXMuY29tbWFuZHMgPSBwZXJsIC1JJCRQV0QvYmluZGluZ3Mvc2NyaXB0cyAkJHhtbG5h
bWVzLndrU2NyaXB0IC0tYXR0cnMgJCQKIGFkZEV4dHJhQ29tcGlsZXIoeG1sbmFtZXMpCiAKICMg
R0VORVJBVE9SIDgtQToKLWVudGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0vSFRNTEVudGl0eU5hbWVzLmNwcAotZW50aXRpZXMuaW5wdXQgPSBFTlRJVElFU19HUEVS
RgotZW50aXRpZXMud2tTY3JpcHQgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKLWVudGl0aWVz
LmNvbW1hbmRzID0gcGVybCAkJGVudGl0aWVzLndrU2NyaXB0ICQke1dDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0gJCRFTlRJVElFU19HUEVSRgorZW50aXRpZXMub3V0cHV0ID0gJCR7V0NfR0VORVJB
VEVEX1NPVVJDRVNfRElSfS9IVE1MRW50aXR5VGFibGUuY3BwCitlbnRpdGllcy5pbnB1dCA9IEhU
TUxfRU5USVRJRVMKK2VudGl0aWVzLndrU2NyaXB0ID0gJCRQV0QvLi4vV2ViS2l0VG9vbHMvU2Ny
aXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKK2VudGl0aWVzLmNvbW1hbmRzID0gcHl0aG9u
ICQkZW50aXRpZXMud2tTY3JpcHQgJCRIVE1MX0VOVElUSUVTID4gJCR7V0NfR0VORVJBVEVEX1NP
VVJDRVNfRElSfS9IVE1MRW50aXR5VGFibGUuY3BwCiBlbnRpdGllcy5jbGVhbiA9ICR7UU1BS0Vf
RklMRV9PVVR9Ci1lbnRpdGllcy5kZXBlbmRzID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCitl
bnRpdGllcy5kZXBlbmRzID0gJCRQV0QvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRt
bC1lbnRpdHktdGFibGUKIGFkZEV4dHJhQ29tcGlsZXIoZW50aXRpZXMpCiAKICMgR0VORVJBVE9S
IDgtQjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDRjYTlmZDBjOGU3YTkxZDA3NzhmNjU0YTA3MGFhMmFiYmEwMWJmOTEuLjY5NGI2
NTMxMTIxMTM3ZWIzNGE3MWRiNzJjMGNkNjc2MzBlNWMwYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNjc3LDYgKzY3Nyw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTERvY3VtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1M
RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTEVsZW1lbnRTdGFjay5jcHAgXAorICAgIGh0bWwv
SFRNTEVudGl0eVNlYXJjaC5jcHAgXAogICAgIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgXAog
ICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTEZvbnRFbGVt
ZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1ZmY0MjUw
N2I2MmRkYzU2MGE4OTRhOWZlMmIyMjhjZjcxYzQzYmJjLi4yODVjMGEzYmQ1ZDYwNDIwMWFkY2Yy
MjUwOWY5ZjVlZDdiZDM4ZTFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTM3NjM3LDYgKzM3NjM3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVudGl0eVNlYXJjaC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxF
bnRpdHlTZWFyY2guaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVtYmVkRWxlbWVudC5jcHAiDQogCQkJCT4NCiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmOWVkMWI0MzEzOTZiZTBjMWZkODdlMTA3ZDY1MWMxNzJiZjMwMjQzLi43NTBlZDQw
MGE4ZGVmZDQxNGNlYTk1Y2FjZTIyZjFmYjlmMTQ1MjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE4MSw2ICszMTgxLDkgQEAKIAkJQThBNTY0QTYx
MURDMEU1OTAwM0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNTY0QTQxMURDMEU1OTAw
M0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwICovOyB9OwogCQlBOEE5MDlB
QzBDQkNENkI1MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBOTA5QUEwQ0JD
RDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCAqLzsgfTsK
IAkJQThBOTA5QUQwQ0JDRDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250
YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBOTA5QUIwQ0JDRDZCNTAwMjlCODA3IC8qIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuY3BwICovOyB9OworCQlBOEJDMDQ0RTEyMTRFQjJBMDBCNUYxMjIgLyogSFRNTEVudGl0eVNl
YXJjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzBDNEZERjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5jcHAgKi87IH07CisJ
CUE4QkMwNDRGMTIxNEVCMkIwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBDNEZFMDEyMTEyNjYyMDBD
M0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5oICovOyB9OworCQlBOEJDMDQ5MjEyMTRGNjk2MDBC
NUYxMjIgLyogSFRNTEVudGl0eVRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5
VGFibGUuY3BwICovOyB9OwogCQlBOEJDRkQwNTEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0aFNl
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEJD
RkQwNDEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0aFNlZy5jcHAgKi87IH07CiAJCUE4QzIyODBF
MTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMyMjgwRDExRDRBNTk3MDBENUE3RDMgLyog
RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OwogCQlBOEMyMjhBMTExRDU3MjJFMDBENUE3RDMgLyog
RGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRh
RG9jdW1lbnRQYXJzZXIuaCAqLzsgfTsKQEAgLTg0NzYsNiArODQ3OSwxMCBAQAogCQk5NzA1OTk3
NDEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG9saWN5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xp
Y3lDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGREYxMjExMjY2MjAwQzNE
MzkzIC8qIEhUTUxFbnRpdHlTZWFyY2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTEVudGl0eVNlYXJjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5U2VhcmNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxFbnRpdHlTZWFyY2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGRTExMjExMjY2MjAwQzNEMzkzIC8qIEhUTUxFbnRp
dHlUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRW50
aXR5VGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzBDNEZFMjEyMTEy
NjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxFbnRpdHlUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzE5QUVGRjExRDA5RjJDMDBENDU4MzEgLyogSFRNTElucHV0U3RyZWFtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxJbnB1dFN0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzM4ODk5RTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRXcml0
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzM4ODk5RjExNkVBOURDMDBB
REYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRG9jdW1lbnRXcml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4NjEs
NiArODg2OCw3IEBACiAJCUE4QTU2NEE0MTFEQzBFNTkwMDNBQzJGMCAvKiBIVE1MRm9ybWF0dGlu
Z0VsZW1lbnRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE5MDlBQTBDQkNENkI1MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTkwOUFC
MENCQ0Q2QjUwMDI5QjgwNyAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEJDMDQ5MTEy
MTRGNjk2MDBCNUYxMjIgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEhUTUxFbnRpdHlUYWJsZS5jcHA7IHBhdGggPSAvYnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5VGFibGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlBOEJDRkQwNDEyMEEwNDYxMDBCNUYxMjIgLyogU1ZHUGF0
aFNlZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoU2Vn
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDMjI4MEQxMUQ0QTU5NzAwRDVB
N0QzIC8qIERvY3VtZW50UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERvY3VtZW50UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5NDEsNyArMTA5NDksNiBAQAog
CQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERv
Y1R5cGVTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERv
Y1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNkYzRkIx
MTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlOYW1lcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTBDMEQ5QTA1ODcwMDMzQ0U5NyAvKiBFbGVt
ZW50VGltZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRUaW1lQ29u
dHJvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTY4MEQ5QTE2NUQw
MDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjI4OCw3ICsxMjI5NSw3IEBACiAJCQkJ
RTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLywKIAkJCQlB
MTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLywKIAkJ
CQlBMTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8sCi0J
CQkJRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8sCisJ
CQkJQThCQzA0OTExMjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgKi8sCiAJ
CQkJQThEMDZCMzgwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgKi8sCiAJCQkJQThE
MDZCMzcwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5oICovLAogCQkJCTkzOEU2NUY2MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLApAQCAt
MTM5ODYsNiArMTM5OTMsMTAgQEAKIAkJCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRN
TEVtYmVkRWxlbWVudC5pZGwgKi8sCiAJCQkJOTc2RTg5NUUxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhU
TUxFbnRpdHlQYXJzZXIuY3BwICovLAogCQkJCTk3NkU4OTVGMTFDMENBM0EwMEVBOUNBOSAvKiBI
VE1MRW50aXR5UGFyc2VyLmggKi8sCisJCQkJOTcwQzRGREYxMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlTZWFyY2guY3BwICovLAorCQkJCTk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBI
VE1MRW50aXR5U2VhcmNoLmggKi8sCisJCQkJOTcwQzRGRTExMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlUYWJsZS5jcHAgKi8sCisJCQkJOTcwQzRGRTIxMjExMjY2MjAwQzNEMzkzIC8qIEhU
TUxFbnRpdHlUYWJsZS5oICovLAogCQkJCUE4MTM2OUI5MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
RmllbGRTZXRFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCODA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTEZpZWxkU2V0RWxlbWVudC5oICovLAogCQkJCTFBRTJBOUY0MEExQ0RBNTcwMEI0MkIyNSAv
KiBIVE1MRmllbGRTZXRFbGVtZW50LmlkbCAqLywKQEAgLTIwMTU2LDYgKzIwMTY3LDcgQEAKIAkJ
CQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRUVENTdGRTEyMTRBOUMyMDA3NjU2QkIgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThCQzA0NEYxMjE0RUIyQjAwQjVGMTIyIC8qIEhUTUxF
bnRpdHlTZWFyY2guaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI1ODIsNiArMjI1OTQsOCBAQAogCQkJ
CUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkVFRDU3RkQxMjE0QTlDMjAwNzY1NkJCIC8qIFRocmVhZGFibGVC
bG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThCQzA0NEUxMjE0RUIyQTAwQjVG
MTIyIC8qIEhUTUxFbnRpdHlTZWFyY2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThCQzA0OTIx
MjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NjY1ZWZlYTUyNDAxYTIwMjMzN2NmMmVhNmJiODgwMGJiY2I3NTRkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFt
ZXMuZ3BlcmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBAQAotJXsKLS8qCi0gICAgIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBtcGktaGQubXBnLmRlKQotICAgICBD
b3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICAKLSAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICAKLSAgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICAKLSAgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAgCi0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
Ci0gICAgSFRNTEVudGl0eU5hbWVzLmdwZXJmOiBpbnB1dCBmaWxlIHRvIGdlbmVyYXRlIGEgaGFz
aCB0YWJsZSBmb3IgZW50aXRpZXMKLSAgICBIVE1MRW50aXR5TmFtZXMuY3BwOiBETyBOT1QgRURJ
VCEgZ2VuZXJhdGVkIGJ5IFdlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCi0qLwotJX0KLSVzdHJ1
Y3QtdHlwZQotc3RydWN0IEVudGl0eSB7Ci0gICAgY29uc3QgY2hhciAqbmFtZTsKLSAgICBpbnQg
Y29kZTsKLX07Ci0lbGFuZ3VhZ2U9QU5TSS1DCi0lcmVhZG9ubHktdGFibGVzCi0lZ2xvYmFsLXRh
YmxlCi0lY29tcGFyZS1zdHJuY21wCi0lZGVmaW5lIGxvb2t1cC1mdW5jdGlvbi1uYW1lIGZpbmRF
bnRpdHkKLSVkZWZpbmUgaGFzaC1mdW5jdGlvbi1uYW1lIGVudGl0eV9oYXNoX2Z1bmN0aW9uCi0l
aW5jbHVkZXMKLSVlbnVtCi0lJQotQUVsaWcsIDB4MDBjNgotQU1QLCAzOAotQWFjdXRlLCAweDAw
YzEKLUFjaXJjLCAweDAwYzIKLUFncmF2ZSwgMHgwMGMwCi1BbHBoYSwgMHgwMzkxCi1BcmluZywg
MHgwMGM1Ci1BdGlsZGUsIDB4MDBjMwotQXVtbCwgMHgwMGM0Ci1CZXRhLCAweDAzOTIKLUNPUFks
IDB4MDBhOQotQ2NlZGlsLCAweDAwYzcKLUNoaSwgMHgwM2E3Ci1EYWdnZXIsIDB4MjAyMQotRGVs
dGEsIDB4MDM5NAotRVRILCAweDAwZDAKLUVhY3V0ZSwgMHgwMGM5Ci1FY2lyYywgMHgwMGNhCi1F
Z3JhdmUsIDB4MDBjOAotRXBzaWxvbiwgMHgwMzk1Ci1FdGEsIDB4MDM5NwotRXVtbCwgMHgwMGNi
Ci1HVCwgNjIKLUdhbW1hLCAweDAzOTMKLUlhY3V0ZSwgMHgwMGNkCi1JY2lyYywgMHgwMGNlCi1J
Z3JhdmUsIDB4MDBjYwotSW90YSwgMHgwMzk5Ci1JdW1sLCAweDAwY2YKLUthcHBhLCAweDAzOWEK
LUxULCA2MAotTGFtYmRhLCAweDAzOWIKLU11LCAweDAzOWMKLU50aWxkZSwgMHgwMGQxCi1OdSwg
MHgwMzlkCi1PRWxpZywgMHgwMTUyCi1PYWN1dGUsIDB4MDBkMwotT2NpcmMsIDB4MDBkNAotT2dy
YXZlLCAweDAwZDIKLU9tZWdhLCAweDAzYTkKLU9taWNyb24sIDB4MDM5ZgotT3NsYXNoLCAweDAw
ZDgKLU90aWxkZSwgMHgwMGQ1Ci1PdW1sLCAweDAwZDYKLVBoaSwgMHgwM2E2Ci1QaSwgMHgwM2Ew
Ci1QcmltZSwgMHgyMDMzCi1Qc2ksIDB4MDNhOAotUVVPVCwgMzQKLVJFRywgMHgwMGFlCi1SaG8s
IDB4MDNhMQotU2Nhcm9uLCAweDAxNjAKLVNpZ21hLCAweDAzYTMKLVRIT1JOLCAweDAwZGUKLVRh
dSwgMHgwM2E0Ci1UaGV0YSwgMHgwMzk4Ci1VYWN1dGUsIDB4MDBkYQotVWNpcmMsIDB4MDBkYgot
VWdyYXZlLCAweDAwZDkKLVVwc2lsb24sIDB4MDNhNQotVXVtbCwgMHgwMGRjCi1YaSwgMHgwMzll
Ci1ZYWN1dGUsIDB4MDBkZAotWXVtbCwgMHgwMTc4Ci1aZXRhLCAweDAzOTYKLWFhY3V0ZSwgMHgw
MGUxCi1hY2lyYywgMHgwMGUyCi1hY3V0ZSwgMHgwMGI0Ci1hZWxpZywgMHgwMGU2Ci1hZ3JhdmUs
IDB4MDBlMAotYWxlZnN5bSwgMHgyMTM1Ci1hbHBoYSwgMHgwM2IxCi1hbXAsIDM4Ci1hbmQsIDB4
MjIyNwotYW5nLCAweDIyMjAKLWFwb3MsIDB4MDAyNwotYXJpbmcsIDB4MDBlNQotYXN5bXAsIDB4
MjI0OAotYXRpbGRlLCAweDAwZTMKLWF1bWwsIDB4MDBlNAotYmRxdW8sIDB4MjAxZQotYmV0YSwg
MHgwM2IyCi1icnZiYXIsIDB4MDBhNgotYnVsbCwgMHgyMDIyCi1jYXAsIDB4MjIyOQotY2NlZGls
LCAweDAwZTcKLWNlZGlsLCAweDAwYjgKLWNlbnQsIDB4MDBhMgotY2hpLCAweDAzYzcKLWNpcmMs
IDB4MDJjNgotY2x1YnMsIDB4MjY2MwotY29uZywgMHgyMjQ1Ci1jb3B5LCAweDAwYTkKLWNyYXJy
LCAweDIxYjUKLWN1cCwgMHgyMjJhCi1jdXJyZW4sIDB4MDBhNAotZEFyciwgMHgyMWQzCi1kYWdn
ZXIsIDB4MjAyMAotZGFyciwgMHgyMTkzCi1kZWcsIDB4MDBiMAotZGVsdGEsIDB4MDNiNAotZGlh
bXMsIDB4MjY2NgotZGl2aWRlLCAweDAwZjcKLWVhY3V0ZSwgMHgwMGU5Ci1lY2lyYywgMHgwMGVh
Ci1lZ3JhdmUsIDB4MDBlOAotZW1wdHksIDB4MjIwNQotZW1zcCwgMHgyMDAzCi1lbnNwLCAweDIw
MDIKLWVwc2lsb24sIDB4MDNiNQotZXF1aXYsIDB4MjI2MQotZXRhLCAweDAzYjcKLWV0aCwgMHgw
MGYwCi1ldW1sLCAweDAwZWIKLWV1cm8sIDB4MjBhYwotZXhpc3QsIDB4MjIwMwotZm5vZiwgMHgw
MTkyCi1mb3JhbGwsIDB4MjIwMAotZnJhYzEyLCAweDAwYmQKLWZyYWMxNCwgMHgwMGJjCi1mcmFj
MzQsIDB4MDBiZQotZnJhc2wsIDB4MjA0NAotZ2FtbWEsIDB4MDNiMwotZ2UsIDB4MjI2NQotZ3Qs
IDYyCi1oQXJyLCAweDIxZDQKLWhhcnIsIDB4MjE5NAotaGVhcnRzLCAweDI2NjUKLWhlbGxpcCwg
MHgyMDI2Ci1pYWN1dGUsIDB4MDBlZAotaWNpcmMsIDB4MDBlZQotaWV4Y2wsIDB4MDBhMQotaWdy
YXZlLCAweDAwZWMKLWltYWdlLCAweDIxMTEKLWluZmluLCAweDIyMWUKLWludCwgMHgyMjJiCi1p
b3RhLCAweDAzYjkKLWlxdWVzdCwgMHgwMGJmCi1pc2luLCAweDIyMDgKLWl1bWwsIDB4MDBlZgot
a2FwcGEsIDB4MDNiYQotbEFyciwgMHgyMWQwCi1sYW1iZGEsIDB4MDNiYgotbGFuZywgMHgzMDA4
Ci1sYXF1bywgMHgwMGFiCi1sYXJyLCAweDIxOTAKLWxjZWlsLCAweDIzMDgKLWxkcXVvLCAweDIw
MWMKLWxlLCAweDIyNjQKLWxmbG9vciwgMHgyMzBhCi1sb3dhc3QsIDB4MjIxNwotbG96LCAweDI1
Y2EKLWxybSwgMHgyMDBlCi1sc2FxdW8sIDB4MjAzOQotbHNxdW8sIDB4MjAxOAotbHQsIDYwCi1t
YWNyLCAweDAwYWYKLW1kYXNoLCAweDIwMTQKLW1pY3JvLCAweDAwYjUKLW1pZGRvdCwgMHgwMGI3
Ci1taW51cywgMHgyMjEyCi1tdSwgMHgwM2JjCi1uYWJsYSwgMHgyMjA3Ci1uYnNwLCAweDAwYTAK
LW5kYXNoLCAweDIwMTMKLW5lLCAweDIyNjAKLW5pLCAweDIyMGIKLW5vdCwgMHgwMGFjCi1ub3Rp
biwgMHgyMjA5Ci1uc3ViLCAweDIyODQKLW5zdXAsIDB4MjI4NQotbnRpbGRlLCAweDAwZjEKLW51
LCAweDAzYmQKLW9hY3V0ZSwgMHgwMGYzCi1vY2lyYywgMHgwMGY0Ci1vZWxpZywgMHgwMTUzCi1v
Z3JhdmUsIDB4MDBmMgotb2xpbmUsIDB4MjAzZQotb21lZ2EsIDB4MDNjOQotb21pY3JvbiwgMHgw
M2JmCi1vcGx1cywgMHgyMjk1Ci1vciwgMHgyMjI4Ci1vcmRmLCAweDAwYWEKLW9yZG0sIDB4MDBi
YQotb3NsYXNoLCAweDAwZjgKLW90aWxkZSwgMHgwMGY1Ci1vdGltZXMsIDB4MjI5Nwotb3VtbCwg
MHgwMGY2Ci1wYXJhLCAweDAwYjYKLXBhcnQsIDB4MjIwMgotcGVyY250LCAweDAwMjUKLXBlcm1p
bCwgMHgyMDMwCi1wZXJwLCAweDIyYTUKLXBoaSwgMHgwM2M2Ci1waSwgMHgwM2MwCi1waXYsIDB4
MDNkNgotcGx1c21uLCAweDAwYjEKLXBvdW5kLCAweDAwYTMKLXByaW1lLCAweDIwMzIKLXByb2Qs
IDB4MjIwZgotcHJvcCwgMHgyMjFkCi1wc2ksIDB4MDNjOAotcXVvdCwgMzQKLXJBcnIsIDB4MjFk
MgotcmFkaWMsIDB4MjIxYQotcmFuZywgMHgzMDA5Ci1yYXF1bywgMHgwMGJiCi1yYXJyLCAweDIx
OTIKLXJjZWlsLCAweDIzMDkKLXJkcXVvLCAweDIwMWQKLXJlYWwsIDB4MjExYwotcmVnLCAweDAw
YWUKLXJmbG9vciwgMHgyMzBiCi1yaG8sIDB4MDNjMQotcmxtLCAweDIwMGYKLXJzYXF1bywgMHgy
MDNhCi1yc3F1bywgMHgyMDE5Ci1zYnF1bywgMHgyMDFhCi1zY2Fyb24sIDB4MDE2MQotc2RvdCwg
MHgyMmM1Ci1zZWN0LCAweDAwYTcKLXNoeSwgMHgwMGFkCi1zaWdtYSwgMHgwM2MzCi1zaWdtYWYs
IDB4MDNjMgotc2ltLCAweDIyM2MKLXNwYWRlcywgMHgyNjYwCi1zdWIsIDB4MjI4Mgotc3ViZSwg
MHgyMjg2Ci1zdW0sIDB4MjIxMQotc3VwLCAweDIyODMKLXN1cDEsIDB4MDBiOQotc3VwMiwgMHgw
MGIyCi1zdXAzLCAweDAwYjMKLXN1cGUsIDB4MjI4Nwotc3VwbCwgMHgwMGI5Ci1zemxpZywgMHgw
MGRmCi10YXUsIDB4MDNjNAotdGhlcmU0LCAweDIyMzQKLXRoZXRhLCAweDAzYjgKLXRoZXRhc3lt
LCAweDAzZDEKLXRoaW5zcCwgMHgyMDA5Ci10aG9ybiwgMHgwMGZlCi10aWxkZSwgMHgwMmRjCi10
aW1lcywgMHgwMGQ3Ci10cmFkZSwgMHgyMTIyCi11QXJyLCAweDIxZDEKLXVhY3V0ZSwgMHgwMGZh
Ci11YXJyLCAweDIxOTEKLXVjaXJjLCAweDAwZmIKLXVncmF2ZSwgMHgwMGY5Ci11bWwsIDB4MDBh
OAotdXBzaWgsIDB4MDNkMgotdXBzaWxvbiwgMHgwM2M1Ci11dW1sLCAweDAwZmMKLXdlaWVycCwg
MHgyMTE4Ci14aSwgMHgwM2JlCi15YWN1dGUsIDB4MDBmZAoteWVuLCAweDAwYTUKLXl1bWwsIDB4
MDBmZgotemV0YSwgMHgwM2I2Ci16d2osIDB4MjAwZAotenduaiwgMHgyMDBjCi0lJQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxFbnRpdHlQYXJzZXIuY3BwCmluZGV4IDZiZWM4MTkwZGM4ODZjYzNlNjlkZjcxZWQwNDA1ZmEx
MDZjMGJlMDMuLmFmM2I5ZjNmNjNjZDljZjhmOWEwNjQzOWQ0YzJhNzcyZGFmNzFjYTEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eVBhcnNlci5jcHAKQEAgLTI4LDEwICsyOCwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkhUTUxFbnRpdHlQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkhUTUxF
bnRpdHlTZWFyY2guaCIKKyNpbmNsdWRlICJIVE1MRW50aXR5VGFibGUuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKLSNpbmNsdWRlICJIVE1MRW50aXR5TmFtZXMuY3BwIgotCiB1c2luZyBu
YW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDIsNyArMTAyLDYgQEAg
dW5zaWduZWQgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wm
IG5vdEVub3VnaENoYXJhY3RlcnMsIFUKICAgICBFbnRpdHlTdGF0ZSBlbnRpdHlTdGF0ZSA9IElu
aXRpYWw7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKICAgICBWZWN0b3I8VUNoYXIsIDEwPiBj
b25zdW1lZENoYXJhY3RlcnM7Ci0gICAgVmVjdG9yPGNoYXIsIDEwPiBlbnRpdHlOYW1lOwogCiAg
ICAgd2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgpKSB7CiAgICAgICAgIFVDaGFyIGNjID0gKnNvdXJj
ZTsKQEAgLTE2Niw3ICsxNjUsNyBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gJzsnKSB7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQ
YXN0Tm9uTmV3bGluZSgpOwogICAgICAgICAgICAgICAgIHJldHVybiBsZWdhbEVudGl0eUZvcihy
ZXN1bHQpOwotICAgICAgICAgICAgfSBlbHNlIAorICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMTgxLDQ4ICsxODAsNDggQEAgdW5zaWduZWQgY29uc3VtZUhUTUxF
bnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJhY3RlcnMs
IFUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgTmFtZWQ6IHsK
LSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgd3JvbmcuIFdlIG5lZWQgdG8gZmlu
ZCB0aGUgbG9uZ2VzdCBtYXRjaGluZyBlbnRpdHkuCi0gICAgICAgICAgICAvLyAgICAgICAgVGhl
IGV4YW1wbGVzIGZyb20gdGhlIHNwZWMgYXJlOgotICAgICAgICAgICAgLy8gICAgICAgICAgICBJ
J20gJm5vdGl0OyBJIHRlbGwgeW91Ci0gICAgICAgICAgICAvLyAgICAgICAgICAgIEknbSAmbm90
aW47IEkgdGVsbCB5b3UKLSAgICAgICAgICAgIC8vICAgICAgICBJbiB0aGUgZmlyc3QgY2FzZSwg
IiZub3QiIGlzIHRoZSBlbnRpdHkuICBJbiB0aGUgc2Vjb25kCi0gICAgICAgICAgICAvLyAgICAg
ICAgY2FzZSwgIiZub3RpbjsiIGlzIHRoZSBlbnRpdHkuCi0gICAgICAgICAgICAvLyBGSVhNRTog
T3VyIGxpc3Qgb2YgSFRNTCBlbnRpdGllcyBpcyBpbmNvbXBsZXRlLgotICAgICAgICAgICAgLy8g
RklYTUU6IFRoZSBudW1iZXIgOCBiZWxvdyBpcyBib2d1cy4KLSAgICAgICAgICAgIHdoaWxlICgh
c291cmNlLmlzRW1wdHkoKSAmJiBlbnRpdHlOYW1lLnNpemUoKSA8PSA4KSB7CisgICAgICAgICAg
ICBIVE1MRW50aXR5U2VhcmNoIGVudGl0eVNlYXJjaDsKKyAgICAgICAgICAgIHdoaWxlICghc291
cmNlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGNjID0gKnNvdXJjZTsKLSAgICAgICAg
ICAgICAgICBpZiAoY2MgPT0gJzsnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEVudGl0
eSogZW50aXR5ID0gZmluZEVudGl0eShlbnRpdHlOYW1lLmRhdGEoKSwgZW50aXR5TmFtZS5zaXpl
KCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5KSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVCgnOycpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGVudGl0eS0+Y29kZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
aWYgKCFpc0FscGhhTnVtZXJpYyhjYykpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgRW50
aXR5KiBlbnRpdHkgPSBmaW5kRW50aXR5KGVudGl0eU5hbWUuZGF0YSgpLCBlbnRpdHlOYW1lLnNp
emUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlbnRpdHkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEhUTUw1IHRlbGxzIHVzIHRvIGlnbm9yZSB0aGlzIGVudGl0eSwgZm9yIGhp
c3RvcmljYWwgcmVhc29ucywKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBsb29r
aGVhZCBjaGFyYWN0ZXIgaXMgJz0nLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFkZGl0
aW9uYWxBbGxvd2VkQ2hhcmFjdGVyICYmIGNjID09ICc9JykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNvbWUgZW50aXRpZXMg
cmVxdWlyZSBhIHRlcm1pbmF0aW5nIHNlbWljb2xvbiwgd2hlcmVhcyBvdGhlcgotICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZW50aXRpZXMgZG8gbm90LiAgVGhlIEhUTUw1IHNwZWMgaGFzIGEg
Z2lhbnQgbGlzdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAg
ICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS9uYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcy5odG1sI25hbWVkLWNoYXJh
Y3Rlci1yZWZlcmVuY2VzCi0gICAgICAgICAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gSG93ZXZlciwgdGhlIGxpc3Qgc2VlbXMgdG8gYm9pbCBkb3duIHRvIHRo
aXMgYnJhbmNoOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudGl0eS0+Y29kZSA+IDI1
NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBlbnRpdHktPmNvZGU7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBlbnRpdHlTZWFyY2guYWR2YW5jZShjYyk7CisgICAgICAgICAgICAgICAgaWYg
KCFlbnRpdHlTZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVudGl0eU5hbWUuYXBwZW5k
KGNjKTsKICAgICAgICAgICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKGNjKTsKICAg
ICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZEFTU0VSVChjYyk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBub3RFbm91Z2hDaGFyYWN0ZXJzID0gc291cmNlLmlzRW1wdHkoKTsKKyAg
ICAgICAgICAgIGlmIChub3RFbm91Z2hDaGFyYWN0ZXJzKSB7CisgICAgICAgICAgICAgICAgLy8g
V2UgY2FuJ3QgYW4gZW50aXR5IGJlY2F1c2UgdGhlcmUgbWlnaHQgYmUgYSBsb25nZXIgZW50aXR5
CisgICAgICAgICAgICAgICAgLy8gdGhhdCB3ZSBjb3VsZCBtYXRjaCBpZiB3ZSBoYWQgbW9yZSBk
YXRhLgorICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1l
ZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKCFlbnRpdHlTZWFyY2gubGFzdE1hdGNoKCkpIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoIWVudGl0eVNlYXJjaC5jdXJyZW50VmFsdWUoKSk7CisgICAgICAgICAgICAg
ICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW50
aXR5U2VhcmNoLmxhc3RNYXRjaCgpLT5sZW5ndGggIT0gZW50aXR5U2VhcmNoLmN1cnJlbnRMZW5n
dGgoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGNvbnN1bWVkIHRvbyBtYW55IGNoYXJh
Y3RlcnMuICBXZSBuZWVkIHRvIHdhbGsgdGhlCisgICAgICAgICAgICAgICAgLy8gc291cmNlIGJh
Y2sgdG8gdGhlIHBvaW50IGF0IHdoaWNoIHdlIGhhZCBjb25zdW1lZCBhbgorICAgICAgICAgICAg
ICAgIC8vIGFjdHVhbCBlbnRpdHkuCisgICAgICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFjdGVy
cyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgY29uc3VtZWRD
aGFyYWN0ZXJzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY29uc3QgaW50IGxlbmd0aCA9IGVu
dGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+bGVuZ3RoOworICAgICAgICAgICAgICAgIGNvbnN0IFVD
aGFyKiByZWZlcmVuY2UgPSBlbnRpdHlTZWFyY2gubGFzdE1hdGNoKCktPmVudGl0eTsKKyAgICAg
ICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGNjID0gKnNvdXJjZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChyZWZlcmVuY2UsIGNjID09ICpyZWZlcmVuY2UrKyk7CisgICAgICAgICAgICAgICAgICAgIGNv
bnN1bWVkQ2hhcmFjdGVycy5hcHBlbmQoY2MpOworICAgICAgICAgICAgICAgICAgICBzb3VyY2Uu
YWR2YW5jZUFuZEFTU0VSVChjYyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghc291cmNl
LmlzRW1wdHkoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNjID0gKnNv
dXJjZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbnRpdHlTZWFyY2gubGFzdE1h
dGNoKCktPmxhc3RDaGFyYWN0ZXIoKSA9PSAnOycpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVu
dGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+dmFsdWU7CisgICAgICAgICAgICBpZiAoIWFkZGl0aW9u
YWxBbGxvd2VkQ2hhcmFjdGVyIHx8ICEoaXNBbHBoYU51bWVyaWMoY2MpIHx8IGNjID09ICc9Jykp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+dmFsdWU7
CiAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0
ZXJzKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC0yMzgsOCArMjM3LDE4
IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAKIFVDaGFyIGRlY29kZU5hbWVkRW50aXR5KGNv
bnN0IGNoYXIqIG5hbWUpCiB7Ci0gICAgY29uc3QgRW50aXR5KiBlID0gZmluZEVudGl0eShuYW1l
LCBzdHJsZW4obmFtZSkpOwotICAgIHJldHVybiBlID8gZS0+Y29kZSA6IDA7CisgICAgSFRNTEVu
dGl0eVNlYXJjaCBzZWFyY2g7CisgICAgd2hpbGUgKG5hbWUgJiYgc2VhcmNoLmlzRW50aXR5UHJl
Zml4KCkpCisgICAgICAgIHNlYXJjaC5hZHZhbmNlKCpuYW1lKyspOworICAgIHNlYXJjaC5hZHZh
bmNlKCc7Jyk7CisgICAgVUNoYXIzMiBlbnRpdHlWYWx1ZSA9IHNlYXJjaC5jdXJyZW50VmFsdWUo
KTsKKyAgICBpZiAoVTE2X0xFTkdUSChlbnRpdHlWYWx1ZSkgIT0gMSkgeworICAgICAgICAvLyBD
YWxsZXJzIG5lZWQgdG8gbW92ZSBvZmYgdGhpcyBBUEkgaWYgdGhlIGVudGl0eSB0YWJsZSBoYXMg
dmFsdWVzCisgICAgICAgIC8vIHdoaWNoIGRvIG5vIGZpdCBpbiBhIDE2IGJpdCBVQ2hhciEKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VUNoYXI+KGVudGl0eVZhbHVlKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlTZWFyY2gu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlTZWFyY2guY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNTI2
YTNkNmRlN2ZiMjdlYmIzYzgzYWMzOWExZWE3YTY2ZWMxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSFRNTEVudGl0eVNlYXJjaC5oIgorCisjaW5jbHVkZSAiSFRNTEVu
dGl0eVRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKyAgICAK
K2NvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBoYWxmd2F5KGNvbnN0IEhUTUxFbnRpdHlUYWJs
ZUVudHJ5KiBsZWZ0LCBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogcmlnaHQpCit7CisgICAg
cmV0dXJuICZsZWZ0WyhyaWdodCAtIGxlZnQpIC8gMl07Cit9CisKK30KKyAgICAKK0hUTUxFbnRp
dHlTZWFyY2g6OkhUTUxFbnRpdHlTZWFyY2goKQorICAgIDogbV9jdXJyZW50TGVuZ3RoKDApCisg
ICAgLCBtX2N1cnJlbnRWYWx1ZSgwKQorICAgICwgbV9sYXN0TWF0Y2goMCkKKyAgICAsIG1fc3Rh
cnQoSFRNTEVudGl0eVRhYmxlOjpzdGFydCgpKQorICAgICwgbV9lbmQoSFRNTEVudGl0eVRhYmxl
OjplbmQoKSkKK3sKK30KKworSFRNTEVudGl0eVNlYXJjaDo6Q29tcGFyZVJlc3VsdCBIVE1MRW50
aXR5U2VhcmNoOjpjb21wYXJlKGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBlbnRyeSwgVUNo
YXIgbmV4dENoYXJhY3RlcikgY29uc3QKK3sKKyAgICBpZiAoZW50cnktPmxlbmd0aCA8IG1fY3Vy
cmVudExlbmd0aCArIDEpCisgICAgICAgIHJldHVybiBCZWZvcmU7CisgICAgVUNoYXIgZW50cnlO
ZXh0Q2hhcmFjdGVyID0gZW50cnktPmVudGl0eVttX2N1cnJlbnRMZW5ndGhdOworICAgIGlmIChl
bnRyeU5leHRDaGFyYWN0ZXIgPT0gbmV4dENoYXJhY3RlcikKKyAgICAgICAgcmV0dXJuIFByZWZp
eDsKKyAgICByZXR1cm4gZW50cnlOZXh0Q2hhcmFjdGVyIDwgbmV4dENoYXJhY3RlciA/IEJlZm9y
ZSA6IEFmdGVyOworfQorCitjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVNl
YXJjaDo6ZmluZFN0YXJ0KFVDaGFyIG5leHRDaGFyYWN0ZXIpIGNvbnN0Cit7CisgICAgY29uc3Qg
SFRNTEVudGl0eVRhYmxlRW50cnkqIGxlZnQgPSBtX3N0YXJ0OworICAgIGNvbnN0IEhUTUxFbnRp
dHlUYWJsZUVudHJ5KiByaWdodCA9IG1fZW5kOworICAgIGlmIChsZWZ0ID09IHJpZ2h0KQorICAg
ICAgICByZXR1cm4gbGVmdDsKKyAgICBDb21wYXJlUmVzdWx0IHJlc3VsdCA9IGNvbXBhcmUobGVm
dCwgbmV4dENoYXJhY3Rlcik7CisgICAgaWYgKHJlc3VsdCA9PSBQcmVmaXgpCisgICAgICAgIHJl
dHVybiBsZWZ0OworICAgIGlmIChyZXN1bHQgPT0gQWZ0ZXIpCisgICAgICAgIHJldHVybiByaWdo
dDsKKyAgICB3aGlsZSAobGVmdCArIDEgPCByaWdodCkgeworICAgICAgICBjb25zdCBIVE1MRW50
aXR5VGFibGVFbnRyeSogcHJvYmUgPSBoYWxmd2F5KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgcmVz
dWx0ID0gY29tcGFyZShwcm9iZSwgbmV4dENoYXJhY3Rlcik7CisgICAgICAgIGlmIChyZXN1bHQg
PT0gQmVmb3JlKQorICAgICAgICAgICAgbGVmdCA9IHByb2JlOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIEFTU0VSVChyZXN1bHQgPT0gQWZ0ZXIgfHwgcmVzdWx0ID09IFByZWZpeCk7Cisg
ICAgICAgICAgICByaWdodCA9IHByb2JlOworICAgICAgICB9CisgICAgfQorICAgIEFTU0VSVChs
ZWZ0ICsgMSA9PSByaWdodCk7CisgICAgcmV0dXJuIHJpZ2h0OworfQorCitjb25zdCBIVE1MRW50
aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVNlYXJjaDo6ZmluZEVuZChVQ2hhciBuZXh0Q2hhcmFj
dGVyKSBjb25zdAoreworICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBsZWZ0ID0gbV9z
dGFydDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogcmlnaHQgPSBtX2VuZDsKKyAg
ICBpZiAobGVmdCA9PSByaWdodCkKKyAgICAgICAgcmV0dXJuIHJpZ2h0OworICAgIENvbXBhcmVS
ZXN1bHQgcmVzdWx0ID0gY29tcGFyZShyaWdodCwgbmV4dENoYXJhY3Rlcik7CisgICAgaWYgKHJl
c3VsdCA9PSBQcmVmaXgpCisgICAgICAgIHJldHVybiByaWdodDsKKyAgICBpZiAocmVzdWx0ID09
IEJlZm9yZSkKKyAgICAgICAgcmV0dXJuIGxlZnQ7CisgICAgd2hpbGUgKGxlZnQgKyAxIDwgcmln
aHQpIHsKKyAgICAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHByb2JlID0gaGFsZndh
eShsZWZ0LCByaWdodCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUocHJvYmUsIG5leHRDaGFy
YWN0ZXIpOworICAgICAgICBpZiAocmVzdWx0ID09IEFmdGVyKQorICAgICAgICAgICAgcmlnaHQg
PSBwcm9iZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVzdWx0ID09IEJl
Zm9yZSB8fCByZXN1bHQgPT0gUHJlZml4KTsKKyAgICAgICAgICAgIGxlZnQgPSBwcm9iZTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBBU1NFUlQobGVmdCArIDEgPT0gcmlnaHQpOworICAgIHJldHVy
biBsZWZ0OworfQorCit2b2lkIEhUTUxFbnRpdHlTZWFyY2g6OmFkdmFuY2UoVUNoYXIgbmV4dENo
YXJhY3RlcikKK3sKKyAgICBBU1NFUlQoaXNFbnRpdHlQcmVmaXgoKSk7CisgICAgaWYgKCFtX2N1
cnJlbnRMZW5ndGgpIHsKKyAgICAgICAgbV9zdGFydCA9IEhUTUxFbnRpdHlUYWJsZTo6c3RhcnQo
bmV4dENoYXJhY3Rlcik7CisgICAgICAgIG1fZW5kID0gSFRNTEVudGl0eVRhYmxlOjplbmQobmV4
dENoYXJhY3Rlcik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9zdGFydCA9IGZpbmRTdGFydChu
ZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgbV9lbmQgPSBmaW5kRW5kKG5leHRDaGFyYWN0ZXIpOwor
ICAgICAgICBpZiAobV9zdGFydCA9PSBtX2VuZCAmJiBjb21wYXJlKG1fc3RhcnQsIG5leHRDaGFy
YWN0ZXIpICE9IFByZWZpeCkKKyAgICAgICAgICAgIHJldHVybiBmYWlsKCk7CisgICAgfQorICAg
ICsrbV9jdXJyZW50TGVuZ3RoOworICAgIGlmIChtX3N0YXJ0LT5sZW5ndGggIT0gbV9jdXJyZW50
TGVuZ3RoKSB7CisgICAgICAgIG1fY3VycmVudFZhbHVlID0gMDsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBtX2xhc3RNYXRjaCA9IG1fc3RhcnQ7CisgICAgbV9jdXJyZW50VmFsdWUgPSBt
X2xhc3RNYXRjaC0+dmFsdWU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
RW50aXR5U2VhcmNoLmggYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU1Nzg1OWQ0ZWJjY2QyYTEyYjAzYmRlMGY4Y2YxMjgyMzk0ZGJjYzkKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEhUTUxFbnRpdHlTZWFyY2hfaAorI2RlZmluZSBIVE1MRW50aXR5U2VhcmNoX2gKKworI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEhU
TUxFbnRpdHlUYWJsZUVudHJ5OworCitjbGFzcyBIVE1MRW50aXR5U2VhcmNoIHsKK3B1YmxpYzoK
KyAgICBIVE1MRW50aXR5U2VhcmNoKCk7CisKKyAgICB2b2lkIGFkdmFuY2UoVUNoYXIpOworCisg
ICAgYm9vbCBpc0VudGl0eVByZWZpeCgpIGNvbnN0IHsgcmV0dXJuICEhbV9zdGFydDsgfQorICAg
IGludCBjdXJyZW50VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsgfQorICAg
IGludCBjdXJyZW50TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50TGVuZ3RoOyB9CisK
KyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbGFzdE1hdGNoKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0TWF0Y2g7IH0KKworcHJpdmF0ZToKKyAgICBlbnVtIENvbXBhcmVSZXN1bHQgewor
ICAgICAgICBCZWZvcmUsCisgICAgICAgIFByZWZpeCwKKyAgICAgICAgQWZ0ZXIsCisgICAgfTsK
KworICAgIENvbXBhcmVSZXN1bHQgY29tcGFyZShjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSos
IFVDaGFyKSBjb25zdDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogZmluZFN0YXJ0
KFVDaGFyKSBjb25zdDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogZmluZEVuZChV
Q2hhcikgY29uc3Q7CisKKyAgICB2b2lkIGZhaWwoKQorICAgIHsKKyAgICAgICAgbV9jdXJyZW50
VmFsdWUgPSAwOworICAgICAgICBtX3N0YXJ0ID0gMDsKKyAgICAgICAgbV9lbmQgPSAwOworICAg
IH0KKworICAgIGludCBtX2N1cnJlbnRMZW5ndGg7CisgICAgaW50IG1fY3VycmVudFZhbHVlOwor
CisgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIG1fbGFzdE1hdGNoOworICAgIGNvbnN0
IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBtX3N0YXJ0OworICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJs
ZUVudHJ5KiBtX2VuZDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEVudGl0eVRhYmxlLmggYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVRhYmxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzVhMWFmZDMxNjFmMGRjYTM0YzUyZDMwMWRjYTljMzk1OWM3MjkzMQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5VGFibGUuaApAQCAtMCwwICsxLDUy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBIVE1MRW50aXR5VGFibGVfaAorI2RlZmluZSBIVE1MRW50aXR5VGFibGVfaAorCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
SFRNTEVudGl0eVRhYmxlRW50cnkgeworICAgIFVDaGFyIGxhc3RDaGFyYWN0ZXIoKSBjb25zdCB7
IHJldHVybiBlbnRpdHlbbGVuZ3RoIC0gMV07IH0KKworICAgIGNvbnN0IFVDaGFyKiBlbnRpdHk7
CisgICAgaW50IGxlbmd0aDsKKyAgICBpbnQgdmFsdWU7Cit9OworCitjbGFzcyBIVE1MRW50aXR5
VGFibGUgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSog
c3RhcnQoKTsKKyAgICBzdGF0aWMgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGVuZCgpOwor
CisgICAgc3RhdGljIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBzdGFydChVQ2hhcik7Cisg
ICAgc3RhdGljIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBlbmQoVUNoYXIpOworfTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsIGIvV2Vi
Q29yZS9tYWtlLWhhc2gtdG9vbHMucGwKaW5kZXggNDJjYjZmZDk1OGYxMDVhZTZhZmJmNmVkZTM0
OGFjMzViNmYzOTYzZS4uOGNjOTk1MmMxNTcyYjAwMzM4MWIwZDgyNzNjYjFkNjY1YzMwZmZlOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwKKysrIGIvV2ViQ29yZS9tYWtl
LWhhc2gtdG9vbHMucGwKQEAgLTI5LDE2ICsyOSw2IEBAIG15ICRvcHRpb24gPSBiYXNlbmFtZSgk
QVJHVlswXSwiLmdwZXJmIik7CiAKIHN3aXRjaCAoJG9wdGlvbikgewogCi1jYXNlICJIVE1MRW50
aXR5TmFtZXMiIHsKLQotICAgIG15ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQgICA9ICIkb3V0
ZGlyL0hUTUxFbnRpdHlOYW1lcy5jcHAiOwotICAgIG15ICRodG1sRW50aXR5TmFtZXNHcGVyZiAg
ICAgICA9ICRBUkdWWzBdOwotICAgIHNoaWZ0OwotCi0gICAgc3lzdGVtKCJncGVyZiAtLWtleS1w
b3NpdGlvbnM9XCIqXCIgLUQgLXMgMiAkaHRtbEVudGl0eU5hbWVzR3BlcmYgPiAkaHRtbEVudGl0
eU5hbWVzR2VuZXJhdGVkIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7
Ci0KLX0gIyBjYXNlICJIVE1MRW50aXR5TmFtZXMiCi0KIGNhc2UgIkRvY1R5cGVTdHJpbmdzIiB7
CiAKICAgICBteSAkZG9jVHlwZVN0cmluZ3NHZW5lcmF0ZWQgICAgPSAiJG91dGRpci9Eb2NUeXBl
U3RyaW5ncy5jcHAiOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY4ZDFkODhjMmJkOGFjOTNjZjYyOGQwNjIzYzU4OTc4Mjc0
YzE5NTMuLjkzMTlmYTE5N2JiNDUzMTFmMGU5OGE2ZGZhNDI0MzU5NDQxYmEwM2IgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMC0wOC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBNYXRoTUwgZW50aXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzOTQ5CisKKyAgICAgICAgQSBzY3JpcHQgZm9yIGdlbmVyYXRp
bmcgdGhlIEMrKyBzdGF0ZSBkYXRhIHN0cnVjdHVyZSBkZXNjcmliaW5nIGFsbCB0aGUKKyAgICAg
ICAgZW50aXRpZXMgZnJvbSBhIEpTT04gZGVzY3JpcHRpb24uCisKKyAgICAgICAgTm90ZTogVGhp
cyBzY3JpcHQgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggdGhlIGJ1aWxkIHN5c3RlbSwgc28g
dGhpcworICAgICAgICAgICAgICBwYXRjaCB3aWxsIG5vdCBidWlsZCEgIE9PUFMhCisKKyAgICAg
ICAgKiBTY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZTogQWRkZWQuCisKIDIwMTAtMDgt
MTIgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEJ1aWxkIGJy
ZWFrIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50
aXR5LXRhYmxlIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjUxM2IyOWRhNzhiM2ZiNWViODBmODQ1YmJiMzQ4MDMzMGMzMjBiNQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRh
YmxlCkBAIC0wLDAgKzEsMTczIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0
IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMgCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjIAorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK2ltcG9ydCBvcy5wYXRoCitpbXBvcnQgc3RyaW5nCitpbXBvcnQgc3lzCisKK2lt
cG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LnNpbXBsZWpzb24gYXMgc2ltcGxlanNvbgorCisKK2Rl
ZiBjb252ZXJ0X2VudGl0eV90b19jcHBfbmFtZShlbnRpdHkpOgorICAgIHBvc3RmaXggPSAiRW50
aXR5TmFtZSIKKyAgICBpZiBlbnRpdHlbLTFdID09ICI7IjoKKyAgICAgICAgcmV0dXJuICIlc1Nl
bWljb2xvbiVzIiAlIChlbnRpdHlbOi0xXSwgcG9zdGZpeCkKKyAgICByZXR1cm4gIiVzJXMiICUg
KGVudGl0eSwgcG9zdGZpeCkKKworCitkZWYgY29udmVydF9lbnRpdHlfdG9fdWNoYXJfYXJyYXko
ZW50aXR5KToKKyAgICByZXR1cm4gInsnJXMnfSIgJSAiJywgJyIuam9pbihlbnRpdHkpCisKKwor
ZGVmIGNvbnZlcnRfdmFsdWVfdG9faW50KHZhbHVlKToKKyAgICBhc3NlcnQodmFsdWVbMF0gPT0g
IlUiKQorICAgIGFzc2VydCh2YWx1ZVsxXSA9PSAiKyIpCisgICAgcmV0dXJuICIweCIgKyB2YWx1
ZVsyOl0KKworCitkZWYgb2Zmc2V0X3RhYmxlX2VudHJ5KG9mZnNldCk6CisgICAgcmV0dXJuICIg
ICAgJnN0YXRpY0VudGl0eVRhYmxlWyVzXSwiICUgb2Zmc2V0CisKKworcHJvZ3JhbV9uYW1lID0g
b3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykKK2lmIGxlbihzeXMuYXJndikgPCAyOgorICAgIHBy
aW50ID4+IHN5cy5zdGRlcnIsICJVc2FnZTogJXMgSU5QVVRfRklMRSIgJSBwcm9ncmFtX25hbWUK
KyAgICBleGl0KDEpCisKK2lucHV0X2ZpbGUgPSBzeXMuYXJndlsxXQoraHRtbF9lbnRpdHlfbmFt
ZXNfZmlsZSA9IG9wZW4oaW5wdXRfZmlsZSkKK2VudHJpZXMgPSBzaW1wbGVqc29uLmxvYWQoaHRt
bF9lbnRpdHlfbmFtZXNfZmlsZSkKK2h0bWxfZW50aXR5X25hbWVzX2ZpbGUuY2xvc2UoKQorCitl
bnRyaWVzID0gc29ydGVkKGVudHJpZXMsIGtleT1sYW1iZGEgZW50cnk6IGVudHJ5WydlbnRpdHkn
XSkKK2VudGl0eV9jb3VudCA9IGxlbihlbnRyaWVzKQorCitwcmludCAiIiIvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworLy8gVEhJUyBGSUxFIElTIEdFTkVS
QVRFRCBCWSBXZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQorLy8g
RE8gTk9UIEVESVQgKHVubGVzcyB5b3UgYXJlIGEgbmluamEpIQorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSFRNTEVudGl0eVRhYmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworbmFtZXNwYWNlIHsKKyIiIgorCitmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICBwcmludCAi
Y29uc3QgVUNoYXIgJXNFbnRpdHlOYW1lW10gPSAlczsiICUgKAorICAgICAgICBjb252ZXJ0X2Vu
dGl0eV90b19jcHBfbmFtZShlbnRyeVsiZW50aXR5Il0pLAorICAgICAgICBjb252ZXJ0X2VudGl0
eV90b191Y2hhcl9hcnJheShlbnRyeVsiZW50aXR5Il0pKQorCitwcmludCAiIiIKK0hUTUxFbnRp
dHlUYWJsZUVudHJ5IHN0YXRpY0VudGl0eVRhYmxlWyVzXSA9IHsiIiIgJSBlbnRpdHlfY291bnQK
KworaW5kZXggPSB7fQorb2Zmc2V0ID0gMAorZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgbGV0
dGVyID0gZW50cnlbImVudGl0eSJdWzBdCisgICAgaWYgbm90IGluZGV4LmdldChsZXR0ZXIpOgor
ICAgICAgICBpbmRleFtsZXR0ZXJdID0gb2Zmc2V0CisgICAgcHJpbnQgJyAgICB7ICVzRW50aXR5
TmFtZSwgJXMsICVzIH0sJyAlICgKKyAgICAgICAgY29udmVydF9lbnRpdHlfdG9fY3BwX25hbWUo
ZW50cnlbImVudGl0eSJdKSwKKyAgICAgICAgbGVuKGVudHJ5WyJlbnRpdHkiXSksCisgICAgICAg
IGNvbnZlcnRfdmFsdWVfdG9faW50KGVudHJ5WyJ2YWx1ZSJdKSkKKyAgICBvZmZzZXQgKz0gMQor
CitwcmludCAiIiJ9OworIiIiCisKK3ByaW50ICJjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSog
dXBwZXJjYXNlT2Zmc2V0W10gPSB7IgorZm9yIGxldHRlciBpbiBzdHJpbmcudXBwZXJjYXNlOgor
ICAgIHByaW50IG9mZnNldF90YWJsZV9lbnRyeShpbmRleFtsZXR0ZXJdKQorcHJpbnQgb2Zmc2V0
X3RhYmxlX2VudHJ5KGluZGV4WydhJ10pCitwcmludCAiIiJ9OworCitjb25zdCBIVE1MRW50aXR5
VGFibGVFbnRyeSogbG93ZXJjYXNlT2Zmc2V0W10gPSB7IiIiCitmb3IgbGV0dGVyIGluIHN0cmlu
Zy5sb3dlcmNhc2U6CisgICAgcHJpbnQgb2Zmc2V0X3RhYmxlX2VudHJ5KGluZGV4W2xldHRlcl0p
CitwcmludCBvZmZzZXRfdGFibGVfZW50cnkoZW50aXR5X2NvdW50KQorcHJpbnQgIiIifTsKKwor
fQorCitjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVRhYmxlOjpzdGFydChV
Q2hhciBjKQoreworICAgIGlmIChjID49ICdBJyAmJiBjIDw9ICdaJykKKyAgICAgICAgcmV0dXJu
IHVwcGVyY2FzZU9mZnNldFtjIC0gJ0EnXTsKKyAgICBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicp
CisgICAgICAgIHJldHVybiBsb3dlcmNhc2VPZmZzZXRbYyAtICdhJ107CisgICAgcmV0dXJuIDA7
Cit9CisKK2NvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBIVE1MRW50aXR5VGFibGU6OmVuZChV
Q2hhciBjKQoreworICAgIGlmIChjID49ICdBJyAmJiBjIDw9ICdaJykKKyAgICAgICAgcmV0dXJu
IHVwcGVyY2FzZU9mZnNldFtjIC0gJ0EnICsgMV0gLSAxOworICAgIGlmIChjID49ICdhJyAmJiBj
IDw9ICd6JykKKyAgICAgICAgcmV0dXJuIGxvd2VyY2FzZU9mZnNldFtjIC0gJ2EnICsgMV0gLSAx
OworICAgIHJldHVybiAwOworfQorCitjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogSFRNTEVu
dGl0eVRhYmxlOjpzdGFydCgpCit7CisgICAgcmV0dXJuICZzdGF0aWNFbnRpdHlUYWJsZVswXTsK
K30KKworY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlUYWJsZTo6ZW5kKCkK
K3sKKyAgICByZXR1cm4gJnN0YXRpY0VudGl0eVRhYmxlWyVzIC0gMV07Cit9CisKK30KKyIiIiAl
IGVudGl0eV9jb3VudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64377</attachid>
            <date>2010-08-13 14:57:01 -0700</date>
            <delta_ts>2010-08-13 16:01:12 -0700</delta_ts>
            <desc>Now should compile for everyone</desc>
            <filename>bug-43949-20100813145659.patch</filename>
            <type>text/plain</type>
            <size>51993</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTVhNjJmNjA5YzI4OWUzZjI1ZTMzN2YxNThkZTVkYjAxMzljZjgwLi5lOTdkNjNi
ODk0NDZkY2NmZDdiM2M3YjYxNGQ2MWQ1YjAxMjIwYTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0
aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk0OQorCisgICAgICAgIFRlc3QgcHJvZ3Jlc3Npb24gZm9yIHByb3BlciBlbnRpdHkg
c3VwcG9ydC4KKworICAgICAgICAqIGh0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQ6
CisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wOC0xMiAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGxh
bmRpbmcgZ29vZ2xlLWNocm9tZSBsaW51eCA2NCB0ZXN0IHJlc3VsdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAppbmRleCAyZWIwMWI0Y2JmOGFh
NzYyMzg0YWI1ODEwZjJmMThmNzk5YTI1ZGNmLi44NGM3MjE3NGZkY2UxYmU1M2QxNjhkYTY4MjY2
ZWQyOTIzNGE5ODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQtaHRtbDUudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC1odG1sNS50eHQKQEAgLTExOCw5MiArMTE4LDEwIEBAIHJlc291cmNlcy9kb2N0eXBlMDEuZGF0
OiBQQVNTCiAKIHJlc291cmNlcy9zY3JpcHRkYXRhMDEuZGF0OiBQQVNTCiAKLXJlc291cmNlcy9o
dG1sNXRlc3QtY29tLmRhdDoKLTcKLTkKLTEwCi0xMQotCi1UZXN0IDcgb2YgMjQgaW4gcmVzb3Vy
Y2VzL2h0bWw1dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbGFuZzsmcmFuZzsKLUdvdDoK
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi44CI44CJIgotRXhwZWN0
ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKfqOKfqSIKLQot
VGVzdCA5IG9mIDI0IGluIHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0
OgotJkltYWdpbmFyeUk7Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgIiZJbWFnaW5hcnlJOyIKLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgICLihYgiCi0KLVRlc3QgMTAgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mS29wZjsKLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJktvcGY7IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIvCdlYIiCityZXNvdXJjZXMvaHRtbDV0ZXN0
LWNvbS5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNv
bS5kYXQgZmFpbGVkLiBJbnB1dDoKLSZub3RpbnZhOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICImbm90aW52YTsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oiJIgotcmVzb3VyY2VzL2VudGl0aWVzMDEu
ZGF0OgotMgotNQotCi1UZXN0IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci1GT08mZ3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICAiRk9PJmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgIkZPTz5CQVIiCityZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQ6
IFBBU1MKIAotVGVzdCA1IG9mIDY4IGluIHJlc291cmNlcy9lbnRpdGllczAxLmRhdCBmYWlsZWQu
IElucHV0OgotSSdtICZub3RpdDsgSSB0ZWxsIHlvdQotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gJm5vdGl0OyBJIHRlbGwgeW91IgotRXhwZWN0ZWQ6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIkknbSDCrGl0OyBJIHRl
bGwgeW91IgogcmVzb3VyY2VzL2VudGl0aWVzMDIuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9jb21t
ZW50czAxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQK
aW5kZXggOGE4ZjdiZTM4YzY2ZTMxZjdkNWM5MWVhYTg5YjVmODM4ZmEzYTJhOS4uYzlhZTI0NTQ4
MGQ0OWZmNTAyZjcwMzA3MTJjMjRiOGMzMDU1ZTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CkBAIC0xOTEsOTIgKzE5MSwxMCBAQCByZXNvdXJjZXMvZG9jdHlw
ZTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2NyaXB0ZGF0YTAxLmRhdDogUEFTUwogCi1yZXNv
dXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQ6Ci03Ci05Ci0xMAotMTEKLQotVGVzdCA3IG9mIDI0IGlu
IHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJmxhbmc7JnJhbmc7
Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuOAiOOAiSIK
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLin6ji
n6kiCi0KLVRlc3QgOSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQgZmFpbGVk
LiBJbnB1dDoKLSZJbWFnaW5hcnlJOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgICImSW1hZ2luYXJ5STsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oWIIgotCi1UZXN0IDEwIG9mIDI0IGluIHJlc291cmNl
cy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJktvcGY7Ci1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZLb3BmOyIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLwnZWCIgorcmVzb3VyY2VzL2h0
bWw1dGVzdC1jb20uZGF0OiBQQVNTCiAKLVRlc3QgMTEgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbm90aW52YTsKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJm5vdGludmE7IgotRXhwZWN0ZWQ6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKIiSIKLXJlc291cmNlcy9lbnRp
dGllczAxLmRhdDoKLTIKLTUKK3Jlc291cmNlcy9lbnRpdGllczAxLmRhdDogUEFTUwogCi1UZXN0
IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci1GT08m
Z3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiRk9P
Jmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIkZPTz5CQVIiCi0KLVRlc3QgNSBvZiA2OCBpbiByZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQg
ZmFpbGVkLiBJbnB1dDoKLUknbSAmbm90aXQ7IEkgdGVsbCB5b3UKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiSSdtICZub3RpdDsgSSB0ZWxsIHlvdSIKLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gwqxp
dDsgSSB0ZWxsIHlvdSIKIHJlc291cmNlcy9lbnRpdGllczAyLmRhdDogUEFTUwogCiByZXNvdXJj
ZXMvY29tbWVudHMwMS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFjNjRmNjZmYzVlZjMzZDU3YzQyMmJm
MjZkMWM0N2I3MTZjMmQxNjguLjA0MTM0ZDI1Mzc4ODk0ZTdjNmRjYjMyYTljNzAxZDJhMTIzZGQ3
OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTczLDYgKzk3Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL0hUTUxEb2N1bWVudC5jcHAKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTEVsZW1lbnRTdGFjay5jcHAKKyAgICBodG1sL0hUTUxFbnRpdHlTZWFyY2guY3BwCiAgICAg
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNzYwOGU4ZWVmZTBm
NjNjYjgxZGQ5NWQwYjg5OWVlOGJjYzUwODcuLjI2YjgzYjk2M2FmNDFjZGUyMmVjMWI0NzZjMTIy
NWE5OTdhNjg0NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDgtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0OQorCisgICAgICAgIEltcGxlbWVu
dGluZyB0aGUgSFRNTDUgZW50aXR5IHBhcnNpbmcgYWxnb3JpdGhtIHJlcXVpcmUgcmVmYWN0b3Jp
bmcgaG93CisgICAgICAgIHdlIHNlYXJjaCBmb3IgZW50aXR5IG5hbWVzLiAgSW5zdGVhZCBvZiB1
c2luZyBhIHBlcmZlY3QgaGFzaCwgd2Ugbm93CisgICAgICAgIHVzZSBhIHNvcnRlZCBsaXN0LiAg
QXMgd2UgYWR2YW5jZSB0aHJvdWdoIHRoZSBpbnB1dCwgd2Ugd2FsayBkb3duIGEKKyAgICAgICAg
YmluYXJ5IHNlYXJjaCBvZiB0aGUgdGFibGUgbG9va2luZyBmb3IgYW4gZW50aXR5LgorCisgICAg
ICAgIFVzaW5nIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgbGV0cyB1cyBrZWVwIHRyYWNrIG9mIHdoZXRo
ZXIgdGhlIGN1cnJlbnQKKyAgICAgICAgc3RyaW5nIGlzIGEgcHJlZml4IG9mIGFuIGV4aXN0aW5n
IGVudGl0eSwgd2hpY2ggd2UgbmVlZCBmb3IgdGhlCisgICAgICAgIGFsZ29yaXRobS4gIEluIGEg
ZnV0dXJlIHBhdGNoLCBJIHBsYW4gdG8gYWRkIHNvbWUgaW5kaWNlcyB0byB0aGUKKyAgICAgICAg
dGFibGUsIHdoaWNoIHNob3VsZCBsZXQgdXMgbmFycm93IGRvd24gdGhlIHJhbmdlIG9mIGludGVy
ZXN0aW5nIGVudHJpZXMKKyAgICAgICAgbW9yZSBxdWlja2x5LgorCisgICAgICAgIFRoZSBvbmUg
bmFzdHkgcGllY2Ugb2YgdGhlIGFsZ29yaXRobSBpcyBpZiB3ZSB3YWxrIHRvbyBmYXIgZG93biB0
aGUKKyAgICAgICAgaW5wdXQgYW5kIHdlIG5lZWQgdG8gYmFjayB1cCB0byBhIHByZXZpb3VzIG1h
dGNoLiAgSW4gdGhpcyBwYXRjaCwgd2UKKyAgICAgICAgYWNjb21wbGlzaCB0aGlzIGJ5IHJld2lu
ZGluZyB0aGUgaW5wdXQgYW5kIGNvbnN1bWluZyBhIGtub3duIG51bWJlciBvZgorICAgICAgICBj
aGFyYWN0ZXJzIHRvIHJlc3luYyB0aGUgc291cmNlLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lSFRNTEVudGl0eSk6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5U2VhcmNoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVudGl0eVNlYXJjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpjb21wYXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW50aXR5U2VhcmNoOjpmaW5kRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmFkdmFuY2UpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVNlYXJjaC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmlzRW50aXR5UHJlZml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpsYXN0TWF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVudGl0eVNlYXJjaDo6KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmZhaWwpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVRhYmxlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVRhYmxlRW50cnk6Omxhc3RDaGFyYWN0ZXIpOgorCiAy
MDEwLTA4LTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzdjMmYxMGQzM2Y4
ZGJkOTIzOGRiYjRlMjQ1ZmVlYzM5YjZjOWVkZi4uYmRhNGE3ZDBkYmE2NDQyMjdjMTA4MjE3NjVm
YTRmZDVjNjM2Y2UzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA1LDcgKzUwNSw3IEBAIGFsbCA6
IFwKICAgICBDb2xvckRhdGEuY3BwIFwKICAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAogICAgIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5jcHAgXAorICAgIEhU
TUxFbnRpdHlUYWJsZS5jcHAgXAogICAgIEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRG
YWN0b3J5LmNwcCBcCiAgICAgV01MTmFtZXMuY3BwIFwKQEAgLTYwMCw4ICs2MDAsOCBAQCBEb2NU
eXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotSFRNTEVudGl0eU5hbWVz
LmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCi0JcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkv
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKK0hUTUxFbnRpdHlUYWJsZS5jcHAgOiBodG1sL0hU
TUxFbnRpdHlOYW1lcy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVh
dGUtaHRtbC1lbnRpdHktdGFibGUKKwlweXRob24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSAtbyBIVE1MRW50aXR5VGFibGUuY3BwICQo
V2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNvbgogCiAjIC0tLS0tLS0tCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGJjYTJhYWUzMGZiOTA5NWY2OWYwZmVlMTg5NmI5ZWNiZjdhNDc5OTUuLjFhNzg4OGU3YjFm
MGQ3YjRkMTUxODNiOTI4NjJiOTlhNzJjODRkY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTIsNyArOTIsNyBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFs
dWVLZXl3b3Jkcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9y
eS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5LmggXAot
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eU5hbWVzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5VGFibGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0hUTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3Bw
IFwKQEAgLTE0MjcsNiArMTQyNyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCBc
CiAJV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50U3RhY2suaCBcCisJV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlTZWFyY2guY3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oIFwKIAlX
ZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCkBA
IC00MzkzLDggKzQzOTUsOCBAQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdz
LmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCSQoUEVSTCkgJChX
ZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgJChHRU5TT1VSQ0VTX1dFQkNPUkUpICQoV2ViQ29y
ZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAjIEhUTUwgZW50aXR5IG5hbWVzCi1EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlOYW1lcy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwv
SFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCi0JJChQ
RVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkg
JChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9IVE1MRW50aXR5VGFibGUuY3BwIDogJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1l
cy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRp
dHktdGFibGUKKwkkKFBZVEhPTikgJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2Ny
ZWF0ZS1odG1sLWVudGl0eS10YWJsZSAtbyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvSFRNTEVudGl0
eVRhYmxlLmNwcCAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmpzb24KIAogIyBjb2xv
ciBuYW1lcwogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Db2xvckRhdGEuY3BwOiAkKFdlYkNvcmUp
L3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggYTI4ZWU1ZDA2MTA1OWFiZmE0ZWY5MTU4MmYzZjU3
OWNhODBkMjk1NC4uMzBiOTYzMzgwMzg1NGUxMTVmZTU2MzRkMjFlMTA3Y2Y2OGZiZDQ1YiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0yNzYsOSArMjc2LDExIEBACiAKICAgICAgICAgIyBn
cGVyZiBydWxlCiAgICAgICAgICcuLi9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmJywKLSAgICAg
ICAgJy4uL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmJywKICAgICAgICAgJy4uL3BsYXRmb3Jt
L0NvbG9yRGF0YS5ncGVyZicsCiAKKyAgICAgICAgIyBqc29uIHJ1bGUKKyAgICAgICAgJy4uL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmpzb24nLAorCiAgICAgICAgICMgaWRsIHJ1bGVzCiAgICAgICAg
ICc8QChiaW5kaW5nc19pZGxfZmlsZXMpJywKICAgICAgIF0sCkBAIC01OTgsNyArNjAwLDcgQEAK
ICAgICAgICAgICAnb3V0cHV0cyc6IFsKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmNwcCcsCiAgICAgICAgICAgXSwKLSAg
ICAgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAgICdpbnB1dHMnOiBbCiAgICAgICAg
ICAgICAnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJywKICAgICAgICAgICBdLAogICAgICAgICAgICdh
Y3Rpb24nOiBbCkBAIC02MDksNiArNjExLDI2IEBACiAgICAgICAgICAgXSwKICAgICAgICAgICAn
cHJvY2Vzc19vdXRwdXRzX2FzX3NvdXJjZXMnOiAwLAogICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgJ3J1bGVfbmFtZSc6ICdqc29uJywKKyAgICAgICAgICAnZXh0ZW5zaW9uJzogJ2pz
b24nLAorICAgICAgICAgICMKKyAgICAgICAgICAjIGpzb24gb3V0cHV0cyBhcmUgZ2VuZXJhdGVk
IGJ5IFdlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCisgICAgICAg
ICAgIworICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVS
TUVESUFURV9ESVIpL3dlYmtpdC9IVE1MRW50aXR5VGFibGUuY3BwJywKKyAgICAgICAgICBdLAor
ICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vLi4vV2ViS2l0VG9vbHMvU2Ny
aXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUnLAorICAgICAgICAgIF0sCisgICAgICAgICAg
J2FjdGlvbic6IFsKKyAgICAgICAgICAgICdweXRob24nLAorICAgICAgICAgICAgJy4uLy4uL1dl
YktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlJywKKyAgICAgICAgICAg
ICctbycsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0hU
TUxFbnRpdHlUYWJsZS5jcHAnLAorICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCisg
ICAgICAgICAgXSwKKyAgICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdlbmVyYXRl
ZCBKYXZhU2NyaXB0IChWOCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAgICAgewog
ICAgICAgICAgICdydWxlX25hbWUnOiAnYmluZGluZycsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc0ZTgxMjY5YmI1N2I3N2Q0
ZTMxZGVlNDRmMWUyNjU3ODk0MTQxOGQuLjAxOWNiMmMwMjIzMzQ4MDI4MmIyZDAwZGVhNWFmMGVm
ZjhhYTM2YTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xNTg4LDYgKzE1ODgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRN
TEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudFN0YWNrLmgnLAorICAgICAgICAgICAgJ2h0bWwv
SFRNTEVudGl0eVNlYXJjaC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTEVudGl0eVNlYXJj
aC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxFbWJlZEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2Vi
Q29yZS9XZWJDb3JlLnByaQppbmRleCBiMGVmZmVlN2ViNmVlMmIxZWI3ZWI0ZmI1ZGU2Njk5ZmU4
YTg0ZWM4Li43MTgxOGMyMjMwMjI3ZTEwNWJjYmM2MDI5NDI0Y2I4NjQ1ZWZlMWMzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTI5
LDcgKzI5LDcgQEAgWE1MX05BTUVTID0gJCRQV0QveG1sL3htbGF0dHJzLmluCiAKIFhNTE5TX05B
TUVTID0gJCRQV0QveG1sL3htbG5zYXR0cnMuaW4KIAotRU5USVRJRVNfR1BFUkYgPSAkJFBXRC9o
dG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorSFRNTF9FTlRJVElFUyA9ICQkUFdEL2h0bWwvSFRN
TEVudGl0eU5hbWVzLmpzb24KIAogQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29s
b3JEYXRhLmdwZXJmCiAKQEAgLTU5MCwxMiArNTkwLDEyIEBAIHhtbG5hbWVzLmNvbW1hbmRzID0g
cGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCR4bWxuYW1lcy53a1NjcmlwdCAtLWF0dHJz
ICQkCiBhZGRFeHRyYUNvbXBpbGVyKHhtbG5hbWVzKQogCiAjIEdFTkVSQVRPUiA4LUE6Ci1lbnRp
dGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1l
cy5jcHAKLWVudGl0aWVzLmlucHV0ID0gRU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLndrU2NyaXB0
ID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCi1lbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRl
bnRpdGllcy53a1NjcmlwdCAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5USVRJRVNf
R1BFUkYKK2VudGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRN
TEVudGl0eVRhYmxlLmNwcAorZW50aXRpZXMuaW5wdXQgPSBIVE1MX0VOVElUSUVTCitlbnRpdGll
cy53a1NjcmlwdCA9ICQkUFdELy4uL1dlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50
aXR5LXRhYmxlCitlbnRpdGllcy5jb21tYW5kcyA9IHB5dGhvbiAkJGVudGl0aWVzLndrU2NyaXB0
IC1vICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eVRhYmxlLmNwcCAkJEhU
TUxfRU5USVRJRVMKIGVudGl0aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KLWVudGl0aWVz
LmRlcGVuZHMgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2VudGl0aWVzLmRlcGVuZHMgPSAk
JFBXRC8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQogYWRk
RXh0cmFDb21waWxlcihlbnRpdGllcykKIAogIyBHRU5FUkFUT1IgOC1COgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNGNhOWZkMGM4
ZTdhOTFkMDc3OGY2NTRhMDcwYWEyYWJiYTAxYmY5MS4uNjk0YjY1MzExMjExMzdlYjM0YTcxZGI3
MmMwY2Q2NzYzMGU1YzBhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02NzcsNiArNjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
aHRtbC9IVE1MRG9jdW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcCBcCiAgICAg
aHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCBcCisgICAgaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNw
cCBcCiAgICAgaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDVmZjQyNTA3YjYyZGRjNTYwYTg5NGE5ZmUy
YjIyOGNmNzFjNDNiYmMuLjI4NWMwYTNiZDVkNjA0MjAxYWRjZjIyNTA5ZjlmNWVkN2JkMzhlMWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc2MzcsNiArMzc2Mzcs
MTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5caHRtbFxIVE1MRW50aXR5U2VhcmNoLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVudGl0eVNlYXJjaC5oIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxI
VE1MRW1iZWRFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5ZWQxYjQzMTM5
NmJlMGMxZmQ4N2UxMDdkNjUxYzE3MmJmMzAyNDMuLjc1MGVkNDAwYThkZWZkNDE0Y2VhOTVjYWNl
MjJmMWZiOWYxNDUyNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zMTgxLDYgKzMxODEsOSBAQAogCQlBOEE1NjRBNjExREMwRTU5MDAzQUMyRjAgLyog
SFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE1NjRBNDExREMwRTU5MDAzQUMyRjAgLyogSFRNTEZvcm1h
dHRpbmdFbGVtZW50TGlzdC5jcHAgKi87IH07CiAJCUE4QTkwOUFDMENCQ0Q2QjUwMDI5QjgwNyAv
KiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE5MDlBQTBDQkNENkI1MDAyOUI4MDcgLyogUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovOyB9OwogCQlBOEE5MDlBRDBDQkNENkI1
MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE5MDlBQjBDQkNENkI1MDAy
OUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgKi87IH07CisJCUE4
QkMwNDRFMTIxNEVCMkEwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEM0RkRGMTIxMTI2NjIwMEMz
RDM5MyAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCAqLzsgfTsKKwkJQThCQzA0NEYxMjE0RUIyQjAw
QjVGMTIyIC8qIEhUTUxFbnRpdHlTZWFyY2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5
U2VhcmNoLmggKi87IH07CisJCUE4QkMwNDkyMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThCQzA0OTExMjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgKi87IH07CiAJ
CUE4QkNGRDA1MTIwQTA0NjEwMEI1RjEyMiAvKiBTVkdQYXRoU2VnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkNGRDA0MTIwQTA0NjEwMEI1RjEy
MiAvKiBTVkdQYXRoU2VnLmNwcCAqLzsgfTsKIAkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8q
IERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzIyODBEMTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAg
Ki87IH07CiAJCUE4QzIyOEExMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMyMjg5RjExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oICov
OyB9OwpAQCAtODQ3Niw2ICs4NDc5LDEwIEBACiAJCTk3MDU5OTc0MTA3RDk3NTIwMEE1MEE3QyAv
KiBQb2xpY3lDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xp
Y3lDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NTEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQb2xpY3lDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzBDNEZERjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNl
YXJjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRW50aXR5
U2VhcmNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGRTAxMjExMjY2
MjAwQzNEMzkzIC8qIEhUTUxFbnRpdHlTZWFyY2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTEVudGl0eVNlYXJjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NzBDNEZFMTEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlUYWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MEM0RkUyMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1M
RW50aXR5VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVudGl0
eVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTlBRUZGMTFEMDlGMkMw
MEQ0NTgzMSAvKiBIVE1MSW5wdXRTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSFRNTElucHV0U3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
Mzg4OTlFMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFdyaXRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk3Mzg4OTlGMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdy
aXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFdyaXRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg2MSw2ICs4ODY4LDcgQEAKIAkJQThB
NTY0QTQxMURDMEU1OTAwM0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZvcm1hdHRpbmdFbGVtZW50
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTkwOUFBMENCQ0Q2QjUw
MDI5QjgwNyAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBOTA5QUIwQ0JDRDZCNTAwMjlCODA3IC8q
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAvKiBI
VE1MRW50aXR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
SFRNTEVudGl0eVRhYmxlLmNwcDsgcGF0aCA9IC9idWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07
CiAJCUE4QkNGRDA0MTIwQTA0NjEwMEI1RjEyMiAvKiBTVkdQYXRoU2VnLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhTZWcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEMyMjgwRDExRDRBNTk3MDBENUE3RDMgLyogRG9jdW1lbnRQYXJz
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRQYXJz
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEMyMjg5RjExRDU3MjJFMDBE
NUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDk0MSw3ICsxMDk0OSw2IEBACiAJCUUxRkY1N0E1MEYwMTI1NkIw
MDg5MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDA2RjNGQTExOTgzMDREMDA5RDU5RDYgLyogRG9jVHlwZVN0cmluZ3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jVHlwZVN0cmluZ3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA2RjNGQjExOTgzMDdEMDA5RDU5RDYgLyog
Q29sb3JEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbG9y
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0MDZGNDAyMTE5ODMyOUEw
MDlENTlENiAvKiBIVE1MRW50aXR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSFRNTEVudGl0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQxNUYxMEMwRDlBMDU4NzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRWxlbWVudFRpbWVDb250cm9sLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxNUYxNjgwRDlBMTY1RDAwMzNDRTk3IC8qIERPTUVsZW1l
bnRUaW1lQ29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbGVt
ZW50VGltZUNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQxNUYxODMw
RDlBMUE4MzAwMzNDRTk3IC8qIEVsZW1lbnRUaW1lQ29udHJvbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFbGVtZW50VGltZUNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEyMjg4LDcgKzEyMjk1LDcgQEAKIAkJCQlFNDA2RjNGQTExOTgzMDREMDA5
RDU5RDYgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovLAogCQkJCUExN0M4MTIwMEYyQTVDRjcwMDVE
QUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCUExN0M4MTIxMEYyQTVDRjcw
MDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLywKLQkJCQlFNDA2RjQwMjExOTgzMjlB
MDA5RDU5RDYgLyogSFRNTEVudGl0eU5hbWVzLmNwcCAqLywKKwkJCQlBOEJDMDQ5MTEyMTRGNjk2
MDBCNUYxMjIgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAqLywKIAkJCQlBOEQwNkIzODBBMjY1RENE
MDA1RTcyMDMgLyogSFRNTE5hbWVzLmNwcCAqLywKIAkJCQlBOEQwNkIzNzBBMjY1RENEMDA1RTcy
MDMgLyogSFRNTE5hbWVzLmggKi8sCiAJCQkJOTM4RTY1RjYwOUYwOTg1RDAwOEE0OEVDIC8qIEpT
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCkBAIC0xMzk4Niw2ICsxMzk5MywxMCBA
QAogCQkJCTg1OTEyODc5MEFCMjIyRUMwMDIwMjI2NSAvKiBIVE1MRW1iZWRFbGVtZW50LmlkbCAq
LywKIAkJCQk5NzZFODk1RTExQzBDQTNBMDBFQTlDQTkgLyogSFRNTEVudGl0eVBhcnNlci5jcHAg
Ki8sCiAJCQkJOTc2RTg5NUYxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhUTUxFbnRpdHlQYXJzZXIuaCAq
LywKKwkJCQk5NzBDNEZERjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5jcHAg
Ki8sCisJCQkJOTcwQzRGRTAxMjExMjY2MjAwQzNEMzkzIC8qIEhUTUxFbnRpdHlTZWFyY2guaCAq
LywKKwkJCQk5NzBDNEZFMTEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAq
LywKKwkJCQk5NzBDNEZFMjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmggKi8s
CiAJCQkJQTgxMzY5QjkwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxGaWVsZFNldEVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4MTM2OUI4MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MRmllbGRTZXRFbGVtZW50
LmggKi8sCiAJCQkJMUFFMkE5RjQwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxGaWVsZFNldEVsZW1l
bnQuaWRsICovLApAQCAtMjAxNTYsNiArMjAxNjcsNyBAQAogCQkJCTk3REQ0RDg3MEZERjRENkUw
MEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE3MkUwMTExMzZF
OENFMDA2MkE1MzMgLyogWm9vbU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRUQ1N0ZFMTIx
NEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywK
KwkJCQlBOEJDMDQ0RjEyMTRFQjJCMDBCNUYxMjIgLyogSFRNTEVudGl0eVNlYXJjaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yMjU4Miw2ICsyMjU5NCw4IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAw
MkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4
NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RUVENTdGRDEyMTRBOUMyMDA3NjU2QkIgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBOEJDMDQ0RTEyMTRFQjJBMDBCNUYxMjIgLyogSFRNTEVudGl0eVNl
YXJjaC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEJDMDQ5MjEyMTRGNjk2MDBCNUYxMjIgLyog
SFRNTEVudGl0eVRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZiBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5TmFtZXMu
Z3BlcmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NjVlZmVhNTI0MDFhMjAyMzM3
Y2YyZWE2YmI4ODAwYmJjYjc1NGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorKysgL2Rldi9u
dWxsCkBAIC0xLDMwMyArMCwwIEBACi0lewotLyoKLSAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQG1waS1oZC5tcGcuZGUpCi0gICAgIENvcHlyaWdodCAoQykgMjAwMiwg
MjAwMywgMjAwNCwgMjAwNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gIAotICAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gIAotICAgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gIAotICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICAKLSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAKLSAgICBIVE1MRW50aXR5TmFt
ZXMuZ3BlcmY6IGlucHV0IGZpbGUgdG8gZ2VuZXJhdGUgYSBoYXNoIHRhYmxlIGZvciBlbnRpdGll
cwotICAgIEhUTUxFbnRpdHlOYW1lcy5jcHA6IERPIE5PVCBFRElUISBnZW5lcmF0ZWQgYnkgV2Vi
Q29yZS9tYWtlLWhhc2gtdG9vbHMucGwKLSovCi0lfQotJXN0cnVjdC10eXBlCi1zdHJ1Y3QgRW50
aXR5IHsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIGludCBjb2RlOwotfTsKLSVsYW5ndWFn
ZT1BTlNJLUMKLSVyZWFkb25seS10YWJsZXMKLSVnbG9iYWwtdGFibGUKLSVjb21wYXJlLXN0cm5j
bXAKLSVkZWZpbmUgbG9va3VwLWZ1bmN0aW9uLW5hbWUgZmluZEVudGl0eQotJWRlZmluZSBoYXNo
LWZ1bmN0aW9uLW5hbWUgZW50aXR5X2hhc2hfZnVuY3Rpb24KLSVpbmNsdWRlcwotJWVudW0KLSUl
Ci1BRWxpZywgMHgwMGM2Ci1BTVAsIDM4Ci1BYWN1dGUsIDB4MDBjMQotQWNpcmMsIDB4MDBjMgot
QWdyYXZlLCAweDAwYzAKLUFscGhhLCAweDAzOTEKLUFyaW5nLCAweDAwYzUKLUF0aWxkZSwgMHgw
MGMzCi1BdW1sLCAweDAwYzQKLUJldGEsIDB4MDM5MgotQ09QWSwgMHgwMGE5Ci1DY2VkaWwsIDB4
MDBjNwotQ2hpLCAweDAzYTcKLURhZ2dlciwgMHgyMDIxCi1EZWx0YSwgMHgwMzk0Ci1FVEgsIDB4
MDBkMAotRWFjdXRlLCAweDAwYzkKLUVjaXJjLCAweDAwY2EKLUVncmF2ZSwgMHgwMGM4Ci1FcHNp
bG9uLCAweDAzOTUKLUV0YSwgMHgwMzk3Ci1FdW1sLCAweDAwY2IKLUdULCA2MgotR2FtbWEsIDB4
MDM5MwotSWFjdXRlLCAweDAwY2QKLUljaXJjLCAweDAwY2UKLUlncmF2ZSwgMHgwMGNjCi1Jb3Rh
LCAweDAzOTkKLUl1bWwsIDB4MDBjZgotS2FwcGEsIDB4MDM5YQotTFQsIDYwCi1MYW1iZGEsIDB4
MDM5YgotTXUsIDB4MDM5YwotTnRpbGRlLCAweDAwZDEKLU51LCAweDAzOWQKLU9FbGlnLCAweDAx
NTIKLU9hY3V0ZSwgMHgwMGQzCi1PY2lyYywgMHgwMGQ0Ci1PZ3JhdmUsIDB4MDBkMgotT21lZ2Es
IDB4MDNhOQotT21pY3JvbiwgMHgwMzlmCi1Pc2xhc2gsIDB4MDBkOAotT3RpbGRlLCAweDAwZDUK
LU91bWwsIDB4MDBkNgotUGhpLCAweDAzYTYKLVBpLCAweDAzYTAKLVByaW1lLCAweDIwMzMKLVBz
aSwgMHgwM2E4Ci1RVU9ULCAzNAotUkVHLCAweDAwYWUKLVJobywgMHgwM2ExCi1TY2Fyb24sIDB4
MDE2MAotU2lnbWEsIDB4MDNhMwotVEhPUk4sIDB4MDBkZQotVGF1LCAweDAzYTQKLVRoZXRhLCAw
eDAzOTgKLVVhY3V0ZSwgMHgwMGRhCi1VY2lyYywgMHgwMGRiCi1VZ3JhdmUsIDB4MDBkOQotVXBz
aWxvbiwgMHgwM2E1Ci1VdW1sLCAweDAwZGMKLVhpLCAweDAzOWUKLVlhY3V0ZSwgMHgwMGRkCi1Z
dW1sLCAweDAxNzgKLVpldGEsIDB4MDM5NgotYWFjdXRlLCAweDAwZTEKLWFjaXJjLCAweDAwZTIK
LWFjdXRlLCAweDAwYjQKLWFlbGlnLCAweDAwZTYKLWFncmF2ZSwgMHgwMGUwCi1hbGVmc3ltLCAw
eDIxMzUKLWFscGhhLCAweDAzYjEKLWFtcCwgMzgKLWFuZCwgMHgyMjI3Ci1hbmcsIDB4MjIyMAot
YXBvcywgMHgwMDI3Ci1hcmluZywgMHgwMGU1Ci1hc3ltcCwgMHgyMjQ4Ci1hdGlsZGUsIDB4MDBl
MwotYXVtbCwgMHgwMGU0Ci1iZHF1bywgMHgyMDFlCi1iZXRhLCAweDAzYjIKLWJydmJhciwgMHgw
MGE2Ci1idWxsLCAweDIwMjIKLWNhcCwgMHgyMjI5Ci1jY2VkaWwsIDB4MDBlNwotY2VkaWwsIDB4
MDBiOAotY2VudCwgMHgwMGEyCi1jaGksIDB4MDNjNwotY2lyYywgMHgwMmM2Ci1jbHVicywgMHgy
NjYzCi1jb25nLCAweDIyNDUKLWNvcHksIDB4MDBhOQotY3JhcnIsIDB4MjFiNQotY3VwLCAweDIy
MmEKLWN1cnJlbiwgMHgwMGE0Ci1kQXJyLCAweDIxZDMKLWRhZ2dlciwgMHgyMDIwCi1kYXJyLCAw
eDIxOTMKLWRlZywgMHgwMGIwCi1kZWx0YSwgMHgwM2I0Ci1kaWFtcywgMHgyNjY2Ci1kaXZpZGUs
IDB4MDBmNwotZWFjdXRlLCAweDAwZTkKLWVjaXJjLCAweDAwZWEKLWVncmF2ZSwgMHgwMGU4Ci1l
bXB0eSwgMHgyMjA1Ci1lbXNwLCAweDIwMDMKLWVuc3AsIDB4MjAwMgotZXBzaWxvbiwgMHgwM2I1
Ci1lcXVpdiwgMHgyMjYxCi1ldGEsIDB4MDNiNwotZXRoLCAweDAwZjAKLWV1bWwsIDB4MDBlYgot
ZXVybywgMHgyMGFjCi1leGlzdCwgMHgyMjAzCi1mbm9mLCAweDAxOTIKLWZvcmFsbCwgMHgyMjAw
Ci1mcmFjMTIsIDB4MDBiZAotZnJhYzE0LCAweDAwYmMKLWZyYWMzNCwgMHgwMGJlCi1mcmFzbCwg
MHgyMDQ0Ci1nYW1tYSwgMHgwM2IzCi1nZSwgMHgyMjY1Ci1ndCwgNjIKLWhBcnIsIDB4MjFkNAot
aGFyciwgMHgyMTk0Ci1oZWFydHMsIDB4MjY2NQotaGVsbGlwLCAweDIwMjYKLWlhY3V0ZSwgMHgw
MGVkCi1pY2lyYywgMHgwMGVlCi1pZXhjbCwgMHgwMGExCi1pZ3JhdmUsIDB4MDBlYwotaW1hZ2Us
IDB4MjExMQotaW5maW4sIDB4MjIxZQotaW50LCAweDIyMmIKLWlvdGEsIDB4MDNiOQotaXF1ZXN0
LCAweDAwYmYKLWlzaW4sIDB4MjIwOAotaXVtbCwgMHgwMGVmCi1rYXBwYSwgMHgwM2JhCi1sQXJy
LCAweDIxZDAKLWxhbWJkYSwgMHgwM2JiCi1sYW5nLCAweDMwMDgKLWxhcXVvLCAweDAwYWIKLWxh
cnIsIDB4MjE5MAotbGNlaWwsIDB4MjMwOAotbGRxdW8sIDB4MjAxYwotbGUsIDB4MjI2NAotbGZs
b29yLCAweDIzMGEKLWxvd2FzdCwgMHgyMjE3Ci1sb3osIDB4MjVjYQotbHJtLCAweDIwMGUKLWxz
YXF1bywgMHgyMDM5Ci1sc3F1bywgMHgyMDE4Ci1sdCwgNjAKLW1hY3IsIDB4MDBhZgotbWRhc2gs
IDB4MjAxNAotbWljcm8sIDB4MDBiNQotbWlkZG90LCAweDAwYjcKLW1pbnVzLCAweDIyMTIKLW11
LCAweDAzYmMKLW5hYmxhLCAweDIyMDcKLW5ic3AsIDB4MDBhMAotbmRhc2gsIDB4MjAxMwotbmUs
IDB4MjI2MAotbmksIDB4MjIwYgotbm90LCAweDAwYWMKLW5vdGluLCAweDIyMDkKLW5zdWIsIDB4
MjI4NAotbnN1cCwgMHgyMjg1Ci1udGlsZGUsIDB4MDBmMQotbnUsIDB4MDNiZAotb2FjdXRlLCAw
eDAwZjMKLW9jaXJjLCAweDAwZjQKLW9lbGlnLCAweDAxNTMKLW9ncmF2ZSwgMHgwMGYyCi1vbGlu
ZSwgMHgyMDNlCi1vbWVnYSwgMHgwM2M5Ci1vbWljcm9uLCAweDAzYmYKLW9wbHVzLCAweDIyOTUK
LW9yLCAweDIyMjgKLW9yZGYsIDB4MDBhYQotb3JkbSwgMHgwMGJhCi1vc2xhc2gsIDB4MDBmOAot
b3RpbGRlLCAweDAwZjUKLW90aW1lcywgMHgyMjk3Ci1vdW1sLCAweDAwZjYKLXBhcmEsIDB4MDBi
NgotcGFydCwgMHgyMjAyCi1wZXJjbnQsIDB4MDAyNQotcGVybWlsLCAweDIwMzAKLXBlcnAsIDB4
MjJhNQotcGhpLCAweDAzYzYKLXBpLCAweDAzYzAKLXBpdiwgMHgwM2Q2Ci1wbHVzbW4sIDB4MDBi
MQotcG91bmQsIDB4MDBhMwotcHJpbWUsIDB4MjAzMgotcHJvZCwgMHgyMjBmCi1wcm9wLCAweDIy
MWQKLXBzaSwgMHgwM2M4Ci1xdW90LCAzNAotckFyciwgMHgyMWQyCi1yYWRpYywgMHgyMjFhCi1y
YW5nLCAweDMwMDkKLXJhcXVvLCAweDAwYmIKLXJhcnIsIDB4MjE5MgotcmNlaWwsIDB4MjMwOQot
cmRxdW8sIDB4MjAxZAotcmVhbCwgMHgyMTFjCi1yZWcsIDB4MDBhZQotcmZsb29yLCAweDIzMGIK
LXJobywgMHgwM2MxCi1ybG0sIDB4MjAwZgotcnNhcXVvLCAweDIwM2EKLXJzcXVvLCAweDIwMTkK
LXNicXVvLCAweDIwMWEKLXNjYXJvbiwgMHgwMTYxCi1zZG90LCAweDIyYzUKLXNlY3QsIDB4MDBh
Nwotc2h5LCAweDAwYWQKLXNpZ21hLCAweDAzYzMKLXNpZ21hZiwgMHgwM2MyCi1zaW0sIDB4MjIz
Ywotc3BhZGVzLCAweDI2NjAKLXN1YiwgMHgyMjgyCi1zdWJlLCAweDIyODYKLXN1bSwgMHgyMjEx
Ci1zdXAsIDB4MjI4Mwotc3VwMSwgMHgwMGI5Ci1zdXAyLCAweDAwYjIKLXN1cDMsIDB4MDBiMwot
c3VwZSwgMHgyMjg3Ci1zdXBsLCAweDAwYjkKLXN6bGlnLCAweDAwZGYKLXRhdSwgMHgwM2M0Ci10
aGVyZTQsIDB4MjIzNAotdGhldGEsIDB4MDNiOAotdGhldGFzeW0sIDB4MDNkMQotdGhpbnNwLCAw
eDIwMDkKLXRob3JuLCAweDAwZmUKLXRpbGRlLCAweDAyZGMKLXRpbWVzLCAweDAwZDcKLXRyYWRl
LCAweDIxMjIKLXVBcnIsIDB4MjFkMQotdWFjdXRlLCAweDAwZmEKLXVhcnIsIDB4MjE5MQotdWNp
cmMsIDB4MDBmYgotdWdyYXZlLCAweDAwZjkKLXVtbCwgMHgwMGE4Ci11cHNpaCwgMHgwM2QyCi11
cHNpbG9uLCAweDAzYzUKLXV1bWwsIDB4MDBmYwotd2VpZXJwLCAweDIxMTgKLXhpLCAweDAzYmUK
LXlhY3V0ZSwgMHgwMGZkCi15ZW4sIDB4MDBhNQoteXVtbCwgMHgwMGZmCi16ZXRhLCAweDAzYjYK
LXp3aiwgMHgyMDBkCi16d25qLCAweDIwMGMKLSUlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEVudGl0eVBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAK
aW5kZXggNmJlYzgxOTBkYzg4NmNjM2U2OWRmNzFlZDA0MDVmYTEwNmMwYmUwMy4uYWYzYjlmM2Y2
M2NkOWNmOGY5YTA2NDM5ZDRjMmE3NzJkYWY3MWNhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2Vy
LmNwcApAQCAtMjgsMTAgKzI4LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SFRNTEVudGl0eVBhcnNlci5oIgogCisjaW5jbHVkZSAiSFRNTEVudGl0eVNlYXJjaC5oIgorI2lu
Y2x1ZGUgIkhUTUxFbnRpdHlUYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotI2lu
Y2x1ZGUgIkhUTUxFbnRpdHlOYW1lcy5jcHAiCi0KIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMiw3ICsxMDIsNiBAQCB1bnNpZ25lZCBjb25zdW1lSFRN
TEVudGl0eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVy
cywgVQogICAgIEVudGl0eVN0YXRlIGVudGl0eVN0YXRlID0gSW5pdGlhbDsKICAgICB1bnNpZ25l
ZCByZXN1bHQgPSAwOwogICAgIFZlY3RvcjxVQ2hhciwgMTA+IGNvbnN1bWVkQ2hhcmFjdGVyczsK
LSAgICBWZWN0b3I8Y2hhciwgMTA+IGVudGl0eU5hbWU7CiAKICAgICB3aGlsZSAoIXNvdXJjZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgVUNoYXIgY2MgPSAqc291cmNlOwpAQCAtMTY2LDcgKzE2NSw3
IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBi
b29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICBlbHNlIGlmIChjYyA9PSAn
OycpIHsKICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxlZ2FsRW50aXR5Rm9yKHJlc3VsdCk7Ci0gICAgICAgICAg
ICB9IGVsc2UgCisgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gbGVn
YWxFbnRpdHlGb3IocmVzdWx0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0x
ODEsNDggKzE4MCw0OCBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0eShTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBOYW1lZDogewotICAgICAgICAgICAgLy8gRklY
TUU6IFRoaXMgY29kZSBpcyB3cm9uZy4gV2UgbmVlZCB0byBmaW5kIHRoZSBsb25nZXN0IG1hdGNo
aW5nIGVudGl0eS4KLSAgICAgICAgICAgIC8vICAgICAgICBUaGUgZXhhbXBsZXMgZnJvbSB0aGUg
c3BlYyBhcmU6Ci0gICAgICAgICAgICAvLyAgICAgICAgICAgIEknbSAmbm90aXQ7IEkgdGVsbCB5
b3UKLSAgICAgICAgICAgIC8vICAgICAgICAgICAgSSdtICZub3RpbjsgSSB0ZWxsIHlvdQotICAg
ICAgICAgICAgLy8gICAgICAgIEluIHRoZSBmaXJzdCBjYXNlLCAiJm5vdCIgaXMgdGhlIGVudGl0
eS4gIEluIHRoZSBzZWNvbmQKLSAgICAgICAgICAgIC8vICAgICAgICBjYXNlLCAiJm5vdGluOyIg
aXMgdGhlIGVudGl0eS4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBPdXIgbGlzdCBvZiBIVE1MIGVu
dGl0aWVzIGlzIGluY29tcGxldGUuCi0gICAgICAgICAgICAvLyBGSVhNRTogVGhlIG51bWJlciA4
IGJlbG93IGlzIGJvZ3VzLgotICAgICAgICAgICAgd2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgpICYm
IGVudGl0eU5hbWUuc2l6ZSgpIDw9IDgpIHsKKyAgICAgICAgICAgIEhUTUxFbnRpdHlTZWFyY2gg
ZW50aXR5U2VhcmNoOworICAgICAgICAgICAgd2hpbGUgKCFzb3VyY2UuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAgICAgY2MgPSAqc291cmNlOwotICAgICAgICAgICAgICAgIGlmIChjYyA9PSAn
OycpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgRW50aXR5KiBlbnRpdHkgPSBmaW5kRW50
aXR5KGVudGl0eU5hbWUuZGF0YSgpLCBlbnRpdHlOYW1lLnNpemUoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChlbnRpdHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZh
bmNlQW5kQVNTRVJUKCc7Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5
LT5jb2RlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWlzQWxwaGFOdW1lcmlj
KGNjKSkgewotICAgICAgICAgICAgICAgICAgICBjb25zdCBFbnRpdHkqIGVudGl0eSA9IGZpbmRF
bnRpdHkoZW50aXR5TmFtZS5kYXRhKCksIGVudGl0eU5hbWUuc2l6ZSgpKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGVudGl0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gSFRNTDUg
dGVsbHMgdXMgdG8gaWdub3JlIHRoaXMgZW50aXR5LCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGxvb2toZWFkIGNoYXJhY3RlciBpcyAn
PScuCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0
ZXIgJiYgY2MgPT0gJz0nKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gU29tZSBlbnRpdGllcyByZXF1aXJlIGEgdGVybWluYXRp
bmcgc2VtaWNvbG9uLCB3aGVyZWFzIG90aGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBl
bnRpdGllcyBkbyBub3QuICBUaGUgSFRNTDUgc3BlYyBoYXMgYSBnaWFudCBsaXN0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93
d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL25hbWVk
LWNoYXJhY3Rlci1yZWZlcmVuY2VzLmh0bWwjbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMKLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBIb3dl
dmVyLCB0aGUgbGlzdCBzZWVtcyB0byBib2lsIGRvd24gdG8gdGhpcyBicmFuY2g6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LT5jb2RlID4gMjU1KQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0
eS0+Y29kZTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVudGl0eVNl
YXJjaC5hZHZhbmNlKGNjKTsKKyAgICAgICAgICAgICAgICBpZiAoIWVudGl0eVNlYXJjaC5pc0Vu
dGl0eVByZWZpeCgpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgZW50aXR5TmFtZS5hcHBlbmQoY2MpOwogICAgICAgICAgICAg
ICAgIGNvbnN1bWVkQ2hhcmFjdGVycy5hcHBlbmQoY2MpOwogICAgICAgICAgICAgICAgIHNvdXJj
ZS5hZHZhbmNlQW5kQVNTRVJUKGNjKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG5vdEVu
b3VnaENoYXJhY3RlcnMgPSBzb3VyY2UuaXNFbXB0eSgpOworICAgICAgICAgICAgaWYgKG5vdEVu
b3VnaENoYXJhY3RlcnMpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCBhbiBlbnRpdHkg
YmVjYXVzZSB0aGVyZSBtaWdodCBiZSBhIGxvbmdlciBlbnRpdHkKKyAgICAgICAgICAgICAgICAv
LyB0aGF0IHdlIGNvdWxkIG1hdGNoIGlmIHdlIGhhZCBtb3JlIGRhdGEuCisgICAgICAgICAgICAg
ICAgdW5jb25zdW1lQ2hhcmFjdGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVu
dGl0eVNlYXJjaC5sYXN0TWF0Y2goKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVCghZW50aXR5
U2VhcmNoLmN1cnJlbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0
ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbnRpdHlTZWFyY2gubGFzdE1hdGNo
KCktPmxlbmd0aCAhPSBlbnRpdHlTZWFyY2guY3VycmVudExlbmd0aCgpKSB7CisgICAgICAgICAg
ICAgICAgLy8gV2UndmUgY29uc3VtZWQgdG9vIG1hbnkgY2hhcmFjdGVycy4gIFdlIG5lZWQgdG8g
d2FsayB0aGUKKyAgICAgICAgICAgICAgICAvLyBzb3VyY2UgYmFjayB0byB0aGUgcG9pbnQgYXQg
d2hpY2ggd2UgaGFkIGNvbnN1bWVkIGFuCisgICAgICAgICAgICAgICAgLy8gYWN0dWFsIGVudGl0
eS4KKyAgICAgICAgICAgICAgICB1bmNvbnN1bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRD
aGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuY2xlYXIoKTsK
KyAgICAgICAgICAgICAgICBjb25zdCBpbnQgbGVuZ3RoID0gZW50aXR5U2VhcmNoLmxhc3RNYXRj
aCgpLT5sZW5ndGg7CisgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIHJlZmVyZW5jZSA9IGVu
dGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+ZW50aXR5OworICAgICAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgY2MgPSAqc291
cmNlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHJlZmVyZW5jZSwgY2MgPT0g
KnJlZmVyZW5jZSsrKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3VtZWRDaGFyYWN0ZXJzLmFw
cGVuZChjYyk7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kQVNTRVJUKGNj
KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFzb3VyY2UuaXNFbXB0eSgpKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2MgPSAqc291cmNlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKGVudGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+bGFzdENoYXJhY3Rl
cigpID09ICc7JykKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5U2VhcmNoLmxhc3RNYXRj
aCgpLT52YWx1ZTsKKyAgICAgICAgICAgIGlmICghYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIg
fHwgIShpc0FscGhhTnVtZXJpYyhjYykgfHwgY2MgPT0gJz0nKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZW50aXR5U2VhcmNoLmxhc3RNYXRjaCgpLT52YWx1ZTsKICAgICAgICAgICAgIHVuY29u
c3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTIzOCw4ICsyMzcsMTggQEAgdW5zaWduZWQgY29uc3Vt
ZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVub3VnaENoYXJh
Y3RlcnMsIFUKIAogVUNoYXIgZGVjb2RlTmFtZWRFbnRpdHkoY29uc3QgY2hhciogbmFtZSkKIHsK
LSAgICBjb25zdCBFbnRpdHkqIGUgPSBmaW5kRW50aXR5KG5hbWUsIHN0cmxlbihuYW1lKSk7Ci0g
ICAgcmV0dXJuIGUgPyBlLT5jb2RlIDogMDsKKyAgICBIVE1MRW50aXR5U2VhcmNoIHNlYXJjaDsK
KyAgICB3aGlsZSAobmFtZSAmJiBzZWFyY2guaXNFbnRpdHlQcmVmaXgoKSkKKyAgICAgICAgc2Vh
cmNoLmFkdmFuY2UoKm5hbWUrKyk7CisgICAgc2VhcmNoLmFkdmFuY2UoJzsnKTsKKyAgICBVQ2hh
cjMyIGVudGl0eVZhbHVlID0gc2VhcmNoLmN1cnJlbnRWYWx1ZSgpOworICAgIGlmIChVMTZfTEVO
R1RIKGVudGl0eVZhbHVlKSAhPSAxKSB7CisgICAgICAgIC8vIENhbGxlcnMgbmVlZCB0byBtb3Zl
IG9mZiB0aGlzIEFQSSBpZiB0aGUgZW50aXR5IHRhYmxlIGhhcyB2YWx1ZXMKKyAgICAgICAgLy8g
d2hpY2ggZG8gbm8gZml0IGluIGEgMTYgYml0IFVDaGFyIQorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxVQ2hhcj4oZW50aXR5VmFsdWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5jcHAgYi9XZWJDb3JlL2h0bWwv
SFRNTEVudGl0eVNlYXJjaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1MjZhM2Q2ZGU3ZmIyN2ViYjNjODNh
YzM5YTFlYTdhNjZlYzE2OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRW50
aXR5U2VhcmNoLmNwcApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJI
VE1MRW50aXR5U2VhcmNoLmgiCisKKyNpbmNsdWRlICJIVE1MRW50aXR5VGFibGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAgIAorY29uc3QgSFRNTEVudGl0eVRh
YmxlRW50cnkqIGhhbGZ3YXkoY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGxlZnQsIGNvbnN0
IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiByaWdodCkKK3sKKyAgICByZXR1cm4gJmxlZnRbKHJpZ2h0
IC0gbGVmdCkgLyAyXTsKK30KKworfQorICAgIAorSFRNTEVudGl0eVNlYXJjaDo6SFRNTEVudGl0
eVNlYXJjaCgpCisgICAgOiBtX2N1cnJlbnRMZW5ndGgoMCkKKyAgICAsIG1fY3VycmVudFZhbHVl
KDApCisgICAgLCBtX2xhc3RNYXRjaCgwKQorICAgICwgbV9zdGFydChIVE1MRW50aXR5VGFibGU6
OnN0YXJ0KCkpCisgICAgLCBtX2VuZChIVE1MRW50aXR5VGFibGU6OmVuZCgpKQoreworfQorCitI
VE1MRW50aXR5U2VhcmNoOjpDb21wYXJlUmVzdWx0IEhUTUxFbnRpdHlTZWFyY2g6OmNvbXBhcmUo
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGVudHJ5LCBVQ2hhciBuZXh0Q2hhcmFjdGVyKSBj
b25zdAoreworICAgIGlmIChlbnRyeS0+bGVuZ3RoIDwgbV9jdXJyZW50TGVuZ3RoICsgMSkKKyAg
ICAgICAgcmV0dXJuIEJlZm9yZTsKKyAgICBVQ2hhciBlbnRyeU5leHRDaGFyYWN0ZXIgPSBlbnRy
eS0+ZW50aXR5W21fY3VycmVudExlbmd0aF07CisgICAgaWYgKGVudHJ5TmV4dENoYXJhY3RlciA9
PSBuZXh0Q2hhcmFjdGVyKQorICAgICAgICByZXR1cm4gUHJlZml4OworICAgIHJldHVybiBlbnRy
eU5leHRDaGFyYWN0ZXIgPCBuZXh0Q2hhcmFjdGVyID8gQmVmb3JlIDogQWZ0ZXI7Cit9CisKK2Nv
bnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBIVE1MRW50aXR5U2VhcmNoOjpmaW5kU3RhcnQoVUNo
YXIgbmV4dENoYXJhY3RlcikgY29uc3QKK3sKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRy
eSogbGVmdCA9IG1fc3RhcnQ7CisgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHJpZ2h0
ID0gbV9lbmQ7CisgICAgaWYgKGxlZnQgPT0gcmlnaHQpCisgICAgICAgIHJldHVybiBsZWZ0Owor
ICAgIENvbXBhcmVSZXN1bHQgcmVzdWx0ID0gY29tcGFyZShsZWZ0LCBuZXh0Q2hhcmFjdGVyKTsK
KyAgICBpZiAocmVzdWx0ID09IFByZWZpeCkKKyAgICAgICAgcmV0dXJuIGxlZnQ7CisgICAgaWYg
KHJlc3VsdCA9PSBBZnRlcikKKyAgICAgICAgcmV0dXJuIHJpZ2h0OworICAgIHdoaWxlIChsZWZ0
ICsgMSA8IHJpZ2h0KSB7CisgICAgICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBwcm9i
ZSA9IGhhbGZ3YXkobGVmdCwgcmlnaHQpOworICAgICAgICByZXN1bHQgPSBjb21wYXJlKHByb2Jl
LCBuZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBCZWZvcmUpCisgICAgICAg
ICAgICBsZWZ0ID0gcHJvYmU7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKHJl
c3VsdCA9PSBBZnRlciB8fCByZXN1bHQgPT0gUHJlZml4KTsKKyAgICAgICAgICAgIHJpZ2h0ID0g
cHJvYmU7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUKGxlZnQgKyAxID09IHJpZ2h0KTsK
KyAgICByZXR1cm4gcmlnaHQ7Cit9CisKK2NvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBIVE1M
RW50aXR5U2VhcmNoOjpmaW5kRW5kKFVDaGFyIG5leHRDaGFyYWN0ZXIpIGNvbnN0Cit7CisgICAg
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIGxlZnQgPSBtX3N0YXJ0OworICAgIGNvbnN0IEhU
TUxFbnRpdHlUYWJsZUVudHJ5KiByaWdodCA9IG1fZW5kOworICAgIGlmIChsZWZ0ID09IHJpZ2h0
KQorICAgICAgICByZXR1cm4gcmlnaHQ7CisgICAgQ29tcGFyZVJlc3VsdCByZXN1bHQgPSBjb21w
YXJlKHJpZ2h0LCBuZXh0Q2hhcmFjdGVyKTsKKyAgICBpZiAocmVzdWx0ID09IFByZWZpeCkKKyAg
ICAgICAgcmV0dXJuIHJpZ2h0OworICAgIGlmIChyZXN1bHQgPT0gQmVmb3JlKQorICAgICAgICBy
ZXR1cm4gbGVmdDsKKyAgICB3aGlsZSAobGVmdCArIDEgPCByaWdodCkgeworICAgICAgICBjb25z
dCBIVE1MRW50aXR5VGFibGVFbnRyeSogcHJvYmUgPSBoYWxmd2F5KGxlZnQsIHJpZ2h0KTsKKyAg
ICAgICAgcmVzdWx0ID0gY29tcGFyZShwcm9iZSwgbmV4dENoYXJhY3Rlcik7CisgICAgICAgIGlm
IChyZXN1bHQgPT0gQWZ0ZXIpCisgICAgICAgICAgICByaWdodCA9IHByb2JlOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChyZXN1bHQgPT0gQmVmb3JlIHx8IHJlc3VsdCA9PSBQ
cmVmaXgpOworICAgICAgICAgICAgbGVmdCA9IHByb2JlOworICAgICAgICB9CisgICAgfQorICAg
IEFTU0VSVChsZWZ0ICsgMSA9PSByaWdodCk7CisgICAgcmV0dXJuIGxlZnQ7Cit9CisKK3ZvaWQg
SFRNTEVudGl0eVNlYXJjaDo6YWR2YW5jZShVQ2hhciBuZXh0Q2hhcmFjdGVyKQoreworICAgIEFT
U0VSVChpc0VudGl0eVByZWZpeCgpKTsKKyAgICBpZiAoIW1fY3VycmVudExlbmd0aCkgeworICAg
ICAgICBtX3N0YXJ0ID0gSFRNTEVudGl0eVRhYmxlOjpzdGFydChuZXh0Q2hhcmFjdGVyKTsKKyAg
ICAgICAgbV9lbmQgPSBIVE1MRW50aXR5VGFibGU6OmVuZChuZXh0Q2hhcmFjdGVyKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBtX3N0YXJ0ID0gZmluZFN0YXJ0KG5leHRDaGFyYWN0ZXIpOworICAg
ICAgICBtX2VuZCA9IGZpbmRFbmQobmV4dENoYXJhY3Rlcik7CisgICAgICAgIGlmIChtX3N0YXJ0
ID09IG1fZW5kICYmIGNvbXBhcmUobV9zdGFydCwgbmV4dENoYXJhY3RlcikgIT0gUHJlZml4KQor
ICAgICAgICAgICAgcmV0dXJuIGZhaWwoKTsKKyAgICB9CisgICAgKyttX2N1cnJlbnRMZW5ndGg7
CisgICAgaWYgKG1fc3RhcnQtPmxlbmd0aCAhPSBtX2N1cnJlbnRMZW5ndGgpIHsKKyAgICAgICAg
bV9jdXJyZW50VmFsdWUgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fbGFzdE1h
dGNoID0gbV9zdGFydDsKKyAgICBtX2N1cnJlbnRWYWx1ZSA9IG1fbGFzdE1hdGNoLT52YWx1ZTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlTZWFyY2guaCBiL1dl
YkNvcmUvaHRtbC9IVE1MRW50aXR5U2VhcmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU3ODU5ZDRlYmNjZDJh
MTJiMDNiZGUwZjhjZjEyODIzOTRkYmNjOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRW50aXR5U2VhcmNoLmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRNTEVudGl0eVNlYXJjaF9o
CisjZGVmaW5lIEhUTUxFbnRpdHlTZWFyY2hfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSFRNTEVudGl0eVRhYmxlRW50cnk7
CisKK2NsYXNzIEhUTUxFbnRpdHlTZWFyY2ggeworcHVibGljOgorICAgIEhUTUxFbnRpdHlTZWFy
Y2goKTsKKworICAgIHZvaWQgYWR2YW5jZShVQ2hhcik7CisKKyAgICBib29sIGlzRW50aXR5UHJl
Zml4KCkgY29uc3QgeyByZXR1cm4gISFtX3N0YXJ0OyB9CisgICAgaW50IGN1cnJlbnRWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFZhbHVlOyB9CisgICAgaW50IGN1cnJlbnRMZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRMZW5ndGg7IH0KKworICAgIGNvbnN0IEhUTUxFbnRp
dHlUYWJsZUVudHJ5KiBsYXN0TWF0Y2goKSBjb25zdCB7IHJldHVybiBtX2xhc3RNYXRjaDsgfQor
Citwcml2YXRlOgorICAgIGVudW0gQ29tcGFyZVJlc3VsdCB7CisgICAgICAgIEJlZm9yZSwKKyAg
ICAgICAgUHJlZml4LAorICAgICAgICBBZnRlciwKKyAgICB9OworCisgICAgQ29tcGFyZVJlc3Vs
dCBjb21wYXJlKGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiwgVUNoYXIpIGNvbnN0OworICAg
IGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBmaW5kU3RhcnQoVUNoYXIpIGNvbnN0OworICAg
IGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBmaW5kRW5kKFVDaGFyKSBjb25zdDsKKworICAg
IHZvaWQgZmFpbCgpCisgICAgeworICAgICAgICBtX2N1cnJlbnRWYWx1ZSA9IDA7CisgICAgICAg
IG1fc3RhcnQgPSAwOworICAgICAgICBtX2VuZCA9IDA7CisgICAgfQorCisgICAgaW50IG1fY3Vy
cmVudExlbmd0aDsKKyAgICBpbnQgbV9jdXJyZW50VmFsdWU7CisKKyAgICBjb25zdCBIVE1MRW50
aXR5VGFibGVFbnRyeSogbV9sYXN0TWF0Y2g7CisgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50
cnkqIG1fc3RhcnQ7CisgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIG1fZW5kOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5VGFibGUu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5VGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWExYWZkMzE2
MWYwZGNhMzRjNTJkMzAxZGNhOWMzOTU5YzcyOTMxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbnRpdHlUYWJsZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEhUTUxFbnRpdHlUYWJs
ZV9oCisjZGVmaW5lIEhUTUxFbnRpdHlUYWJsZV9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBIVE1MRW50aXR5VGFibGVFbnRy
eSB7CisgICAgVUNoYXIgbGFzdENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIGVudGl0eVtsZW5n
dGggLSAxXTsgfQorCisgICAgY29uc3QgVUNoYXIqIGVudGl0eTsKKyAgICBpbnQgbGVuZ3RoOwor
ICAgIGludCB2YWx1ZTsKK307CisKK2NsYXNzIEhUTUxFbnRpdHlUYWJsZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBzdGFydCgpOworICAgIHN0YXRp
YyBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogZW5kKCk7CisKKyAgICBzdGF0aWMgY29uc3Qg
SFRNTEVudGl0eVRhYmxlRW50cnkqIHN0YXJ0KFVDaGFyKTsKKyAgICBzdGF0aWMgY29uc3QgSFRN
TEVudGl0eVRhYmxlRW50cnkqIGVuZChVQ2hhcik7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9tYWtlLWhhc2gtdG9vbHMucGwgYi9XZWJDb3JlL21ha2UtaGFzaC10b29s
cy5wbAppbmRleCA0MmNiNmZkOTU4ZjEwNWFlNmFmYmY2ZWRlMzQ4YWMzNWI2ZjM5NjNlLi44Y2M5
OTUyYzE1NzJiMDAzMzgxYjBkODI3M2NiMWQ2NjVjMzBmZmU4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L21ha2UtaGFzaC10b29scy5wbAorKysgYi9XZWJDb3JlL21ha2UtaGFzaC10b29scy5wbApAQCAt
MjksMTYgKzI5LDYgQEAgbXkgJG9wdGlvbiA9IGJhc2VuYW1lKCRBUkdWWzBdLCIuZ3BlcmYiKTsK
IAogc3dpdGNoICgkb3B0aW9uKSB7CiAKLWNhc2UgIkhUTUxFbnRpdHlOYW1lcyIgewotCi0gICAg
bXkgJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCAgID0gIiRvdXRkaXIvSFRNTEVudGl0eU5hbWVz
LmNwcCI7Ci0gICAgbXkgJGh0bWxFbnRpdHlOYW1lc0dwZXJmICAgICAgID0gJEFSR1ZbMF07Ci0g
ICAgc2hpZnQ7Ci0KLSAgICBzeXN0ZW0oImdwZXJmIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAt
cyAyICRodG1sRW50aXR5TmFtZXNHcGVyZiA+ICRodG1sRW50aXR5TmFtZXNHZW5lcmF0ZWQiKSA9
PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBmYWlsZWQ6ICQ/IjsKLQotfSAjIGNhc2UgIkhUTUxF
bnRpdHlOYW1lcyIKLQogY2FzZSAiRG9jVHlwZVN0cmluZ3MiIHsKIAogICAgIG15ICRkb2NUeXBl
U3RyaW5nc0dlbmVyYXRlZCAgICA9ICIkb3V0ZGlyL0RvY1R5cGVTdHJpbmdzLmNwcCI7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggZjhkMWQ4OGMyYmQ4YWM5M2NmNjI4ZDA2MjNjNTg5NzgyNzRjMTk1My4uOTMxOWZhMTk3YmI0
NTMxMWYwZTk4YTZkZmE0MjQzNTk0NDFiYTAzYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEw
LTA4LTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE1hdGhNTCBl
bnRpdGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM5NDkKKworICAgICAgICBBIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyB0aGUgQysrIHN0YXRlIGRh
dGEgc3RydWN0dXJlIGRlc2NyaWJpbmcgYWxsIHRoZQorICAgICAgICBlbnRpdGllcyBmcm9tIGEg
SlNPTiBkZXNjcmlwdGlvbi4KKworICAgICAgICBOb3RlOiBUaGlzIHNjcmlwdCBpcyBub3QgeWV0
IGludGVncmF0ZWQgd2l0aCB0aGUgYnVpbGQgc3lzdGVtLCBzbyB0aGlzCisgICAgICAgICAgICAg
IHBhdGNoIHdpbGwgbm90IGJ1aWxkISAgT09QUyEKKworICAgICAgICAqIFNjcmlwdHMvY3JlYXRl
LWh0bWwtZW50aXR5LXRhYmxlOiBBZGRlZC4KKwogMjAxMC0wOC0xMiAgRGF2aWQgTGV2aW4gIDxs
ZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQnVpbGQgYnJlYWsgZml4LgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUgYi9XZWJLaXRU
b29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGQ1NWY3
YWUxNWEwNWE4NmNkNDdjYjViNGMzMmNiZDNjZjI1Y2FlCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKQEAgLTAsMCArMSwxNzcg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIyAKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMgCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IG9z
LnBhdGgKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCBzeXMKKworaW1wb3J0IHdlYmtpdHB5LnRoaXJk
cGFydHkuc2ltcGxlanNvbiBhcyBzaW1wbGVqc29uCisKKworZGVmIGNvbnZlcnRfZW50aXR5X3Rv
X2NwcF9uYW1lKGVudGl0eSk6CisgICAgcG9zdGZpeCA9ICJFbnRpdHlOYW1lIgorICAgIGlmIGVu
dGl0eVstMV0gPT0gIjsiOgorICAgICAgICByZXR1cm4gIiVzU2VtaWNvbG9uJXMiICUgKGVudGl0
eVs6LTFdLCBwb3N0Zml4KQorICAgIHJldHVybiAiJXMlcyIgJSAoZW50aXR5LCBwb3N0Zml4KQor
CisKK2RlZiBjb252ZXJ0X2VudGl0eV90b191Y2hhcl9hcnJheShlbnRpdHkpOgorICAgIHJldHVy
biAieyclcyd9IiAlICInLCAnIi5qb2luKGVudGl0eSkKKworCitkZWYgY29udmVydF92YWx1ZV90
b19pbnQodmFsdWUpOgorICAgIGFzc2VydCh2YWx1ZVswXSA9PSAiVSIpCisgICAgYXNzZXJ0KHZh
bHVlWzFdID09ICIrIikKKyAgICByZXR1cm4gIjB4IiArIHZhbHVlWzI6XQorCisKK2RlZiBvZmZz
ZXRfdGFibGVfZW50cnkob2Zmc2V0KToKKyAgICByZXR1cm4gIiAgICAmc3RhdGljRW50aXR5VGFi
bGVbJXNdLCIgJSBvZmZzZXQKKworCitwcm9ncmFtX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKF9f
ZmlsZV9fKQoraWYgbGVuKHN5cy5hcmd2KSA8IDQgb3Igc3lzLmFyZ3ZbMV0gIT0gIi1vIjoKKyAg
ICBwcmludCA+PiBzeXMuc3RkZXJyLCAiVXNhZ2U6ICVzIC1vIE9VVFBVVF9GSUxFIElOUFVUX0ZJ
TEUiICUgcHJvZ3JhbV9uYW1lCisgICAgZXhpdCgxKQorCitvdXRwdXRfcGF0aCA9IHN5cy5hcmd2
WzJdCitpbnB1dF9wYXRoID0gc3lzLmFyZ3ZbM10KKworaHRtbF9lbnRpdHlfbmFtZXNfZmlsZSA9
IG9wZW4oaW5wdXRfcGF0aCkKK2VudHJpZXMgPSBzaW1wbGVqc29uLmxvYWQoaHRtbF9lbnRpdHlf
bmFtZXNfZmlsZSkKK2h0bWxfZW50aXR5X25hbWVzX2ZpbGUuY2xvc2UoKQorCitlbnRyaWVzID0g
c29ydGVkKGVudHJpZXMsIGtleT1sYW1iZGEgZW50cnk6IGVudHJ5WydlbnRpdHknXSkKK2VudGl0
eV9jb3VudCA9IGxlbihlbnRyaWVzKQorCitvdXRwdXRfZmlsZSA9IG9wZW4ob3V0cHV0X3BhdGgs
ICJ3IikKKworcHJpbnQgPj4gb3V0cHV0X2ZpbGUsICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisvLyBUSElTIEZJTEUgSVMgR0VORVJBVEVEIEJZIFdl
YktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCisvLyBETyBOT1QgRURJ
VCAodW5sZXNzIHlvdSBhcmUgYSBuaW5qYSkhCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJIVE1MRW50aXR5VGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3Bh
Y2UgeworIiIiCisKK2ZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgIHByaW50ID4+IG91dHB1dF9m
aWxlLCAiY29uc3QgVUNoYXIgJXNFbnRpdHlOYW1lW10gPSAlczsiICUgKAorICAgICAgICBjb252
ZXJ0X2VudGl0eV90b19jcHBfbmFtZShlbnRyeVsiZW50aXR5Il0pLAorICAgICAgICBjb252ZXJ0
X2VudGl0eV90b191Y2hhcl9hcnJheShlbnRyeVsiZW50aXR5Il0pKQorCitwcmludCA+PiBvdXRw
dXRfZmlsZSwgIiIiCitIVE1MRW50aXR5VGFibGVFbnRyeSBzdGF0aWNFbnRpdHlUYWJsZVslc10g
PSB7IiIiICUgZW50aXR5X2NvdW50CisKK2luZGV4ID0ge30KK29mZnNldCA9IDAKK2ZvciBlbnRy
eSBpbiBlbnRyaWVzOgorICAgIGxldHRlciA9IGVudHJ5WyJlbnRpdHkiXVswXQorICAgIGlmIG5v
dCBpbmRleC5nZXQobGV0dGVyKToKKyAgICAgICAgaW5kZXhbbGV0dGVyXSA9IG9mZnNldAorICAg
IHByaW50ID4+IG91dHB1dF9maWxlLCAnICAgIHsgJXNFbnRpdHlOYW1lLCAlcywgJXMgfSwnICUg
KAorICAgICAgICBjb252ZXJ0X2VudGl0eV90b19jcHBfbmFtZShlbnRyeVsiZW50aXR5Il0pLAor
ICAgICAgICBsZW4oZW50cnlbImVudGl0eSJdKSwKKyAgICAgICAgY29udmVydF92YWx1ZV90b19p
bnQoZW50cnlbInZhbHVlIl0pKQorICAgIG9mZnNldCArPSAxCisKK3ByaW50ID4+IG91dHB1dF9m
aWxlLCAiIiJ9OworIiIiCisKK3ByaW50ID4+IG91dHB1dF9maWxlLCAiY29uc3QgSFRNTEVudGl0
eVRhYmxlRW50cnkqIHVwcGVyY2FzZU9mZnNldFtdID0geyIKK2ZvciBsZXR0ZXIgaW4gc3RyaW5n
LnVwcGVyY2FzZToKKyAgICBwcmludCA+PiBvdXRwdXRfZmlsZSwgb2Zmc2V0X3RhYmxlX2VudHJ5
KGluZGV4W2xldHRlcl0pCitwcmludCA+PiBvdXRwdXRfZmlsZSwgb2Zmc2V0X3RhYmxlX2VudHJ5
KGluZGV4WydhJ10pCitwcmludCA+PiBvdXRwdXRfZmlsZSwgIiIifTsKKworY29uc3QgSFRNTEVu
dGl0eVRhYmxlRW50cnkqIGxvd2VyY2FzZU9mZnNldFtdID0geyIiIgorZm9yIGxldHRlciBpbiBz
dHJpbmcubG93ZXJjYXNlOgorICAgIHByaW50ID4+IG91dHB1dF9maWxlLCBvZmZzZXRfdGFibGVf
ZW50cnkoaW5kZXhbbGV0dGVyXSkKK3ByaW50ID4+IG91dHB1dF9maWxlLCBvZmZzZXRfdGFibGVf
ZW50cnkoZW50aXR5X2NvdW50KQorcHJpbnQgPj4gb3V0cHV0X2ZpbGUsICIiIn07CisKK30KKwor
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlUYWJsZTo6c3RhcnQoVUNoYXIg
YykKK3sKKyAgICBpZiAoYyA+PSAnQScgJiYgYyA8PSAnWicpCisgICAgICAgIHJldHVybiB1cHBl
cmNhc2VPZmZzZXRbYyAtICdBJ107CisgICAgaWYgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKQorICAg
ICAgICByZXR1cm4gbG93ZXJjYXNlT2Zmc2V0W2MgLSAnYSddOworICAgIHJldHVybiAwOworfQor
Citjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVRhYmxlOjplbmQoVUNoYXIg
YykKK3sKKyAgICBpZiAoYyA+PSAnQScgJiYgYyA8PSAnWicpCisgICAgICAgIHJldHVybiB1cHBl
cmNhc2VPZmZzZXRbYyAtICdBJyArIDFdIC0gMTsKKyAgICBpZiAoYyA+PSAnYScgJiYgYyA8PSAn
eicpCisgICAgICAgIHJldHVybiBsb3dlcmNhc2VPZmZzZXRbYyAtICdhJyArIDFdIC0gMTsKKyAg
ICByZXR1cm4gMDsKK30KKworY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlU
YWJsZTo6c3RhcnQoKQoreworICAgIHJldHVybiAmc3RhdGljRW50aXR5VGFibGVbMF07Cit9CisK
K2NvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBIVE1MRW50aXR5VGFibGU6OmVuZCgpCit7Cisg
ICAgcmV0dXJuICZzdGF0aWNFbnRpdHlUYWJsZVslcyAtIDFdOworfQorCit9CisiIiIgJSBlbnRp
dHlfY291bnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64384</attachid>
            <date>2010-08-13 16:01:19 -0700</date>
            <delta_ts>2010-08-13 22:38:16 -0700</delta_ts>
            <desc>Fixed mac build</desc>
            <filename>bug-43949-20100813160116.patch</filename>
            <type>text/plain</type>
            <size>51926</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTVhNjJmNjA5YzI4OWUzZjI1ZTMzN2YxNThkZTVkYjAxMzljZjgwLi5lOTdkNjNi
ODk0NDZkY2NmZDdiM2M3YjYxNGQ2MWQ1YjAxMjIwYTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDgtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0
aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk0OQorCisgICAgICAgIFRlc3QgcHJvZ3Jlc3Npb24gZm9yIHByb3BlciBlbnRpdHkg
c3VwcG9ydC4KKworICAgICAgICAqIGh0bWw1bGliL3J1bm5lci1leHBlY3RlZC1odG1sNS50eHQ6
CisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0wOC0xMiAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGxh
bmRpbmcgZ29vZ2xlLWNocm9tZSBsaW51eCA2NCB0ZXN0IHJlc3VsdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQtaHRtbDUudHh0IGIvTGF5b3V0VGVz
dHMvaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLWh0bWw1LnR4dAppbmRleCAyZWIwMWI0Y2JmOGFh
NzYyMzg0YWI1ODEwZjJmMThmNzk5YTI1ZGNmLi44NGM3MjE3NGZkY2UxYmU1M2QxNjhkYTY4MjY2
ZWQyOTIzNGE5ODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQtaHRtbDUudHh0CisrKyBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3Rl
ZC1odG1sNS50eHQKQEAgLTExOCw5MiArMTE4LDEwIEBAIHJlc291cmNlcy9kb2N0eXBlMDEuZGF0
OiBQQVNTCiAKIHJlc291cmNlcy9zY3JpcHRkYXRhMDEuZGF0OiBQQVNTCiAKLXJlc291cmNlcy9o
dG1sNXRlc3QtY29tLmRhdDoKLTcKLTkKLTEwCi0xMQotCi1UZXN0IDcgb2YgMjQgaW4gcmVzb3Vy
Y2VzL2h0bWw1dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbGFuZzsmcmFuZzsKLUdvdDoK
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi44CI44CJIgotRXhwZWN0
ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKfqOKfqSIKLQot
VGVzdCA5IG9mIDI0IGluIHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0
OgotJkltYWdpbmFyeUk7Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgIiZJbWFnaW5hcnlJOyIKLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgICLihYgiCi0KLVRlc3QgMTAgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mS29wZjsKLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJktvcGY7IgotRXhwZWN0ZWQ6Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIvCdlYIiCityZXNvdXJjZXMvaHRtbDV0ZXN0
LWNvbS5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNv
bS5kYXQgZmFpbGVkLiBJbnB1dDoKLSZub3RpbnZhOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICImbm90aW52YTsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oiJIgotcmVzb3VyY2VzL2VudGl0aWVzMDEu
ZGF0OgotMgotNQotCi1UZXN0IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZh
aWxlZC4gSW5wdXQ6Ci1GT08mZ3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICAiRk9PJmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgIkZPTz5CQVIiCityZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQ6
IFBBU1MKIAotVGVzdCA1IG9mIDY4IGluIHJlc291cmNlcy9lbnRpdGllczAxLmRhdCBmYWlsZWQu
IElucHV0OgotSSdtICZub3RpdDsgSSB0ZWxsIHlvdQotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gJm5vdGl0OyBJIHRlbGwgeW91IgotRXhwZWN0ZWQ6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIkknbSDCrGl0OyBJIHRl
bGwgeW91IgogcmVzb3VyY2VzL2VudGl0aWVzMDIuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9jb21t
ZW50czAxLmRhdDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHRtbDVsaWIvcnVubmVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQK
aW5kZXggOGE4ZjdiZTM4YzY2ZTMxZjdkNWM5MWVhYTg5YjVmODM4ZmEzYTJhOS4uYzlhZTI0NTQ4
MGQ0OWZmNTAyZjcwMzA3MTJjMjRiOGMzMDU1ZTc2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0CkBAIC0xOTEsOTIgKzE5MSwxMCBAQCByZXNvdXJjZXMvZG9jdHlw
ZTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2NyaXB0ZGF0YTAxLmRhdDogUEFTUwogCi1yZXNv
dXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQ6Ci03Ci05Ci0xMAotMTEKLQotVGVzdCA3IG9mIDI0IGlu
IHJlc291cmNlcy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJmxhbmc7JnJhbmc7
Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuOAiOOAiSIK
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLin6ji
n6kiCi0KLVRlc3QgOSBvZiAyNCBpbiByZXNvdXJjZXMvaHRtbDV0ZXN0LWNvbS5kYXQgZmFpbGVk
LiBJbnB1dDoKLSZJbWFnaW5hcnlJOwotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgICImSW1hZ2luYXJ5STsiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAi4oWIIgotCi1UZXN0IDEwIG9mIDI0IGluIHJlc291cmNl
cy9odG1sNXRlc3QtY29tLmRhdCBmYWlsZWQuIElucHV0OgotJktvcGY7Ci1Hb3Q6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIiZLb3BmOyIKLUV4cGVjdGVkOgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICLwnZWCIgorcmVzb3VyY2VzL2h0
bWw1dGVzdC1jb20uZGF0OiBQQVNTCiAKLVRlc3QgMTEgb2YgMjQgaW4gcmVzb3VyY2VzL2h0bWw1
dGVzdC1jb20uZGF0IGZhaWxlZC4gSW5wdXQ6Ci0mbm90aW52YTsKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiJm5vdGludmE7IgotRXhwZWN0ZWQ6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgIuKIiSIKLXJlc291cmNlcy9lbnRp
dGllczAxLmRhdDoKLTIKLTUKK3Jlc291cmNlcy9lbnRpdGllczAxLmRhdDogUEFTUwogCi1UZXN0
IDIgb2YgNjggaW4gcmVzb3VyY2VzL2VudGl0aWVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci1GT08m
Z3RCQVIKLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiRk9P
Jmd0QkFSIgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgIkZPTz5CQVIiCi0KLVRlc3QgNSBvZiA2OCBpbiByZXNvdXJjZXMvZW50aXRpZXMwMS5kYXQg
ZmFpbGVkLiBJbnB1dDoKLUknbSAmbm90aXQ7IEkgdGVsbCB5b3UKLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICAiSSdtICZub3RpdDsgSSB0ZWxsIHlvdSIKLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgICJJJ20gwqxp
dDsgSSB0ZWxsIHlvdSIKIHJlc291cmNlcy9lbnRpdGllczAyLmRhdDogUEFTUwogCiByZXNvdXJj
ZXMvY29tbWVudHMwMS5kYXQ6IFBBU1MKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFjNjRmNjZmYzVlZjMzZDU3YzQyMmJm
MjZkMWM0N2I3MTZjMmQxNjguLjA0MTM0ZDI1Mzc4ODk0ZTdjNmRjYjMyYTljNzAxZDJhMTIzZGQ3
OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtOTczLDYgKzk3Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL0hUTUxEb2N1bWVudC5jcHAKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTEVsZW1lbnRTdGFjay5jcHAKKyAgICBodG1sL0hUTUxFbnRpdHlTZWFyY2guY3BwCiAgICAg
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIwNzYwOGU4ZWVmZTBm
NjNjYjgxZGQ5NWQwYjg5OWVlOGJjYzUwODcuLjI2YjgzYjk2M2FmNDFjZGUyMmVjMWI0NzZjMTIy
NWE5OTdhNjg0NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDgtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0OQorCisgICAgICAgIEltcGxlbWVu
dGluZyB0aGUgSFRNTDUgZW50aXR5IHBhcnNpbmcgYWxnb3JpdGhtIHJlcXVpcmUgcmVmYWN0b3Jp
bmcgaG93CisgICAgICAgIHdlIHNlYXJjaCBmb3IgZW50aXR5IG5hbWVzLiAgSW5zdGVhZCBvZiB1
c2luZyBhIHBlcmZlY3QgaGFzaCwgd2Ugbm93CisgICAgICAgIHVzZSBhIHNvcnRlZCBsaXN0LiAg
QXMgd2UgYWR2YW5jZSB0aHJvdWdoIHRoZSBpbnB1dCwgd2Ugd2FsayBkb3duIGEKKyAgICAgICAg
YmluYXJ5IHNlYXJjaCBvZiB0aGUgdGFibGUgbG9va2luZyBmb3IgYW4gZW50aXR5LgorCisgICAg
ICAgIFVzaW5nIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgbGV0cyB1cyBrZWVwIHRyYWNrIG9mIHdoZXRo
ZXIgdGhlIGN1cnJlbnQKKyAgICAgICAgc3RyaW5nIGlzIGEgcHJlZml4IG9mIGFuIGV4aXN0aW5n
IGVudGl0eSwgd2hpY2ggd2UgbmVlZCBmb3IgdGhlCisgICAgICAgIGFsZ29yaXRobS4gIEluIGEg
ZnV0dXJlIHBhdGNoLCBJIHBsYW4gdG8gYWRkIHNvbWUgaW5kaWNlcyB0byB0aGUKKyAgICAgICAg
dGFibGUsIHdoaWNoIHNob3VsZCBsZXQgdXMgbmFycm93IGRvd24gdGhlIHJhbmdlIG9mIGludGVy
ZXN0aW5nIGVudHJpZXMKKyAgICAgICAgbW9yZSBxdWlja2x5LgorCisgICAgICAgIFRoZSBvbmUg
bmFzdHkgcGllY2Ugb2YgdGhlIGFsZ29yaXRobSBpcyBpZiB3ZSB3YWxrIHRvbyBmYXIgZG93biB0
aGUKKyAgICAgICAgaW5wdXQgYW5kIHdlIG5lZWQgdG8gYmFjayB1cCB0byBhIHByZXZpb3VzIG1h
dGNoLiAgSW4gdGhpcyBwYXRjaCwgd2UKKyAgICAgICAgYWNjb21wbGlzaCB0aGlzIGJ5IHJld2lu
ZGluZyB0aGUgaW5wdXQgYW5kIGNvbnN1bWluZyBhIGtub3duIG51bWJlciBvZgorICAgICAgICBj
aGFyYWN0ZXJzIHRvIHJlc3luYyB0aGUgc291cmNlLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lSFRNTEVudGl0eSk6CisgICAgICAgICogaHRt
bC9IVE1MRW50aXR5U2VhcmNoLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVNlYXJjaDo6SFRNTEVudGl0eVNlYXJjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpjb21wYXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RW50aXR5U2VhcmNoOjpmaW5kRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmFkdmFuY2UpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVNlYXJjaC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmlzRW50aXR5UHJlZml4KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFyY2g6OmN1cnJlbnRWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRW50aXR5U2VhcmNoOjpsYXN0TWF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVudGl0eVNlYXJjaDo6KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbnRpdHlTZWFy
Y2g6OmZhaWwpOgorICAgICAgICAqIGh0bWwvSFRNTEVudGl0eVRhYmxlLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVudGl0eVRhYmxlRW50cnk6Omxhc3RDaGFyYWN0ZXIpOgorCiAy
MDEwLTA4LTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzdjMmYxMGQzM2Y4
ZGJkOTIzOGRiYjRlMjQ1ZmVlYzM5YjZjOWVkZi4uYmRhNGE3ZDBkYmE2NDQyMjdjMTA4MjE3NjVm
YTRmZDVjNjM2Y2UzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA1LDcgKzUwNSw3IEBAIGFsbCA6
IFwKICAgICBDb2xvckRhdGEuY3BwIFwKICAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAogICAgIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgXAotICAgIEhUTUxFbnRpdHlOYW1lcy5jcHAgXAorICAgIEhU
TUxFbnRpdHlUYWJsZS5jcHAgXAogICAgIEhUTUxOYW1lcy5jcHAgXAogICAgIFdNTEVsZW1lbnRG
YWN0b3J5LmNwcCBcCiAgICAgV01MTmFtZXMuY3BwIFwKQEAgLTYwMCw4ICs2MDAsOCBAQCBEb2NU
eXBlU3RyaW5ncy5jcHAgOiBodG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmICQoV2ViQ29yZSkvbWFr
ZS1oYXNoLXRvb2xzLnBsCiAKICMgSFRNTCBlbnRpdHkgbmFtZXMKIAotSFRNTEVudGl0eU5hbWVz
LmNwcCA6IGh0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRv
b2xzLnBsCi0JcGVybCAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAuICQoV2ViQ29yZSkv
aHRtbC9IVE1MRW50aXR5TmFtZXMuZ3BlcmYKK0hUTUxFbnRpdHlUYWJsZS5jcHAgOiBodG1sL0hU
TUxFbnRpdHlOYW1lcy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVh
dGUtaHRtbC1lbnRpdHktdGFibGUKKwlweXRob24gJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9T
Y3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSAtbyBIVE1MRW50aXR5VGFibGUuY3BwICQo
V2ViQ29yZSkvaHRtbC9IVE1MRW50aXR5TmFtZXMuanNvbgogCiAjIC0tLS0tLS0tCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IGJjYTJhYWUzMGZiOTA5NWY2OWYwZmVlMTg5NmI5ZWNiZjdhNDc5OTUuLjFhNzg4OGU3YjFm
MGQ3YjRkMTUxODNiOTI4NjJiOTlhNzJjODRkY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOTIsNyArOTIsNyBAQCB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFs
dWVLZXl3b3Jkcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9y
eS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVsZW1lbnRGYWN0b3J5LmggXAot
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eU5hbWVzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9IVE1MRW50aXR5VGFibGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0hUTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3Bw
IFwKQEAgLTE0MjcsNiArMTQyNyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCBc
CiAJV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50U3RhY2suaCBcCisJV2ViQ29yZS9odG1sL0hUTUxF
bnRpdHlTZWFyY2guY3BwIFwKKwlXZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oIFwKIAlX
ZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmggXAogCVdlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCkBA
IC00MzkzLDggKzQzOTUsOCBAQCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RvY1R5cGVTdHJpbmdz
LmNwcCA6ICQoV2ViQ29yZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCSQoUEVSTCkgJChX
ZWJDb3JlKS9tYWtlLWhhc2gtdG9vbHMucGwgJChHRU5TT1VSQ0VTX1dFQkNPUkUpICQoV2ViQ29y
ZSkvaHRtbC9Eb2NUeXBlU3RyaW5ncy5ncGVyZgogCiAjIEhUTUwgZW50aXR5IG5hbWVzCi1EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlOYW1lcy5jcHAgOiAkKFdlYkNvcmUpL2h0bWwv
SFRNTEVudGl0eU5hbWVzLmdwZXJmICQoV2ViQ29yZSkvbWFrZS1oYXNoLXRvb2xzLnBsCi0JJChQ
RVJMKSAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbCAkKEdFTlNPVVJDRVNfV0VCQ09SRSkg
JChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9IVE1MRW50aXR5VGFibGUuY3BwIDogJChXZWJDb3JlKS9odG1sL0hUTUxFbnRpdHlOYW1l
cy5qc29uICQoV2ViQ29yZSkvLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRp
dHktdGFibGUKKwkkKFBZVEhPTikgJChXZWJDb3JlKS8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2Ny
ZWF0ZS1odG1sLWVudGl0eS10YWJsZSAtbyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvSFRNTEVudGl0
eVRhYmxlLmNwcCAkKFdlYkNvcmUpL2h0bWwvSFRNTEVudGl0eU5hbWVzLmpzb24KIAogIyBjb2xv
ciBuYW1lcwogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Db2xvckRhdGEuY3BwOiAkKFdlYkNvcmUp
L3BsYXRmb3JtL0NvbG9yRGF0YS5ncGVyZiAkKFdlYkNvcmUpL21ha2UtaGFzaC10b29scy5wbApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1dlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggYTI4ZWU1ZDA2MTA1OWFiZmE0ZWY5MTU4MmYzZjU3
OWNhODBkMjk1NC4uMzBiOTYzMzgwMzg1NGUxMTVmZTU2MzRkMjFlMTA3Y2Y2OGZiZDQ1YiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0yNzYsOSArMjc2LDExIEBACiAKICAgICAgICAgIyBn
cGVyZiBydWxlCiAgICAgICAgICcuLi9odG1sL0RvY1R5cGVTdHJpbmdzLmdwZXJmJywKLSAgICAg
ICAgJy4uL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmJywKICAgICAgICAgJy4uL3BsYXRmb3Jt
L0NvbG9yRGF0YS5ncGVyZicsCiAKKyAgICAgICAgIyBqc29uIHJ1bGUKKyAgICAgICAgJy4uL2h0
bWwvSFRNTEVudGl0eU5hbWVzLmpzb24nLAorCiAgICAgICAgICMgaWRsIHJ1bGVzCiAgICAgICAg
ICc8QChiaW5kaW5nc19pZGxfZmlsZXMpJywKICAgICAgIF0sCkBAIC01OTgsNyArNjAwLDcgQEAK
ICAgICAgICAgICAnb3V0cHV0cyc6IFsKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElB
VEVfRElSKS93ZWJraXQvPChSVUxFX0lOUFVUX1JPT1QpLmNwcCcsCiAgICAgICAgICAgXSwKLSAg
ICAgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAgICdpbnB1dHMnOiBbCiAgICAgICAg
ICAgICAnLi4vbWFrZS1oYXNoLXRvb2xzLnBsJywKICAgICAgICAgICBdLAogICAgICAgICAgICdh
Y3Rpb24nOiBbCkBAIC02MDksNiArNjExLDI2IEBACiAgICAgICAgICAgXSwKICAgICAgICAgICAn
cHJvY2Vzc19vdXRwdXRzX2FzX3NvdXJjZXMnOiAwLAogICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgJ3J1bGVfbmFtZSc6ICdqc29uJywKKyAgICAgICAgICAnZXh0ZW5zaW9uJzogJ2pz
b24nLAorICAgICAgICAgICMKKyAgICAgICAgICAjIGpzb24gb3V0cHV0cyBhcmUgZ2VuZXJhdGVk
IGJ5IFdlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCisgICAgICAg
ICAgIworICAgICAgICAgICdvdXRwdXRzJzogWworICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVS
TUVESUFURV9ESVIpL3dlYmtpdC9IVE1MRW50aXR5VGFibGUuY3BwJywKKyAgICAgICAgICBdLAor
ICAgICAgICAgICdpbnB1dHMnOiBbCisgICAgICAgICAgICAnLi4vLi4vV2ViS2l0VG9vbHMvU2Ny
aXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUnLAorICAgICAgICAgIF0sCisgICAgICAgICAg
J2FjdGlvbic6IFsKKyAgICAgICAgICAgICdweXRob24nLAorICAgICAgICAgICAgJy4uLy4uL1dl
YktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlJywKKyAgICAgICAgICAg
ICctbycsCisgICAgICAgICAgICAnPChTSEFSRURfSU5URVJNRURJQVRFX0RJUikvd2Via2l0L0hU
TUxFbnRpdHlUYWJsZS5jcHAnLAorICAgICAgICAgICAgJzwoUlVMRV9JTlBVVF9QQVRIKScsCisg
ICAgICAgICAgXSwKKyAgICAgICAgfSwKICAgICAgICAgIyBSdWxlIHRvIGJ1aWxkIGdlbmVyYXRl
ZCBKYXZhU2NyaXB0IChWOCkgYmluZGluZ3MgZnJvbSAuaWRsIHNvdXJjZS4KICAgICAgICAgewog
ICAgICAgICAgICdydWxlX25hbWUnOiAnYmluZGluZycsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc0ZTgxMjY5YmI1N2I3N2Q0
ZTMxZGVlNDRmMWUyNjU3ODk0MTQxOGQuLjAxOWNiMmMwMjIzMzQ4MDI4MmIyZDAwZGVhNWFmMGVm
ZjhhYTM2YTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xNTg4LDYgKzE1ODgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvSFRN
TEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MRWxlbWVudFN0YWNrLmgnLAorICAgICAgICAgICAgJ2h0bWwv
SFRNTEVudGl0eVNlYXJjaC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTEVudGl0eVNlYXJj
aC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxFbWJlZEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2Vi
Q29yZS9XZWJDb3JlLnByaQppbmRleCBiMGVmZmVlN2ViNmVlMmIxZWI3ZWI0ZmI1ZGU2Njk5ZmU4
YTg0ZWM4Li43MTgxOGMyMjMwMjI3ZTEwNWJjYmM2MDI5NDI0Y2I4NjQ1ZWZlMWMzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTI5
LDcgKzI5LDcgQEAgWE1MX05BTUVTID0gJCRQV0QveG1sL3htbGF0dHJzLmluCiAKIFhNTE5TX05B
TUVTID0gJCRQV0QveG1sL3htbG5zYXR0cnMuaW4KIAotRU5USVRJRVNfR1BFUkYgPSAkJFBXRC9o
dG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgorSFRNTF9FTlRJVElFUyA9ICQkUFdEL2h0bWwvSFRN
TEVudGl0eU5hbWVzLmpzb24KIAogQ09MT1JEQVRBX0dQRVJGID0gJCRQV0QvcGxhdGZvcm0vQ29s
b3JEYXRhLmdwZXJmCiAKQEAgLTU5MCwxMiArNTkwLDEyIEBAIHhtbG5hbWVzLmNvbW1hbmRzID0g
cGVybCAtSSQkUFdEL2JpbmRpbmdzL3NjcmlwdHMgJCR4bWxuYW1lcy53a1NjcmlwdCAtLWF0dHJz
ICQkCiBhZGRFeHRyYUNvbXBpbGVyKHhtbG5hbWVzKQogCiAjIEdFTkVSQVRPUiA4LUE6Ci1lbnRp
dGllcy5vdXRwdXQgPSAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9L0hUTUxFbnRpdHlOYW1l
cy5jcHAKLWVudGl0aWVzLmlucHV0ID0gRU5USVRJRVNfR1BFUkYKLWVudGl0aWVzLndrU2NyaXB0
ID0gJCRQV0QvbWFrZS1oYXNoLXRvb2xzLnBsCi1lbnRpdGllcy5jb21tYW5kcyA9IHBlcmwgJCRl
bnRpdGllcy53a1NjcmlwdCAkJHtXQ19HRU5FUkFURURfU09VUkNFU19ESVJ9ICQkRU5USVRJRVNf
R1BFUkYKK2VudGl0aWVzLm91dHB1dCA9ICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRN
TEVudGl0eVRhYmxlLmNwcAorZW50aXRpZXMuaW5wdXQgPSBIVE1MX0VOVElUSUVTCitlbnRpdGll
cy53a1NjcmlwdCA9ICQkUFdELy4uL1dlYktpdFRvb2xzL1NjcmlwdHMvY3JlYXRlLWh0bWwtZW50
aXR5LXRhYmxlCitlbnRpdGllcy5jb21tYW5kcyA9IHB5dGhvbiAkJGVudGl0aWVzLndrU2NyaXB0
IC1vICQke1dDX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0vSFRNTEVudGl0eVRhYmxlLmNwcCAkJEhU
TUxfRU5USVRJRVMKIGVudGl0aWVzLmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0KLWVudGl0aWVz
LmRlcGVuZHMgPSAkJFBXRC9tYWtlLWhhc2gtdG9vbHMucGwKK2VudGl0aWVzLmRlcGVuZHMgPSAk
JFBXRC8uLi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQogYWRk
RXh0cmFDb21waWxlcihlbnRpdGllcykKIAogIyBHRU5FUkFUT1IgOC1COgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNGNhOWZkMGM4
ZTdhOTFkMDc3OGY2NTRhMDcwYWEyYWJiYTAxYmY5MS4uNjk0YjY1MzExMjExMzdlYjM0YTcxZGI3
MmMwY2Q2NzYzMGU1YzBhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02NzcsNiArNjc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
aHRtbC9IVE1MRG9jdW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxFbGVtZW50LmNwcCBcCiAgICAg
aHRtbC9IVE1MRWxlbWVudFN0YWNrLmNwcCBcCisgICAgaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNw
cCBcCiAgICAgaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDVmZjQyNTA3YjYyZGRjNTYwYTg5NGE5ZmUy
YjIyOGNmNzFjNDNiYmMuLjI4NWMwYTNiZDVkNjA0MjAxYWRjZjIyNTA5ZjlmNWVkN2JkMzhlMWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzc2MzcsNiArMzc2Mzcs
MTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5caHRtbFxIVE1MRW50aXR5U2VhcmNoLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTEVudGl0eVNlYXJjaC5oIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxI
VE1MRW1iZWRFbGVtZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5ZWQxYjQzMTM5
NmJlMGMxZmQ4N2UxMDdkNjUxYzE3MmJmMzAyNDMuLjhmZjRhM2ZiMTNjNWVjZTJmMDFkMGRjODZl
MzBkODYzNjM4Yjg3NWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zMTgxLDYgKzMxODEsOSBAQAogCQlBOEE1NjRBNjExREMwRTU5MDAzQUMyRjAgLyog
SFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE1NjRBNDExREMwRTU5MDAzQUMyRjAgLyogSFRNTEZvcm1h
dHRpbmdFbGVtZW50TGlzdC5jcHAgKi87IH07CiAJCUE4QTkwOUFDMENCQ0Q2QjUwMDI5QjgwNyAv
KiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE5MDlBQTBDQkNENkI1MDAyOUI4MDcgLyogUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oICovOyB9OwogCQlBOEE5MDlBRDBDQkNENkI1
MDAyOUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE5MDlBQjBDQkNENkI1MDAy
OUI4MDcgLyogUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAgKi87IH07CisJCUE4
QkMwNDRFMTIxNEVCMkEwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEM0RkRGMTIxMTI2NjIwMEMz
RDM5MyAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCAqLzsgfTsKKwkJQThCQzA0NEYxMjE0RUIyQjAw
QjVGMTIyIC8qIEhUTUxFbnRpdHlTZWFyY2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEM0RkUwMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5
U2VhcmNoLmggKi87IH07CisJCUE4QkMwNDkyMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThCQzA0OTExMjE0RjY5NjAwQjVGMTIyIC8qIEhUTUxFbnRpdHlUYWJsZS5jcHAgKi87IH07CiAJ
CUE4QkNGRDA1MTIwQTA0NjEwMEI1RjEyMiAvKiBTVkdQYXRoU2VnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QkNGRDA0MTIwQTA0NjEwMEI1RjEy
MiAvKiBTVkdQYXRoU2VnLmNwcCAqLzsgfTsKIAkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8q
IERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QzIyODBEMTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAg
Ki87IH07CiAJCUE4QzIyOEExMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMyMjg5RjExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oICov
OyB9OwpAQCAtODQ3Niw2ICs4NDc5LDEwIEBACiAJCTk3MDU5OTc0MTA3RDk3NTIwMEE1MEE3QyAv
KiBQb2xpY3lDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xp
Y3lDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NTEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQb2xpY3lDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzBDNEZERjEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNl
YXJjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRW50aXR5
U2VhcmNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTcwQzRGRTAxMjExMjY2
MjAwQzNEMzkzIC8qIEhUTUxFbnRpdHlTZWFyY2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTEVudGl0eVNlYXJjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NzBDNEZFMTEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVRhYmxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRpdHlUYWJsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3MEM0RkUyMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1M
RW50aXR5VGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVudGl0
eVRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTlBRUZGMTFEMDlGMkMw
MEQ0NTgzMSAvKiBIVE1MSW5wdXRTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSFRNTElucHV0U3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
Mzg4OTlFMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFdyaXRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk3Mzg4OTlGMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVudFdy
aXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFdyaXRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODg2MSw2ICs4ODY4LDcgQEAKIAkJQThB
NTY0QTQxMURDMEU1OTAwM0FDMkYwIC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEZvcm1hdHRpbmdFbGVtZW50
TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTkwOUFBMENCQ0Q2QjUw
MDI5QjgwNyAvKiBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBOTA5QUIwQ0JDRDZCNTAwMjlCODA3IC8q
IFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAvKiBI
VE1MRW50aXR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SFRNTEVudGl0eVRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThCQ0ZE
MDQxMjBBMDQ2MTAwQjVGMTIyIC8qIFNWR1BhdGhTZWcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aFNlZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4QzIyODBEMTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudFBhcnNlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzIyODlGMTFENTcyMkUwMEQ1QTdEMyAvKiBE
ZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwOTQxLDcgKzEwOTQ5LDYgQEAKIAkJRTFGRjU3QTUwRjAxMjU2QjAwODkxRUJCIC8q
IFRocmVhZEdsb2JhbERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGhyZWFkR2xvYmFsRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2NUeXBlU3RyaW5ncy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MDZGM0ZCMTE5ODMwN0QwMDlENTlENiAvKiBDb2xvckRhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8q
IEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MRW50aXR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1
RjEwQzBEOUEwNTg3MDAzM0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBFbGVtZW50VGltZUNvbnRyb2wuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDE1RjE2ODBEOUExNjVEMDAzM0NFOTcgLyogRE9NRWxlbWVudFRpbWVDb250
cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUVsZW1lbnRUaW1lQ29u
dHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDE1RjE4MzBEOUExQTgzMDAz
M0NFOTcgLyogRWxlbWVudFRpbWVDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIyODgsNyArMTIyOTUsNyBAQAogCQkJCUU0MDZGM0ZBMTE5ODMwNEQwMDlENTlENiAvKiBE
b2NUeXBlU3RyaW5ncy5jcHAgKi8sCiAJCQkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhU
TUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCiAJCQkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8q
IEhUTUxFbGVtZW50RmFjdG9yeS5oICovLAotCQkJCUU0MDZGNDAyMTE5ODMyOUEwMDlENTlENiAv
KiBIVE1MRW50aXR5TmFtZXMuY3BwICovLAorCQkJCUE4QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAv
KiBIVE1MRW50aXR5VGFibGUuY3BwICovLAogCQkJCUE4RDA2QjM4MEEyNjVEQ0QwMDVFNzIwMyAv
KiBIVE1MTmFtZXMuY3BwICovLAogCQkJCUE4RDA2QjM3MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1M
TmFtZXMuaCAqLywKIAkJCQk5MzhFNjVGNjA5RjA5ODVEMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKQEAgLTEzOTg2LDYgKzEzOTkzLDEwIEBACiAJCQkJODU5
MTI4NzkwQUIyMjJFQzAwMjAyMjY1IC8qIEhUTUxFbWJlZEVsZW1lbnQuaWRsICovLAogCQkJCTk3
NkU4OTVFMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1MRW50aXR5UGFyc2VyLmNwcCAqLywKIAkJCQk5
NzZFODk1RjExQzBDQTNBMDBFQTlDQTkgLyogSFRNTEVudGl0eVBhcnNlci5oICovLAorCQkJCTk3
MEM0RkRGMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCAqLywKKwkJCQk5
NzBDNEZFMDEyMTEyNjYyMDBDM0QzOTMgLyogSFRNTEVudGl0eVNlYXJjaC5oICovLAorCQkJCTk3
MEM0RkUxMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5VGFibGUuY3BwICovLAorCQkJCTk3
MEM0RkUyMTIxMTI2NjIwMEMzRDM5MyAvKiBIVE1MRW50aXR5VGFibGUuaCAqLywKIAkJCQlBODEz
NjlCOTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgKi8sCiAJCQkJ
QTgxMzY5QjgwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxGaWVsZFNldEVsZW1lbnQuaCAqLywKIAkJ
CQkxQUUyQTlGNDBBMUNEQTU3MDBCNDJCMjUgLyogSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwgKi8s
CkBAIC0yMDE1Niw2ICsyMDE2Nyw3IEBACiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8q
IFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUz
MyAvKiBab29tTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVFRDU3RkUxMjE0QTlDMjAwNzY1
NkJCIC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QkMw
NDRGMTIxNEVCMkIwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIyNTgyLDYgKzIyNTk0LDggQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyog
WFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZERjRENkUw
MEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFRUQ1N0ZEMTIx
NEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE4QkMwNDRFMTIxNEVCMkEwMEI1RjEyMiAvKiBIVE1MRW50aXR5U2VhcmNoLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE4QkMwNDkyMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVu
dGl0eU5hbWVzLmdwZXJmIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlOYW1lcy5ncGVyZgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2NWVmZWE1MjQwMWEyMDIzMzdjZjJlYTZiYjg4
MDBiYmNiNzU0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eU5hbWVzLmdwZXJmCisrKyAvZGV2L251bGwKQEAgLTEs
MzAzICswLDAgQEAKLSV7Ci0vKgotICAgICBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAbXBpLWhkLm1wZy5kZSkKLSAgICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA0
LCAyMDA1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgCi0gICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAgCi0gICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAgCi0gICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
IAotICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIAotICAgIEhUTUxFbnRpdHlOYW1lcy5ncGVyZjog
aW5wdXQgZmlsZSB0byBnZW5lcmF0ZSBhIGhhc2ggdGFibGUgZm9yIGVudGl0aWVzCi0gICAgSFRN
TEVudGl0eU5hbWVzLmNwcDogRE8gTk9UIEVESVQhIGdlbmVyYXRlZCBieSBXZWJDb3JlL21ha2Ut
aGFzaC10b29scy5wbAotKi8KLSV9Ci0lc3RydWN0LXR5cGUKLXN0cnVjdCBFbnRpdHkgewotICAg
IGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgaW50IGNvZGU7Ci19OwotJWxhbmd1YWdlPUFOU0ktQwot
JXJlYWRvbmx5LXRhYmxlcwotJWdsb2JhbC10YWJsZQotJWNvbXBhcmUtc3RybmNtcAotJWRlZmlu
ZSBsb29rdXAtZnVuY3Rpb24tbmFtZSBmaW5kRW50aXR5Ci0lZGVmaW5lIGhhc2gtZnVuY3Rpb24t
bmFtZSBlbnRpdHlfaGFzaF9mdW5jdGlvbgotJWluY2x1ZGVzCi0lZW51bQotJSUKLUFFbGlnLCAw
eDAwYzYKLUFNUCwgMzgKLUFhY3V0ZSwgMHgwMGMxCi1BY2lyYywgMHgwMGMyCi1BZ3JhdmUsIDB4
MDBjMAotQWxwaGEsIDB4MDM5MQotQXJpbmcsIDB4MDBjNQotQXRpbGRlLCAweDAwYzMKLUF1bWws
IDB4MDBjNAotQmV0YSwgMHgwMzkyCi1DT1BZLCAweDAwYTkKLUNjZWRpbCwgMHgwMGM3Ci1DaGks
IDB4MDNhNwotRGFnZ2VyLCAweDIwMjEKLURlbHRhLCAweDAzOTQKLUVUSCwgMHgwMGQwCi1FYWN1
dGUsIDB4MDBjOQotRWNpcmMsIDB4MDBjYQotRWdyYXZlLCAweDAwYzgKLUVwc2lsb24sIDB4MDM5
NQotRXRhLCAweDAzOTcKLUV1bWwsIDB4MDBjYgotR1QsIDYyCi1HYW1tYSwgMHgwMzkzCi1JYWN1
dGUsIDB4MDBjZAotSWNpcmMsIDB4MDBjZQotSWdyYXZlLCAweDAwY2MKLUlvdGEsIDB4MDM5OQot
SXVtbCwgMHgwMGNmCi1LYXBwYSwgMHgwMzlhCi1MVCwgNjAKLUxhbWJkYSwgMHgwMzliCi1NdSwg
MHgwMzljCi1OdGlsZGUsIDB4MDBkMQotTnUsIDB4MDM5ZAotT0VsaWcsIDB4MDE1MgotT2FjdXRl
LCAweDAwZDMKLU9jaXJjLCAweDAwZDQKLU9ncmF2ZSwgMHgwMGQyCi1PbWVnYSwgMHgwM2E5Ci1P
bWljcm9uLCAweDAzOWYKLU9zbGFzaCwgMHgwMGQ4Ci1PdGlsZGUsIDB4MDBkNQotT3VtbCwgMHgw
MGQ2Ci1QaGksIDB4MDNhNgotUGksIDB4MDNhMAotUHJpbWUsIDB4MjAzMwotUHNpLCAweDAzYTgK
LVFVT1QsIDM0Ci1SRUcsIDB4MDBhZQotUmhvLCAweDAzYTEKLVNjYXJvbiwgMHgwMTYwCi1TaWdt
YSwgMHgwM2EzCi1USE9STiwgMHgwMGRlCi1UYXUsIDB4MDNhNAotVGhldGEsIDB4MDM5OAotVWFj
dXRlLCAweDAwZGEKLVVjaXJjLCAweDAwZGIKLVVncmF2ZSwgMHgwMGQ5Ci1VcHNpbG9uLCAweDAz
YTUKLVV1bWwsIDB4MDBkYwotWGksIDB4MDM5ZQotWWFjdXRlLCAweDAwZGQKLVl1bWwsIDB4MDE3
OAotWmV0YSwgMHgwMzk2Ci1hYWN1dGUsIDB4MDBlMQotYWNpcmMsIDB4MDBlMgotYWN1dGUsIDB4
MDBiNAotYWVsaWcsIDB4MDBlNgotYWdyYXZlLCAweDAwZTAKLWFsZWZzeW0sIDB4MjEzNQotYWxw
aGEsIDB4MDNiMQotYW1wLCAzOAotYW5kLCAweDIyMjcKLWFuZywgMHgyMjIwCi1hcG9zLCAweDAw
MjcKLWFyaW5nLCAweDAwZTUKLWFzeW1wLCAweDIyNDgKLWF0aWxkZSwgMHgwMGUzCi1hdW1sLCAw
eDAwZTQKLWJkcXVvLCAweDIwMWUKLWJldGEsIDB4MDNiMgotYnJ2YmFyLCAweDAwYTYKLWJ1bGws
IDB4MjAyMgotY2FwLCAweDIyMjkKLWNjZWRpbCwgMHgwMGU3Ci1jZWRpbCwgMHgwMGI4Ci1jZW50
LCAweDAwYTIKLWNoaSwgMHgwM2M3Ci1jaXJjLCAweDAyYzYKLWNsdWJzLCAweDI2NjMKLWNvbmcs
IDB4MjI0NQotY29weSwgMHgwMGE5Ci1jcmFyciwgMHgyMWI1Ci1jdXAsIDB4MjIyYQotY3VycmVu
LCAweDAwYTQKLWRBcnIsIDB4MjFkMwotZGFnZ2VyLCAweDIwMjAKLWRhcnIsIDB4MjE5MwotZGVn
LCAweDAwYjAKLWRlbHRhLCAweDAzYjQKLWRpYW1zLCAweDI2NjYKLWRpdmlkZSwgMHgwMGY3Ci1l
YWN1dGUsIDB4MDBlOQotZWNpcmMsIDB4MDBlYQotZWdyYXZlLCAweDAwZTgKLWVtcHR5LCAweDIy
MDUKLWVtc3AsIDB4MjAwMwotZW5zcCwgMHgyMDAyCi1lcHNpbG9uLCAweDAzYjUKLWVxdWl2LCAw
eDIyNjEKLWV0YSwgMHgwM2I3Ci1ldGgsIDB4MDBmMAotZXVtbCwgMHgwMGViCi1ldXJvLCAweDIw
YWMKLWV4aXN0LCAweDIyMDMKLWZub2YsIDB4MDE5MgotZm9yYWxsLCAweDIyMDAKLWZyYWMxMiwg
MHgwMGJkCi1mcmFjMTQsIDB4MDBiYwotZnJhYzM0LCAweDAwYmUKLWZyYXNsLCAweDIwNDQKLWdh
bW1hLCAweDAzYjMKLWdlLCAweDIyNjUKLWd0LCA2MgotaEFyciwgMHgyMWQ0Ci1oYXJyLCAweDIx
OTQKLWhlYXJ0cywgMHgyNjY1Ci1oZWxsaXAsIDB4MjAyNgotaWFjdXRlLCAweDAwZWQKLWljaXJj
LCAweDAwZWUKLWlleGNsLCAweDAwYTEKLWlncmF2ZSwgMHgwMGVjCi1pbWFnZSwgMHgyMTExCi1p
bmZpbiwgMHgyMjFlCi1pbnQsIDB4MjIyYgotaW90YSwgMHgwM2I5Ci1pcXVlc3QsIDB4MDBiZgot
aXNpbiwgMHgyMjA4Ci1pdW1sLCAweDAwZWYKLWthcHBhLCAweDAzYmEKLWxBcnIsIDB4MjFkMAot
bGFtYmRhLCAweDAzYmIKLWxhbmcsIDB4MzAwOAotbGFxdW8sIDB4MDBhYgotbGFyciwgMHgyMTkw
Ci1sY2VpbCwgMHgyMzA4Ci1sZHF1bywgMHgyMDFjCi1sZSwgMHgyMjY0Ci1sZmxvb3IsIDB4MjMw
YQotbG93YXN0LCAweDIyMTcKLWxveiwgMHgyNWNhCi1scm0sIDB4MjAwZQotbHNhcXVvLCAweDIw
MzkKLWxzcXVvLCAweDIwMTgKLWx0LCA2MAotbWFjciwgMHgwMGFmCi1tZGFzaCwgMHgyMDE0Ci1t
aWNybywgMHgwMGI1Ci1taWRkb3QsIDB4MDBiNwotbWludXMsIDB4MjIxMgotbXUsIDB4MDNiYwot
bmFibGEsIDB4MjIwNwotbmJzcCwgMHgwMGEwCi1uZGFzaCwgMHgyMDEzCi1uZSwgMHgyMjYwCi1u
aSwgMHgyMjBiCi1ub3QsIDB4MDBhYwotbm90aW4sIDB4MjIwOQotbnN1YiwgMHgyMjg0Ci1uc3Vw
LCAweDIyODUKLW50aWxkZSwgMHgwMGYxCi1udSwgMHgwM2JkCi1vYWN1dGUsIDB4MDBmMwotb2Np
cmMsIDB4MDBmNAotb2VsaWcsIDB4MDE1Mwotb2dyYXZlLCAweDAwZjIKLW9saW5lLCAweDIwM2UK
LW9tZWdhLCAweDAzYzkKLW9taWNyb24sIDB4MDNiZgotb3BsdXMsIDB4MjI5NQotb3IsIDB4MjIy
OAotb3JkZiwgMHgwMGFhCi1vcmRtLCAweDAwYmEKLW9zbGFzaCwgMHgwMGY4Ci1vdGlsZGUsIDB4
MDBmNQotb3RpbWVzLCAweDIyOTcKLW91bWwsIDB4MDBmNgotcGFyYSwgMHgwMGI2Ci1wYXJ0LCAw
eDIyMDIKLXBlcmNudCwgMHgwMDI1Ci1wZXJtaWwsIDB4MjAzMAotcGVycCwgMHgyMmE1Ci1waGks
IDB4MDNjNgotcGksIDB4MDNjMAotcGl2LCAweDAzZDYKLXBsdXNtbiwgMHgwMGIxCi1wb3VuZCwg
MHgwMGEzCi1wcmltZSwgMHgyMDMyCi1wcm9kLCAweDIyMGYKLXByb3AsIDB4MjIxZAotcHNpLCAw
eDAzYzgKLXF1b3QsIDM0Ci1yQXJyLCAweDIxZDIKLXJhZGljLCAweDIyMWEKLXJhbmcsIDB4MzAw
OQotcmFxdW8sIDB4MDBiYgotcmFyciwgMHgyMTkyCi1yY2VpbCwgMHgyMzA5Ci1yZHF1bywgMHgy
MDFkCi1yZWFsLCAweDIxMWMKLXJlZywgMHgwMGFlCi1yZmxvb3IsIDB4MjMwYgotcmhvLCAweDAz
YzEKLXJsbSwgMHgyMDBmCi1yc2FxdW8sIDB4MjAzYQotcnNxdW8sIDB4MjAxOQotc2JxdW8sIDB4
MjAxYQotc2Nhcm9uLCAweDAxNjEKLXNkb3QsIDB4MjJjNQotc2VjdCwgMHgwMGE3Ci1zaHksIDB4
MDBhZAotc2lnbWEsIDB4MDNjMwotc2lnbWFmLCAweDAzYzIKLXNpbSwgMHgyMjNjCi1zcGFkZXMs
IDB4MjY2MAotc3ViLCAweDIyODIKLXN1YmUsIDB4MjI4Ngotc3VtLCAweDIyMTEKLXN1cCwgMHgy
MjgzCi1zdXAxLCAweDAwYjkKLXN1cDIsIDB4MDBiMgotc3VwMywgMHgwMGIzCi1zdXBlLCAweDIy
ODcKLXN1cGwsIDB4MDBiOQotc3psaWcsIDB4MDBkZgotdGF1LCAweDAzYzQKLXRoZXJlNCwgMHgy
MjM0Ci10aGV0YSwgMHgwM2I4Ci10aGV0YXN5bSwgMHgwM2QxCi10aGluc3AsIDB4MjAwOQotdGhv
cm4sIDB4MDBmZQotdGlsZGUsIDB4MDJkYwotdGltZXMsIDB4MDBkNwotdHJhZGUsIDB4MjEyMgot
dUFyciwgMHgyMWQxCi11YWN1dGUsIDB4MDBmYQotdWFyciwgMHgyMTkxCi11Y2lyYywgMHgwMGZi
Ci11Z3JhdmUsIDB4MDBmOQotdW1sLCAweDAwYTgKLXVwc2loLCAweDAzZDIKLXVwc2lsb24sIDB4
MDNjNQotdXVtbCwgMHgwMGZjCi13ZWllcnAsIDB4MjExOAoteGksIDB4MDNiZQoteWFjdXRlLCAw
eDAwZmQKLXllbiwgMHgwMGE1Ci15dW1sLCAweDAwZmYKLXpldGEsIDB4MDNiNgotendqLCAweDIw
MGQKLXp3bmosIDB4MjAwYwotJSUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5
UGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5UGFyc2VyLmNwcAppbmRleCA2YmVj
ODE5MGRjODg2Y2MzZTY5ZGY3MWVkMDQwNWZhMTA2YzBiZTAzLi5hZjNiOWYzZjYzY2Q5Y2Y4Zjlh
MDY0MzlkNGMyYTc3MmRhZjcxY2ExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0
eVBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlQYXJzZXIuY3BwCkBAIC0y
OCwxMCArMjgsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MRW50aXR5
UGFyc2VyLmgiCiAKKyNpbmNsdWRlICJIVE1MRW50aXR5U2VhcmNoLmgiCisjaW5jbHVkZSAiSFRN
TEVudGl0eVRhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaW5jbHVkZSAiSFRN
TEVudGl0eU5hbWVzLmNwcCIKLQogdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTAyLDcgKzEwMiw2IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNl
Z21lbnRlZFN0cmluZyYgc291cmNlLCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAg
RW50aXR5U3RhdGUgZW50aXR5U3RhdGUgPSBJbml0aWFsOwogICAgIHVuc2lnbmVkIHJlc3VsdCA9
IDA7CiAgICAgVmVjdG9yPFVDaGFyLCAxMD4gY29uc3VtZWRDaGFyYWN0ZXJzOwotICAgIFZlY3Rv
cjxjaGFyLCAxMD4gZW50aXR5TmFtZTsKIAogICAgIHdoaWxlICghc291cmNlLmlzRW1wdHkoKSkg
ewogICAgICAgICBVQ2hhciBjYyA9ICpzb3VyY2U7CkBAIC0xNjYsNyArMTY1LDcgQEAgdW5zaWdu
ZWQgY29uc3VtZUhUTUxFbnRpdHkoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJvb2wmIG5vdEVu
b3VnaENoYXJhY3RlcnMsIFUKICAgICAgICAgICAgIGVsc2UgaWYgKGNjID09ICc7JykgewogICAg
ICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gbGVnYWxFbnRpdHlGb3IocmVzdWx0KTsKLSAgICAgICAgICAgIH0gZWxzZSAK
KyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiBsZWdhbEVudGl0eUZv
cihyZXN1bHQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4MSw0OCArMTgw
LDQ4IEBAIHVuc2lnbmVkIGNvbnN1bWVIVE1MRW50aXR5KFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBib29sJiBub3RFbm91Z2hDaGFyYWN0ZXJzLCBVCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIE5hbWVkOiB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBj
b2RlIGlzIHdyb25nLiBXZSBuZWVkIHRvIGZpbmQgdGhlIGxvbmdlc3QgbWF0Y2hpbmcgZW50aXR5
LgotICAgICAgICAgICAgLy8gICAgICAgIFRoZSBleGFtcGxlcyBmcm9tIHRoZSBzcGVjIGFyZToK
LSAgICAgICAgICAgIC8vICAgICAgICAgICAgSSdtICZub3RpdDsgSSB0ZWxsIHlvdQotICAgICAg
ICAgICAgLy8gICAgICAgICAgICBJJ20gJm5vdGluOyBJIHRlbGwgeW91Ci0gICAgICAgICAgICAv
LyAgICAgICAgSW4gdGhlIGZpcnN0IGNhc2UsICImbm90IiBpcyB0aGUgZW50aXR5LiAgSW4gdGhl
IHNlY29uZAotICAgICAgICAgICAgLy8gICAgICAgIGNhc2UsICImbm90aW47IiBpcyB0aGUgZW50
aXR5LgotICAgICAgICAgICAgLy8gRklYTUU6IE91ciBsaXN0IG9mIEhUTUwgZW50aXRpZXMgaXMg
aW5jb21wbGV0ZS4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgbnVtYmVyIDggYmVsb3cgaXMg
Ym9ndXMuCi0gICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkgJiYgZW50aXR5TmFt
ZS5zaXplKCkgPD0gOCkgeworICAgICAgICAgICAgSFRNTEVudGl0eVNlYXJjaCBlbnRpdHlTZWFy
Y2g7CisgICAgICAgICAgICB3aGlsZSAoIXNvdXJjZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBjYyA9ICpzb3VyY2U7Ci0gICAgICAgICAgICAgICAgaWYgKGNjID09ICc7JykgewotICAg
ICAgICAgICAgICAgICAgICBjb25zdCBFbnRpdHkqIGVudGl0eSA9IGZpbmRFbnRpdHkoZW50aXR5
TmFtZS5kYXRhKCksIGVudGl0eU5hbWUuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGVudGl0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NF
UlQoJzsnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHktPmNvZGU7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghaXNBbHBoYU51bWVyaWMoY2MpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEVudGl0eSogZW50aXR5ID0gZmluZEVudGl0eShlbnRp
dHlOYW1lLmRhdGEoKSwgZW50aXR5TmFtZS5zaXplKCkpOwotICAgICAgICAgICAgICAgICAgICBp
ZiAoZW50aXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBIVE1MNSB0ZWxscyB1cyB0
byBpZ25vcmUgdGhpcyBlbnRpdHksIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAvLyBpZiB0aGUgbG9va2hlYWQgY2hhcmFjdGVyIGlzICc9Jy4KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciAmJiBjYyA9
PSAnPScpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTb21lIGVudGl0aWVzIHJlcXVpcmUgYSB0ZXJtaW5hdGluZyBzZW1pY29s
b24sIHdoZXJlYXMgb3RoZXIKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVudGl0aWVzIGRv
IG5vdC4gIFRoZSBIVE1MNSBzcGVjIGhhcyBhIGdpYW50IGxpc3Q6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAvLwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvbmFtZWQtY2hhcmFjdGVy
LXJlZmVyZW5jZXMuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcwotICAgICAgICAgICAg
ICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHRoZSBs
aXN0IHNlZW1zIHRvIGJvaWwgZG93biB0byB0aGlzIGJyYW5jaDoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChlbnRpdHktPmNvZGUgPiAyNTUpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5LT5jb2RlOwot
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZW50aXR5U2VhcmNoLmFkdmFu
Y2UoY2MpOworICAgICAgICAgICAgICAgIGlmICghZW50aXR5U2VhcmNoLmlzRW50aXR5UHJlZml4
KCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBlbnRpdHlOYW1lLmFwcGVuZChjYyk7CiAgICAgICAgICAgICAgICAgY29uc3Vt
ZWRDaGFyYWN0ZXJzLmFwcGVuZChjYyk7CiAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VB
bmRBU1NFUlQoY2MpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbm90RW5vdWdoQ2hhcmFj
dGVycyA9IHNvdXJjZS5pc0VtcHR5KCk7CisgICAgICAgICAgICBpZiAobm90RW5vdWdoQ2hhcmFj
dGVycykgeworICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGFuIGVudGl0eSBiZWNhdXNlIHRo
ZXJlIG1pZ2h0IGJlIGEgbG9uZ2VyIGVudGl0eQorICAgICAgICAgICAgICAgIC8vIHRoYXQgd2Ug
Y291bGQgbWF0Y2ggaWYgd2UgaGFkIG1vcmUgZGF0YS4KKyAgICAgICAgICAgICAgICB1bmNvbnN1
bWVDaGFyYWN0ZXJzKHNvdXJjZSwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZW50aXR5U2VhcmNo
Lmxhc3RNYXRjaCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFlbnRpdHlTZWFyY2guY3Vy
cmVudFZhbHVlKCkpOworICAgICAgICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNl
LCBjb25zdW1lZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGVudGl0eVNlYXJjaC5sYXN0TWF0Y2goKS0+bGVuZ3Ro
ICE9IGVudGl0eVNlYXJjaC5jdXJyZW50TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBX
ZSd2ZSBjb25zdW1lZCB0b28gbWFueSBjaGFyYWN0ZXJzLiAgV2UgbmVlZCB0byB3YWxrIHRoZQor
ICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBiYWNrIHRvIHRoZSBwb2ludCBhdCB3aGljaCB3ZSBo
YWQgY29uc3VtZWQgYW4KKyAgICAgICAgICAgICAgICAvLyBhY3R1YWwgZW50aXR5LgorICAgICAg
ICAgICAgICAgIHVuY29uc3VtZUNoYXJhY3RlcnMoc291cmNlLCBjb25zdW1lZENoYXJhY3RlcnMp
OworICAgICAgICAgICAgICAgIGNvbnN1bWVkQ2hhcmFjdGVycy5jbGVhcigpOworICAgICAgICAg
ICAgICAgIGNvbnN0IGludCBsZW5ndGggPSBlbnRpdHlTZWFyY2gubGFzdE1hdGNoKCktPmxlbmd0
aDsKKyAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogcmVmZXJlbmNlID0gZW50aXR5U2VhcmNo
Lmxhc3RNYXRjaCgpLT5lbnRpdHk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBjYyA9ICpzb3VyY2U7CisgICAg
ICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQocmVmZXJlbmNlLCBjYyA9PSAqcmVmZXJlbmNl
KyspOworICAgICAgICAgICAgICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKGNjKTsK
KyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRBU1NFUlQoY2MpOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoIXNvdXJjZS5pc0VtcHR5KCkpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBjYyA9ICpzb3VyY2U7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoZW50aXR5U2VhcmNoLmxhc3RNYXRjaCgpLT5sYXN0Q2hhcmFjdGVyKCkgPT0gJzsn
KQorICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHlTZWFyY2gubGFzdE1hdGNoKCktPnZhbHVl
OworICAgICAgICAgICAgaWYgKCFhZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciB8fCAhKGlzQWxw
aGFOdW1lcmljKGNjKSB8fCBjYyA9PSAnPScpKQorICAgICAgICAgICAgICAgIHJldHVybiBlbnRp
dHlTZWFyY2gubGFzdE1hdGNoKCktPnZhbHVlOwogICAgICAgICAgICAgdW5jb25zdW1lQ2hhcmFj
dGVycyhzb3VyY2UsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CiAgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgfQpAQCAtMjM4LDggKzIzNywxOCBAQCB1bnNpZ25lZCBjb25zdW1lSFRNTEVudGl0
eShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgYm9vbCYgbm90RW5vdWdoQ2hhcmFjdGVycywgVQog
CiBVQ2hhciBkZWNvZGVOYW1lZEVudGl0eShjb25zdCBjaGFyKiBuYW1lKQogewotICAgIGNvbnN0
IEVudGl0eSogZSA9IGZpbmRFbnRpdHkobmFtZSwgc3RybGVuKG5hbWUpKTsKLSAgICByZXR1cm4g
ZSA/IGUtPmNvZGUgOiAwOworICAgIEhUTUxFbnRpdHlTZWFyY2ggc2VhcmNoOworICAgIHdoaWxl
IChuYW1lICYmIHNlYXJjaC5pc0VudGl0eVByZWZpeCgpKQorICAgICAgICBzZWFyY2guYWR2YW5j
ZSgqbmFtZSsrKTsKKyAgICBzZWFyY2guYWR2YW5jZSgnOycpOworICAgIFVDaGFyMzIgZW50aXR5
VmFsdWUgPSBzZWFyY2guY3VycmVudFZhbHVlKCk7CisgICAgaWYgKFUxNl9MRU5HVEgoZW50aXR5
VmFsdWUpICE9IDEpIHsKKyAgICAgICAgLy8gQ2FsbGVycyBuZWVkIHRvIG1vdmUgb2ZmIHRoaXMg
QVBJIGlmIHRoZSBlbnRpdHkgdGFibGUgaGFzIHZhbHVlcworICAgICAgICAvLyB3aGljaCBkbyBu
byBmaXQgaW4gYSAxNiBiaXQgVUNoYXIhCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFVDaGFyPihl
bnRpdHlWYWx1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MRW50aXR5U2VhcmNoLmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRW50aXR5
U2VhcmNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDUyNmEzZDZkZTdmYjI3ZWJiM2M4M2FjMzlhMWVhN2E2
NmVjMTY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlTZWFyY2gu
Y3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxFbnRpdHlT
ZWFyY2guaCIKKworI2luY2x1ZGUgIkhUTUxFbnRpdHlUYWJsZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK25hbWVzcGFjZSB7CisgICAgCitjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSog
aGFsZndheShjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbGVmdCwgY29uc3QgSFRNTEVudGl0
eVRhYmxlRW50cnkqIHJpZ2h0KQoreworICAgIHJldHVybiAmbGVmdFsocmlnaHQgLSBsZWZ0KSAv
IDJdOworfQorCit9CisgICAgCitIVE1MRW50aXR5U2VhcmNoOjpIVE1MRW50aXR5U2VhcmNoKCkK
KyAgICA6IG1fY3VycmVudExlbmd0aCgwKQorICAgICwgbV9jdXJyZW50VmFsdWUoMCkKKyAgICAs
IG1fbGFzdE1hdGNoKDApCisgICAgLCBtX3N0YXJ0KEhUTUxFbnRpdHlUYWJsZTo6c3RhcnQoKSkK
KyAgICAsIG1fZW5kKEhUTUxFbnRpdHlUYWJsZTo6ZW5kKCkpCit7Cit9CisKK0hUTUxFbnRpdHlT
ZWFyY2g6OkNvbXBhcmVSZXN1bHQgSFRNTEVudGl0eVNlYXJjaDo6Y29tcGFyZShjb25zdCBIVE1M
RW50aXR5VGFibGVFbnRyeSogZW50cnksIFVDaGFyIG5leHRDaGFyYWN0ZXIpIGNvbnN0Cit7Cisg
ICAgaWYgKGVudHJ5LT5sZW5ndGggPCBtX2N1cnJlbnRMZW5ndGggKyAxKQorICAgICAgICByZXR1
cm4gQmVmb3JlOworICAgIFVDaGFyIGVudHJ5TmV4dENoYXJhY3RlciA9IGVudHJ5LT5lbnRpdHlb
bV9jdXJyZW50TGVuZ3RoXTsKKyAgICBpZiAoZW50cnlOZXh0Q2hhcmFjdGVyID09IG5leHRDaGFy
YWN0ZXIpCisgICAgICAgIHJldHVybiBQcmVmaXg7CisgICAgcmV0dXJuIGVudHJ5TmV4dENoYXJh
Y3RlciA8IG5leHRDaGFyYWN0ZXIgPyBCZWZvcmUgOiBBZnRlcjsKK30KKworY29uc3QgSFRNTEVu
dGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlTZWFyY2g6OmZpbmRTdGFydChVQ2hhciBuZXh0Q2hh
cmFjdGVyKSBjb25zdAoreworICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5KiBsZWZ0ID0g
bV9zdGFydDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogcmlnaHQgPSBtX2VuZDsK
KyAgICBpZiAobGVmdCA9PSByaWdodCkKKyAgICAgICAgcmV0dXJuIGxlZnQ7CisgICAgQ29tcGFy
ZVJlc3VsdCByZXN1bHQgPSBjb21wYXJlKGxlZnQsIG5leHRDaGFyYWN0ZXIpOworICAgIGlmIChy
ZXN1bHQgPT0gUHJlZml4KQorICAgICAgICByZXR1cm4gbGVmdDsKKyAgICBpZiAocmVzdWx0ID09
IEFmdGVyKQorICAgICAgICByZXR1cm4gcmlnaHQ7CisgICAgd2hpbGUgKGxlZnQgKyAxIDwgcmln
aHQpIHsKKyAgICAgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHByb2JlID0gaGFsZndh
eShsZWZ0LCByaWdodCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUocHJvYmUsIG5leHRDaGFy
YWN0ZXIpOworICAgICAgICBpZiAocmVzdWx0ID09IEJlZm9yZSkKKyAgICAgICAgICAgIGxlZnQg
PSBwcm9iZTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQocmVzdWx0ID09IEFm
dGVyIHx8IHJlc3VsdCA9PSBQcmVmaXgpOworICAgICAgICAgICAgcmlnaHQgPSBwcm9iZTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBBU1NFUlQobGVmdCArIDEgPT0gcmlnaHQpOworICAgIHJldHVy
biByaWdodDsKK30KKworY29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlTZWFy
Y2g6OmZpbmRFbmQoVUNoYXIgbmV4dENoYXJhY3RlcikgY29uc3QKK3sKKyAgICBjb25zdCBIVE1M
RW50aXR5VGFibGVFbnRyeSogbGVmdCA9IG1fc3RhcnQ7CisgICAgY29uc3QgSFRNTEVudGl0eVRh
YmxlRW50cnkqIHJpZ2h0ID0gbV9lbmQ7CisgICAgaWYgKGxlZnQgPT0gcmlnaHQpCisgICAgICAg
IHJldHVybiByaWdodDsKKyAgICBDb21wYXJlUmVzdWx0IHJlc3VsdCA9IGNvbXBhcmUocmlnaHQs
IG5leHRDaGFyYWN0ZXIpOworICAgIGlmIChyZXN1bHQgPT0gUHJlZml4KQorICAgICAgICByZXR1
cm4gcmlnaHQ7CisgICAgaWYgKHJlc3VsdCA9PSBCZWZvcmUpCisgICAgICAgIHJldHVybiBsZWZ0
OworICAgIHdoaWxlIChsZWZ0ICsgMSA8IHJpZ2h0KSB7CisgICAgICAgIGNvbnN0IEhUTUxFbnRp
dHlUYWJsZUVudHJ5KiBwcm9iZSA9IGhhbGZ3YXkobGVmdCwgcmlnaHQpOworICAgICAgICByZXN1
bHQgPSBjb21wYXJlKHByb2JlLCBuZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9
PSBBZnRlcikKKyAgICAgICAgICAgIHJpZ2h0ID0gcHJvYmU7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgQVNTRVJUKHJlc3VsdCA9PSBCZWZvcmUgfHwgcmVzdWx0ID09IFByZWZpeCk7Cisg
ICAgICAgICAgICBsZWZ0ID0gcHJvYmU7CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUKGxl
ZnQgKyAxID09IHJpZ2h0KTsKKyAgICByZXR1cm4gbGVmdDsKK30KKwordm9pZCBIVE1MRW50aXR5
U2VhcmNoOjphZHZhbmNlKFVDaGFyIG5leHRDaGFyYWN0ZXIpCit7CisgICAgQVNTRVJUKGlzRW50
aXR5UHJlZml4KCkpOworICAgIGlmICghbV9jdXJyZW50TGVuZ3RoKSB7CisgICAgICAgIG1fc3Rh
cnQgPSBIVE1MRW50aXR5VGFibGU6OnN0YXJ0KG5leHRDaGFyYWN0ZXIpOworICAgICAgICBtX2Vu
ZCA9IEhUTUxFbnRpdHlUYWJsZTo6ZW5kKG5leHRDaGFyYWN0ZXIpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIG1fc3RhcnQgPSBmaW5kU3RhcnQobmV4dENoYXJhY3Rlcik7CisgICAgICAgIG1fZW5k
ID0gZmluZEVuZChuZXh0Q2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKG1fc3RhcnQgPT0gbV9lbmQg
JiYgY29tcGFyZShtX3N0YXJ0LCBuZXh0Q2hhcmFjdGVyKSAhPSBQcmVmaXgpCisgICAgICAgICAg
ICByZXR1cm4gZmFpbCgpOworICAgIH0KKyAgICArK21fY3VycmVudExlbmd0aDsKKyAgICBpZiAo
bV9zdGFydC0+bGVuZ3RoICE9IG1fY3VycmVudExlbmd0aCkgeworICAgICAgICBtX2N1cnJlbnRW
YWx1ZSA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9sYXN0TWF0Y2ggPSBtX3N0
YXJ0OworICAgIG1fY3VycmVudFZhbHVlID0gbV9sYXN0TWF0Y2gtPnZhbHVlOworfQorCit9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVudGl0eVNlYXJjaC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxFbnRpdHlTZWFyY2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTc4NTlkNGViY2NkMmExMmIwM2JkZTBm
OGNmMTI4MjM5NGRiY2M5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxFbnRp
dHlTZWFyY2guaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBIVE1MRW50aXR5U2VhcmNoX2gKKyNkZWZpbmUg
SFRNTEVudGl0eVNlYXJjaF9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBIVE1MRW50aXR5VGFibGVFbnRyeTsKKworY2xhc3Mg
SFRNTEVudGl0eVNlYXJjaCB7CitwdWJsaWM6CisgICAgSFRNTEVudGl0eVNlYXJjaCgpOworCisg
ICAgdm9pZCBhZHZhbmNlKFVDaGFyKTsKKworICAgIGJvb2wgaXNFbnRpdHlQcmVmaXgoKSBjb25z
dCB7IHJldHVybiAhIW1fc3RhcnQ7IH0KKyAgICBpbnQgY3VycmVudFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50VmFsdWU7IH0KKyAgICBpbnQgY3VycmVudExlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fY3VycmVudExlbmd0aDsgfQorCisgICAgY29uc3QgSFRNTEVudGl0eVRhYmxlRW50
cnkqIGxhc3RNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1hdGNoOyB9CisKK3ByaXZhdGU6
CisgICAgZW51bSBDb21wYXJlUmVzdWx0IHsKKyAgICAgICAgQmVmb3JlLAorICAgICAgICBQcmVm
aXgsCisgICAgICAgIEFmdGVyLAorICAgIH07CisKKyAgICBDb21wYXJlUmVzdWx0IGNvbXBhcmUo
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqLCBVQ2hhcikgY29uc3Q7CisgICAgY29uc3QgSFRN
TEVudGl0eVRhYmxlRW50cnkqIGZpbmRTdGFydChVQ2hhcikgY29uc3Q7CisgICAgY29uc3QgSFRN
TEVudGl0eVRhYmxlRW50cnkqIGZpbmRFbmQoVUNoYXIpIGNvbnN0OworCisgICAgdm9pZCBmYWls
KCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudFZhbHVlID0gMDsKKyAgICAgICAgbV9zdGFydCA9
IDA7CisgICAgICAgIG1fZW5kID0gMDsKKyAgICB9CisKKyAgICBpbnQgbV9jdXJyZW50TGVuZ3Ro
OworICAgIGludCBtX2N1cnJlbnRWYWx1ZTsKKworICAgIGNvbnN0IEhUTUxFbnRpdHlUYWJsZUVu
dHJ5KiBtX2xhc3RNYXRjaDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbV9zdGFy
dDsKKyAgICBjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogbV9lbmQ7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbnRpdHlUYWJsZS5oIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbnRpdHlUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1YTFhZmQzMTYxZjBkY2EzNGM1
MmQzMDFkY2E5YzM5NTljNzI5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEVudGl0eVRhYmxlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSFRNTEVudGl0eVRhYmxlX2gKKyNkZWZp
bmUgSFRNTEVudGl0eVRhYmxlX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEhUTUxFbnRpdHlUYWJsZUVudHJ5IHsKKyAgICBV
Q2hhciBsYXN0Q2hhcmFjdGVyKCkgY29uc3QgeyByZXR1cm4gZW50aXR5W2xlbmd0aCAtIDFdOyB9
CisKKyAgICBjb25zdCBVQ2hhciogZW50aXR5OworICAgIGludCBsZW5ndGg7CisgICAgaW50IHZh
bHVlOworfTsKKworY2xhc3MgSFRNTEVudGl0eVRhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
Y29uc3QgSFRNTEVudGl0eVRhYmxlRW50cnkqIHN0YXJ0KCk7CisgICAgc3RhdGljIGNvbnN0IEhU
TUxFbnRpdHlUYWJsZUVudHJ5KiBlbmQoKTsKKworICAgIHN0YXRpYyBjb25zdCBIVE1MRW50aXR5
VGFibGVFbnRyeSogc3RhcnQoVUNoYXIpOworICAgIHN0YXRpYyBjb25zdCBIVE1MRW50aXR5VGFi
bGVFbnRyeSogZW5kKFVDaGFyKTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJD
b3JlL21ha2UtaGFzaC10b29scy5wbCBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCmluZGV4
IDQyY2I2ZmQ5NThmMTA1YWU2YWZiZjZlZGUzNDhhYzM1YjZmMzk2M2UuLjhjYzk5NTJjMTU3MmIw
MDMzODFiMGQ4MjczY2IxZDY2NWMzMGZmZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbWFrZS1oYXNo
LXRvb2xzLnBsCisrKyBiL1dlYkNvcmUvbWFrZS1oYXNoLXRvb2xzLnBsCkBAIC0yOSwxNiArMjks
NiBAQCBteSAkb3B0aW9uID0gYmFzZW5hbWUoJEFSR1ZbMF0sIi5ncGVyZiIpOwogCiBzd2l0Y2gg
KCRvcHRpb24pIHsKIAotY2FzZSAiSFRNTEVudGl0eU5hbWVzIiB7Ci0KLSAgICBteSAkaHRtbEVu
dGl0eU5hbWVzR2VuZXJhdGVkICAgPSAiJG91dGRpci9IVE1MRW50aXR5TmFtZXMuY3BwIjsKLSAg
ICBteSAkaHRtbEVudGl0eU5hbWVzR3BlcmYgICAgICAgPSAkQVJHVlswXTsKLSAgICBzaGlmdDsK
LQotICAgIHN5c3RlbSgiZ3BlcmYgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1zIDIgJGh0bWxF
bnRpdHlOYW1lc0dwZXJmID4gJGh0bWxFbnRpdHlOYW1lc0dlbmVyYXRlZCIpID09IDAgfHwgZGll
ICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOwotCi19ICMgY2FzZSAiSFRNTEVudGl0eU5hbWVz
IgotCiBjYXNlICJEb2NUeXBlU3RyaW5ncyIgewogCiAgICAgbXkgJGRvY1R5cGVTdHJpbmdzR2Vu
ZXJhdGVkICAgID0gIiRvdXRkaXIvRG9jVHlwZVN0cmluZ3MuY3BwIjsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBmOGQxZDg4
YzJiZDhhYzkzY2Y2MjhkMDYyM2M1ODk3ODI3NGMxOTUzLi45MzE5ZmExOTdiYjQ1MzExZjBlOThh
NmRmYTQyNDM1OTQ0MWJhMDNiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDgtMTIgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0aE1MIGVudGl0aWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzk0OQorCisg
ICAgICAgIEEgc2NyaXB0IGZvciBnZW5lcmF0aW5nIHRoZSBDKysgc3RhdGUgZGF0YSBzdHJ1Y3R1
cmUgZGVzY3JpYmluZyBhbGwgdGhlCisgICAgICAgIGVudGl0aWVzIGZyb20gYSBKU09OIGRlc2Ny
aXB0aW9uLgorCisgICAgICAgIE5vdGU6IFRoaXMgc2NyaXB0IGlzIG5vdCB5ZXQgaW50ZWdyYXRl
ZCB3aXRoIHRoZSBidWlsZCBzeXN0ZW0sIHNvIHRoaXMKKyAgICAgICAgICAgICAgcGF0Y2ggd2ls
bCBub3QgYnVpbGQhICBPT1BTIQorCisgICAgICAgICogU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRp
dHktdGFibGU6IEFkZGVkLgorCiAyMDEwLTA4LTEyICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBCdWlsZCBicmVhayBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvY3JlYXRlLWh0bWwtZW50aXR5LXRhYmxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZDU1ZjdhZTE1YTA1YTg2
Y2Q0N2NiNWI0YzMyY2JkM2NmMjVjYWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQpAQCAtMCwwICsxLDE3NyBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
IAorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIyAKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgb3MucGF0aAoraW1w
b3J0IHN0cmluZworaW1wb3J0IHN5cworCitpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5zaW1w
bGVqc29uIGFzIHNpbXBsZWpzb24KKworCitkZWYgY29udmVydF9lbnRpdHlfdG9fY3BwX25hbWUo
ZW50aXR5KToKKyAgICBwb3N0Zml4ID0gIkVudGl0eU5hbWUiCisgICAgaWYgZW50aXR5Wy0xXSA9
PSAiOyI6CisgICAgICAgIHJldHVybiAiJXNTZW1pY29sb24lcyIgJSAoZW50aXR5WzotMV0sIHBv
c3RmaXgpCisgICAgcmV0dXJuICIlcyVzIiAlIChlbnRpdHksIHBvc3RmaXgpCisKKworZGVmIGNv
bnZlcnRfZW50aXR5X3RvX3VjaGFyX2FycmF5KGVudGl0eSk6CisgICAgcmV0dXJuICJ7JyVzJ30i
ICUgIicsICciLmpvaW4oZW50aXR5KQorCisKK2RlZiBjb252ZXJ0X3ZhbHVlX3RvX2ludCh2YWx1
ZSk6CisgICAgYXNzZXJ0KHZhbHVlWzBdID09ICJVIikKKyAgICBhc3NlcnQodmFsdWVbMV0gPT0g
IisiKQorICAgIHJldHVybiAiMHgiICsgdmFsdWVbMjpdCisKKworZGVmIG9mZnNldF90YWJsZV9l
bnRyeShvZmZzZXQpOgorICAgIHJldHVybiAiICAgICZzdGF0aWNFbnRpdHlUYWJsZVslc10sIiAl
IG9mZnNldAorCisKK3Byb2dyYW1fbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pCitp
ZiBsZW4oc3lzLmFyZ3YpIDwgNCBvciBzeXMuYXJndlsxXSAhPSAiLW8iOgorICAgIHByaW50ID4+
IHN5cy5zdGRlcnIsICJVc2FnZTogJXMgLW8gT1VUUFVUX0ZJTEUgSU5QVVRfRklMRSIgJSBwcm9n
cmFtX25hbWUKKyAgICBleGl0KDEpCisKK291dHB1dF9wYXRoID0gc3lzLmFyZ3ZbMl0KK2lucHV0
X3BhdGggPSBzeXMuYXJndlszXQorCitodG1sX2VudGl0eV9uYW1lc19maWxlID0gb3BlbihpbnB1
dF9wYXRoKQorZW50cmllcyA9IHNpbXBsZWpzb24ubG9hZChodG1sX2VudGl0eV9uYW1lc19maWxl
KQoraHRtbF9lbnRpdHlfbmFtZXNfZmlsZS5jbG9zZSgpCisKK2VudHJpZXMgPSBzb3J0ZWQoZW50
cmllcywga2V5PWxhbWJkYSBlbnRyeTogZW50cnlbJ2VudGl0eSddKQorZW50aXR5X2NvdW50ID0g
bGVuKGVudHJpZXMpCisKK291dHB1dF9maWxlID0gb3BlbihvdXRwdXRfcGF0aCwgInciKQorCitw
cmludCA+PiBvdXRwdXRfZmlsZSwgIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUs
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKy8vIFRISVMgRklMRSBJUyBHRU5FUkFURUQgQlkgV2ViS2l0VG9vbHMv
U2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGUKKy8vIERPIE5PVCBFRElUICh1bmxlc3Mg
eW91IGFyZSBhIG5pbmphKSEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxF
bnRpdHlUYWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisiIiIK
KworZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgcHJpbnQgPj4gb3V0cHV0X2ZpbGUsICJjb25z
dCBVQ2hhciAlc0VudGl0eU5hbWVbXSA9ICVzOyIgJSAoCisgICAgICAgIGNvbnZlcnRfZW50aXR5
X3RvX2NwcF9uYW1lKGVudHJ5WyJlbnRpdHkiXSksCisgICAgICAgIGNvbnZlcnRfZW50aXR5X3Rv
X3VjaGFyX2FycmF5KGVudHJ5WyJlbnRpdHkiXSkpCisKK3ByaW50ID4+IG91dHB1dF9maWxlLCAi
IiIKK0hUTUxFbnRpdHlUYWJsZUVudHJ5IHN0YXRpY0VudGl0eVRhYmxlWyVzXSA9IHsiIiIgJSBl
bnRpdHlfY291bnQKKworaW5kZXggPSB7fQorb2Zmc2V0ID0gMAorZm9yIGVudHJ5IGluIGVudHJp
ZXM6CisgICAgbGV0dGVyID0gZW50cnlbImVudGl0eSJdWzBdCisgICAgaWYgbm90IGluZGV4Lmdl
dChsZXR0ZXIpOgorICAgICAgICBpbmRleFtsZXR0ZXJdID0gb2Zmc2V0CisgICAgcHJpbnQgPj4g
b3V0cHV0X2ZpbGUsICcgICAgeyAlc0VudGl0eU5hbWUsICVzLCAlcyB9LCcgJSAoCisgICAgICAg
IGNvbnZlcnRfZW50aXR5X3RvX2NwcF9uYW1lKGVudHJ5WyJlbnRpdHkiXSksCisgICAgICAgIGxl
bihlbnRyeVsiZW50aXR5Il0pLAorICAgICAgICBjb252ZXJ0X3ZhbHVlX3RvX2ludChlbnRyeVsi
dmFsdWUiXSkpCisgICAgb2Zmc2V0ICs9IDEKKworcHJpbnQgPj4gb3V0cHV0X2ZpbGUsICIiIn07
CisiIiIKKworcHJpbnQgPj4gb3V0cHV0X2ZpbGUsICJjb25zdCBIVE1MRW50aXR5VGFibGVFbnRy
eSogdXBwZXJjYXNlT2Zmc2V0W10gPSB7IgorZm9yIGxldHRlciBpbiBzdHJpbmcudXBwZXJjYXNl
OgorICAgIHByaW50ID4+IG91dHB1dF9maWxlLCBvZmZzZXRfdGFibGVfZW50cnkoaW5kZXhbbGV0
dGVyXSkKK3ByaW50ID4+IG91dHB1dF9maWxlLCBvZmZzZXRfdGFibGVfZW50cnkoaW5kZXhbJ2En
XSkKK3ByaW50ID4+IG91dHB1dF9maWxlLCAiIiJ9OworCitjb25zdCBIVE1MRW50aXR5VGFibGVF
bnRyeSogbG93ZXJjYXNlT2Zmc2V0W10gPSB7IiIiCitmb3IgbGV0dGVyIGluIHN0cmluZy5sb3dl
cmNhc2U6CisgICAgcHJpbnQgPj4gb3V0cHV0X2ZpbGUsIG9mZnNldF90YWJsZV9lbnRyeShpbmRl
eFtsZXR0ZXJdKQorcHJpbnQgPj4gb3V0cHV0X2ZpbGUsIG9mZnNldF90YWJsZV9lbnRyeShlbnRp
dHlfY291bnQpCitwcmludCA+PiBvdXRwdXRfZmlsZSwgIiIifTsKKworfQorCitjb25zdCBIVE1M
RW50aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVRhYmxlOjpzdGFydChVQ2hhciBjKQoreworICAg
IGlmIChjID49ICdBJyAmJiBjIDw9ICdaJykKKyAgICAgICAgcmV0dXJuIHVwcGVyY2FzZU9mZnNl
dFtjIC0gJ0EnXTsKKyAgICBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicpCisgICAgICAgIHJldHVy
biBsb3dlcmNhc2VPZmZzZXRbYyAtICdhJ107CisgICAgcmV0dXJuIDA7Cit9CisKK2NvbnN0IEhU
TUxFbnRpdHlUYWJsZUVudHJ5KiBIVE1MRW50aXR5VGFibGU6OmVuZChVQ2hhciBjKQoreworICAg
IGlmIChjID49ICdBJyAmJiBjIDw9ICdaJykKKyAgICAgICAgcmV0dXJuIHVwcGVyY2FzZU9mZnNl
dFtjIC0gJ0EnICsgMV0gLSAxOworICAgIGlmIChjID49ICdhJyAmJiBjIDw9ICd6JykKKyAgICAg
ICAgcmV0dXJuIGxvd2VyY2FzZU9mZnNldFtjIC0gJ2EnICsgMV0gLSAxOworICAgIHJldHVybiAw
OworfQorCitjb25zdCBIVE1MRW50aXR5VGFibGVFbnRyeSogSFRNTEVudGl0eVRhYmxlOjpzdGFy
dCgpCit7CisgICAgcmV0dXJuICZzdGF0aWNFbnRpdHlUYWJsZVswXTsKK30KKworY29uc3QgSFRN
TEVudGl0eVRhYmxlRW50cnkqIEhUTUxFbnRpdHlUYWJsZTo6ZW5kKCkKK3sKKyAgICByZXR1cm4g
JnN0YXRpY0VudGl0eVRhYmxlWyVzIC0gMV07Cit9CisKK30KKyIiIiAlIGVudGl0eV9jb3VudAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64407</attachid>
            <date>2010-08-13 22:38:22 -0700</date>
            <delta_ts>2010-08-13 23:45:05 -0700</delta_ts>
            <desc>Patch to fix cr-win builder</desc>
            <filename>bug-43949-20100813223821.patch</filename>
            <type>text/plain</type>
            <size>1447</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmYTI3OGUzMGEyZWVlODEyZTBkYThiYjA1OGEwMmM4NjdlMjJmZTJlLi5iMTdlMWQ3
NWUyZWJiNDk0ZDY0NTk5OTZlNzhmNDJiMWVjMjdlNDZiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDgtMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFVu
cmV2aWV3ZWQuICBCdWlsZCBmaXggb25seS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTWF0
aE1MIGVudGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk0OQorCisgICAgICAgICogU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHktdGFibGU6
CisgICAgICAgICAtIEhhY2sgc3lzLnBhdGggdG8gYXZvaWQgZXhlY3V0aW5nIDIuNSBkZXBlbmRl
bnQgcHl0aG9uCisgICAgICAgICAgIG9uIHN5c3RlbXMgKGxpa2UgY2hyb21pdW0td2luIGFuZCBU
aWdlcikgd2hpY2ggZG8gbm90IGhhdmUgMi41IHB5dGhvbi4KKwogMjAxMC0wOC0xMiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9jcmVhdGUtaHRtbC1lbnRpdHkt
dGFibGUgYi9XZWJLaXRUb29scy9TY3JpcHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQppbmRl
eCAxNGQ1NWY3YWUxNWEwNWE4NmNkNDdjYjViNGMzMmNiZDNjZjI1Y2FlLi44Njg1ODBkZDNhMGI3
YTlkZTk0ZmVmYmFiZjI2MGU2Zjg2MDE2ZWQ2IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2Ny
ZWF0ZS1odG1sLWVudGl0eS10YWJsZQpAQCAtMzEsNyArMzEsMTMgQEAgaW1wb3J0IG9zLnBhdGgK
IGltcG9ydCBzdHJpbmcKIGltcG9ydCBzeXMKIAotaW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHku
c2ltcGxlanNvbiBhcyBzaW1wbGVqc29uCisjIEhhY2sgc3lzLnBhdGggdG8gYXZvaWQgZXhlY3V0
aW5nIHdlYmtpdHB5IF9faW5pdF9fLnB5IGNvZGUgd2hpY2ggbWF5CisjIHVzZSBQeXRob24gMi41
IGZlYXR1cmVzLiAgVGhpcyBjb2RlIG5lZWRzIHRvIHJ1biBvbiBQeXRob24gMi4zIGluIG9yZGVy
CisjIHRvIHN1cHBvcnQgTWFjIE9TIFggVGlnZXIuCitzY3JpcHRzX2RpcmVjdG9yeSA9IHN5cy5w
YXRoWzBdCitzeXMucGF0aC5hcHBlbmQoIiVzL3dlYmtpdHB5L3RoaXJkcGFydHkiICUgc2NyaXB0
c19kaXJlY3RvcnkpCisKK2ltcG9ydCBzaW1wbGVqc29uCiAKIAogZGVmIGNvbnZlcnRfZW50aXR5
X3RvX2NwcF9uYW1lKGVudGl0eSk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>