<?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>10230</bug_id>
          
          <creation_ts>2006-08-03 03:28:33 -0700</creation_ts>
          <short_desc>SVGDOMImplementation should die (and be rolled into DOMImplementation)</short_desc>
          <delta_ts>2006-08-12 00:58:17 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>SVGHitList</keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>10297</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>51550</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-03 03:28:33 -0700</bug_when>
    <thetext>SVGDOMImplementation should die (and be rolled into DOMImplementation)

Having a separate DOMImplementation for SVG is a legacy from KDOM and should be removed.

This will allow hasFeature to work properly in WebKit for SVG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51640</commentid>
    <comment_count>1</comment_count>
      <attachid>9856</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-03 13:38:30 -0700</bug_when>
    <thetext>Created attachment 9856
First attempt

Let me know what you think. I assume no testcase is needed.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51641</commentid>
    <comment_count>2</comment_count>
      <attachid>9856</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-03 13:49:48 -0700</bug_when>
    <thetext>Comment on attachment 9856
First attempt

Instead of upper.startsWith(&quot;HTTP://WWW.W3.ORG/TR/SVG11/FEATURE#&quot;) I&apos;d like to see feature.startsWith(xxx, false).

The svgFeatureSet set should be a case insensitive set intsead of being a case sensitive HashSet.

But if we&apos;re going to use all uppercase it should not include &quot;dom.svg.ALL&quot; in mixed case!

I&apos;d prefer not to use &quot;upper()&quot; at all.

Also, don&apos;t use braces around single lines in this code:

+    if (namespaceURI == SVGNames::svgNamespaceURI) {
+        doc = new SVGDocument(this, 0);
+    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51643</commentid>
    <comment_count>3</comment_count>
      <attachid>9856</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-08-03 14:07:08 -0700</bug_when>
    <thetext>Comment on attachment 9856
First attempt

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51644</commentid>
    <comment_count>4</comment_count>
      <attachid>9856</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-08-03 14:07:58 -0700</bug_when>
    <thetext>Comment on attachment 9856
First attempt

Ach, nevermind, given Darin&apos;s comments this should probably be r- so you can consider them. Looks good in general though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51763</commentid>
    <comment_count>5</comment_count>
      <attachid>9871</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-04 07:23:31 -0700</bug_when>
    <thetext>Created attachment 9871
improved patch

This patch should address the issues.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51782</commentid>
    <comment_count>6</comment_count>
      <attachid>9871</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-04 10:20:10 -0700</bug_when>
    <thetext>Comment on attachment 9871
improved patch

I believe darin was refering to using HashSet&lt;StringImpl, CaseInsensitiveHash&gt; instead of HashSet&lt;String&gt;

That would avoid any need to upper/lower the strings.

The rest of hasFeature could be converted to using a set if you really felt adventurous.

Unless this changes already existing layout tests, a test case is needed.

Infact, ideally only features that we currently support should be present in that set.  The ideal test case would check hasFeature and isSupported for every possible value, and print out the value name and YES/NO.  Then when we add features to WebKit we would turn them on (uncomment them) in DOMImplementation.cpp, and that test case would be affected.

I&apos;ll leave this for darin/mjs to have a final opinion on.  I think the code is pretty much ready to land, but it would be good to have a test case, and good to only &quot;turn on&quot; hasFeature support for features we actually have fully (or mostly) implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51849</commentid>
    <comment_count>7</comment_count>
      <attachid>9871</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-05 09:01:08 -0700</bug_when>
    <thetext>Comment on attachment 9871
improved patch

Yes, Eric is right.

I suggest that svgFeatureSet be HashSet&lt;String, CaseInsensitiveHash&gt;. You should not need to call lower or upper at all.

The patch looks good -- but I think it would be better to use a case-insensitive hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51850</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-05 09:01:44 -0700</bug_when>
    <thetext>And yes, I think we should add a test for this, unless we already have one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51883</commentid>
    <comment_count>9</comment_count>
      <attachid>9894</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-05 14:29:53 -0700</bug_when>
    <thetext>Created attachment 9894
Now with testcase

Now I added a testcase, based on fast/dom/features.html. I also noticed some typos in the
features as well as some missing ones, they are now added and all tested using the testcase.
Note that I disabled those features that I think we do not support atm, but someone else
may have a different opinion about it, so probably someone will need to go through every
single feature, look it up in the spec and make a decision based on that. So far I have only
done that quickly, not in-depth.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51886</commentid>
    <comment_count>10</comment_count>
      <attachid>9894</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-05 14:47:07 -0700</bug_when>
    <thetext>Comment on attachment 9894
Now with testcase

This looks fabulous.

two comments:

1. this comment is backwards:
+// TODO: features need to be commented out when we implement them

things should be &quot;uncommented&quot; once we implement them.

also I would probably have used FALSE and true or some more-easily distinguisable pair of vaues in the test case.

Looks great!
r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51888</commentid>
    <comment_count>11</comment_count>
      <attachid>9894</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-05 15:24:09 -0700</bug_when>
    <thetext>Comment on attachment 9894
Now with testcase

I believe the changes here to StringHash are wrong! Please do not land them.

Why are these relevant to this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51890</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-05 16:10:28 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 9894 [edit])
&gt; I believe the changes here to StringHash are wrong! Please do not land them.
&gt; 
&gt; Why are these relevant to this patch?
&gt; 

Rob wanted a way to have a HashMap&lt;String, CaseInsensitiveHash&gt; instead of HashMap&lt;StringImpl, CaseInsensitiveHash&gt;

Could you provide a bit more detail about what&apos;s wrong with the hash additions?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51892</commentid>
    <comment_count>13</comment_count>
      <attachid>9894</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-05 16:18:56 -0700</bug_when>
    <thetext>Comment on attachment 9894
Now with testcase

(In reply to comment #12)
&gt; Could you provide a bit more detail about what&apos;s wrong with the hash additions?

This change:

     template&lt;&gt; struct StrHash&lt;WebCore::StringImpl*&gt; {
+        static unsigned hash(const WebCore::String&amp; key) { return key.impl()-&gt;hash(); }
         static unsigned hash(const WebCore::StringImpl* key) { return key-&gt;hash(); }

should be unnecessary. That&apos;s a string hash for StringImpl* and it doesn&apos;t make sense to also add a hash to it for String, nor should it be needed.

The two equal function overloads inside CaseInsensitiveHash should be OK. It&apos;s reasonable to try to make CaseInsensitiveHash work for both String and StringImpl

But this one is definitely wrong:

+        static const WebCore::String&amp; deletedValue() {
+            static WebCore::String null;
+            return null;
+        }

It&apos;s going to create a separate global variable for each translation unit that it&apos;s used in. It&apos;s also going to make empty values and deleted values be the same, since emptyValueIsZero causes a String with all values 0 (any null string) be the empty value. The hash code goes completely awry if empty values and deleted values are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51894</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-05 16:21:22 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; It&apos;s going to create a separate global variable for each translation unit that
&gt; it&apos;s used in. It&apos;s also going to make empty values and deleted values be the
&gt; same, since emptyValueIsZero causes a String with all values 0 (any null
&gt; string) be the empty value. The hash code goes completely awry if empty values
&gt; and deleted values are the same.
I think that there may be a way to get this to work using HashKeyStorageTraits to make the String-based hash table be implemented by using a hash table that uses StringImpl* -- I don&apos;t know exactly how yet, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51895</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-05 16:29:10 -0700</bug_when>
    <thetext>A simpler fix would be for rob to just use something like this:

svgFeatures-&gt;add(new StringImpl(&quot;Structure&quot;));
svgFeatures is a long-lived global anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51971</commentid>
    <comment_count>16</comment_count>
      <attachid>9912</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-07 02:28:40 -0700</bug_when>
    <thetext>Created attachment 9912
Improved patch

With the new patch I hope to address these problems with the old code:
- whole hash table was leaked before
- 1.0 and 1.1 feature were mixed, so a substring from 1.1 could be appended to the 1.0 prefix, for example org.w3c.Script. Now I use two seperate hash tables, no mixing possible.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52042</commentid>
    <comment_count>17</comment_count>
      <attachid>9912</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-08 08:31:19 -0700</bug_when>
    <thetext>Comment on attachment 9912
Improved patch

Ideally, I&apos;d like to see the test cover some poorly-formed feature strings too, and test the case insensitivity more directly. It&apos;s good as-is, but could be even better.

+#if SVG_SUPPORT

Should use #ifdef SVG_SUPPORT as in the upcoming patch to fix compilation without SVG while using -Wundef.

You don&apos;t really need the initialized boolean. Can just check is the HashSet is empty using isEmpty.

But those are nitpicks, this looks fine now.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52101</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-09 07:47:18 -0700</bug_when>
    <thetext>Hum... looks like the case-insensitivity was lost somewhere along the way:

http://www.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/Samples/hasFeature.htm

We might have to re-open this... unless I&apos;m reading things wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52126</commentid>
    <comment_count>19</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-09 13:26:56 -0700</bug_when>
    <thetext>Hi Eric

(In reply to comment #18)
&gt; Hum... looks like the case-insensitivity was lost somewhere along the way:
&gt; 
&gt; http://www.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/Samples/hasFeature.htm

You are right...

&gt; We might have to re-open this... unless I&apos;m reading things wrong.

Nope, not reading things wrong. I looked at it for a while until I realized
it is caused by what I thought was a mostly harmless optimizing change, not
using static for the temp AtomicString. Ofcourse this looked more efficient but
probably messes up because of refcounting problems, sorry! Anyway I tested with static, which
you okayed in the first place, and that works. Let me know what I should do to commit the fix
of the fix, whether we should do review again etc.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52131</commentid>
    <comment_count>20</comment_count>
      <attachid>9964</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-09 14:07:19 -0700</bug_when>
    <thetext>Created attachment 9964
Fix for case-insensitive lookup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52145</commentid>
    <comment_count>21</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-08-09 16:45:40 -0700</bug_when>
    <thetext>Reopening for Attachment 9964.

Rob, it would really be most helpful if you simply opened new bugs for issues like this.  Thanks!
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52146</commentid>
    <comment_count>22</comment_count>
      <attachid>9912</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-08-09 16:46:55 -0700</bug_when>
    <thetext>Comment on attachment 9912
Improved patch

Clearing Darin&apos;s review for Attachment 9912 since it&apos;s already been landed, and Attachment 9964 was added with an r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52147</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-09 17:18:46 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Reopening for Attachment 9964 [edit].
&gt; 
&gt; Rob, it would really be most helpful if you simply opened new bugs for issues
&gt; like this.  Thanks!
&gt; 

So that Rob&apos;s fine reputation not be needlessly besmirched: It should be known that I encouraged rob to just attach the patch to this bug. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52202</commentid>
    <comment_count>24</comment_count>
      <attachid>9964</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-10 16:55:59 -0700</bug_when>
    <thetext>Comment on attachment 9964
Fix for case-insensitive lookup

This looks fine. But there are more-efficient alternatives:

For example, you could make this:

    static void addString(HashSet&lt;StringImpl*, CaseInsensitiveHash&gt;&amp; set, const char* string)
    {
        StringImpl* s = new StringImpl(string);
        s-&gt;ref();
        add(set, s);
    }

Then you wouldn&apos;t need local variables at all:

    #define SVGFEATURE(feature) addString(svgFeatures, #feature);

And in fact, invoking this is simple enough that you don&apos;t even need to use a macro! And you don&apos;t need SVGFEATURE2.
Also, isSVG10Feature and isSVG11Feature should both be marked static.

Feel free to land what you have, or please post a new patch based on my suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52251</commentid>
    <comment_count>25</comment_count>
      <attachid>9987</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-11 12:46:56 -0700</bug_when>
    <thetext>Created attachment 9987
Improved patch

This new patch follows Darin&apos;s nice suggestions. I verified that the tests still are ok,
including that site that thoroughly tests hasFeature.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52252</commentid>
    <comment_count>26</comment_count>
      <attachid>9987</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-11 12:55:37 -0700</bug_when>
    <thetext>Comment on attachment 9987
Improved patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52263</commentid>
    <comment_count>27</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-08-11 14:33:55 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; So that Rob&apos;s fine reputation not be needlessly besmirched: It should be known
&gt; that I encouraged rob to just attach the patch to this bug. ;)

Sorry if I offended anyone.  :(

If you&apos;re going to post new patches on bugs that have already been marked as RESOLVED, you just need to remember to reopen the bug, and clear any r+ flags on patches that have already been applied.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52307</commentid>
    <comment_count>28</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-12 00:56:23 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #23)
&gt; &gt; So that Rob&apos;s fine reputation not be needlessly besmirched: It should be known
&gt; &gt; that I encouraged rob to just attach the patch to this bug. ;)
&gt; 
&gt; Sorry if I offended anyone.  :(

No offense taken :)

&gt; If you&apos;re going to post new patches on bugs that have already been marked as
&gt; RESOLVED, you just need to remember to reopen the bug, and clear any r+ flags
&gt; on patches that have already been applied.

Will try to do that from now on.
Cheers,

Rob.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9856</attachid>
            <date>2006-08-03 13:38:30 -0700</date>
            <delta_ts>2006-08-05 14:29:53 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>10230.diff</filename>
            <type>text/plain</type>
            <size>30697</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMDYtMDgtMDMgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5P
IFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMzAKKyAgICAgICAgU1ZHRE9NSW1wbGVt
ZW50YXRpb24gc2hvdWxkIGRpZSAoYW5kIGJlIHJvbGxlZCBpbnRvIERPTUltcGxlbWVudGF0aW9u
KQorCisgICAgICAgIERlbGV0ZSBTVkdET01JbXBsZW1lbnRhdGlvbiBhbmQgcmVmZXJlbmNlcyB0
byBpdC4gVGhlCisgICAgICAgIHN2ZyBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IGlzIG5vdyBpbiBE
T01JbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c3ZnRmVhdHVyZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6aGFzRmVhdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNy
ZWF0ZVNWR0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoKKyAg
ICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpTVkdEb2N1
bWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0RvY3VtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6aXNT
dXBwb3J0ZWQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHA6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RUZsb29kRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVU
aWxlRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3RvcEVsZW1l
bnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6
aXNWYWxpZCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAg
ICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmJlZ2luKToK
KwogMjAwNi0wOC0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFjaWVqIGFuZCBCZXRoLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNTIsOCArMTA1
Miw2IEBACiAJCUE4OEFENDRBMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEZXNjRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MzYwODk3
MDFGMzAwQkE1MTE0IC8qIFNWR0Rlc2NFbGVtZW50LmggKi87IH07CiAJCUE4OEFENDRCMDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRG9jdW1l
bnQuY3BwICovOyB9OwogCQlBODhBRDQ0QzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRG9jdW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODM4
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5oICovOyB9OwotCQlBODhBRDQ0RDA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MzkwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0RPTUltcGxlbWVudGF0aW9uLmNwcCAqLzsgfTsKLQkJQTg4QUQ0NEUwOTUyNDhGMDAwMURE
MTk2IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1w
bGVtZW50YXRpb24uaCAqLzsgfTsKIAkJQTg4QUQ0NEYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThDMEY4M0IwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1lbnQuY3BwICovOyB9OwogCQlBODhB
RDQ1MDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4M0MwODk3MDFGMzAwQkE1MTE0IC8qIFNW
R0VsZW1lbnQuaCAqLzsgfTsKIAkJQTg4QUQ0NTIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1l
bnRJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDMEY4M0UwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5oICovOyB9
OwpAQCAtMTYwMiw2ICsxNjAwLDIzIEBACiAJCUZBRTA0MTkwMDk3NTk2QzkwMDA1NDBCRSAvKiBT
VkdJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkFFMDQxOEUwOTc1OTZDOTAwMDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggKi87IH07
CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQnVpbGRTdHls
ZSBzZWN0aW9uICovCisJCUFBM0RBRkRCMEE4MjJFMTUwMDUyREZBQiAvKiBEZXZlbG9wbWVudCAq
LyA9IHsKKwkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNldHRpbmdzID0geworCQkJ
CUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCX07CisJCQluYW1lID0gRGV2ZWxvcG1lbnQ7CisJ
CX07CisJCUFBM0RBRkRDMEE4MjJFMTUwMDUyREZBQiAvKiBEZXBsb3ltZW50ICovID0geworCQkJ
aXNhID0gUEJYQnVpbGRTdHlsZTsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ09QWV9QSEFT
RV9TVFJJUCA9IFlFUzsKKwkJCX07CisJCQluYW1lID0gRGVwbG95bWVudDsKKwkJfTsKKy8qIEVu
ZCBQQlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVBy
b3h5IHNlY3Rpb24gKi8KIAkJREQwNDFGRjAwOUQ5RTMyNTAwMTBBRjJBIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKQEAgLTI3
NDcsOCArMjc2Miw2IEBACiAJCUE4QzBGODM2MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEZXNjRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0Rlc2NFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzNzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRG9jdW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTVkdEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzODA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRG9j
dW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4MzkwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RPTUltcGxl
bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJQThDMEY4M0EwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRE9NSW1wbGVtZW50YXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBG
ODNCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMw
RjgzQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0VsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODNEMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50SW5zdGFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdFbGVtZW50SW5zdGFuY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKQEAgLTQ2MTYsOCArNDYyOSw2IEBACiAJCQkJQThDMEY4MzcwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0RvY3VtZW50LmNwcCAqLywKIAkJCQlBOEMwRjgzODA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
RG9jdW1lbnQuaCAqLywKIAkJCQlBODMzQjk5MzBBMkI3N0Q1MDBENTc2NjQgLyogU1ZHRG9jdW1l
bnQuaWRsICovLAotCQkJCUE4QzBGODM5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCi0JCQkJQThDMEY4M0EwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJQThDMEY4M0IwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Vs
ZW1lbnQuY3BwICovLAogCQkJCUE4QzBGODNDMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50
LmggKi8sCiAJCQkJQTgzM0M1RTcwQTJDQ0JBNDAwRDU3NjY0IC8qIFNWR0VsZW1lbnQuaWRsICov
LApAQCAtNTc0OSw3ICs1NzYwLDYgQEAKIAkJCQlBODhBRDQ0ODA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHRGVmc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDRBMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdEZXNjRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0NEMwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0RvY3VtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDQ0
RTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4OEFENDUwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODhBRDQ1MjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudEluc3RhbmNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQ1NDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxl
bWVudEluc3RhbmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDUxLDYgKzY0NjEsMTIgQEAK
IAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0gewogCQkJ
aXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4
OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0
ICJXZWJDb3JlIiAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJYnVpbGRTdHls
ZXMgPSAoCisJCQkJQUEzREFGREIwQTgyMkUxNTAwNTJERkFCIC8qIERldmVsb3BtZW50ICovLAor
CQkJCUFBM0RBRkRDMEE4MjJFMTUwMDUyREZBQiAvKiBEZXBsb3ltZW50ICovLAorCQkJKTsKIAkJ
CWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVu
Z2xpc2gsCkBAIC02NjY1LDcgKzY2ODEsNiBAQAogCQkJCUE4OEFENDQ3MDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdEZWZzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDQ0OTA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHRGVzY0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4
QUQ0NEIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUE4OEFENDREMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODhBRDQ0RjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDQ1NTA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NTcwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCShyZXZpc2lvbiAxNTc4MCkKKysrIFdl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsMTEgQEAKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgIlRleHRE
b2N1bWVudC5oIgogCisjaWYgU1ZHX1NVUFBPUlQKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2lu
Y2x1ZGUgIlNWR0RvY3VtZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAv
LyBGSVhNRTogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpcyBzdGlsbCB3YWl0aW5nIGZvciBt
ZSB0byB1bmRlcnN0YW5kIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuCkBAIC00Niw2ICs1MSw2MSBA
QCBzdGF0aWMgYm9vbCBxdWFsaWZpZWROYW1lSXNNYWxmb3JtZWQoY29uCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCisjaWYgU1ZHX1NVUFBPUlQKK3N0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4m
IHN2Z0ZlYXR1cmVTZXQoKQoreworICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4qIHN2Z0ZlYXR1
cmVzID0gMDsKKyAgICBpZiAoIXN2Z0ZlYXR1cmVzKSB7CisgICAgICAgIHN2Z0ZlYXR1cmVzID0g
bmV3IEhhc2hTZXQ8U3RyaW5nPjsKKyAgICAgICAgCisgICAgICAgIC8vIDEuMSBmZWF0dXJlcwor
ICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJTVkciKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiU1ZHRE9NIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNWRy1TVEFUSUMiKTsKKyAg
ICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiU1ZHRE9NLVNUQVRJQyIpOworICAgICAgICBzdmdGZWF0
dXJlcy0+YWRkKCJTVkctQU5JTUFUSU9OIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNW
R0RPTS1BTklNQVRJT04iKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiU1ZHLURZTkFNSUMi
KTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiQ09SRUFUVFJJQlVURSIpOworICAgICAgICBz
dmdGZWF0dXJlcy0+YWRkKCJTVFJVQ1RVUkUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgi
Q09OVEFJTkVSQVRUUklCVVRFIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkNPTkRJVElP
QU5MUFJPQ0VTU0lORyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJJTUFHRSIpOworICAg
ICAgICBzdmdGZWF0dXJlcy0+YWRkKCJTVFlMRSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRk
KCJWSUVXUE9SVEFUVFJJQlVURSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJTSEFQRSIp
OworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJURVhUIik7CisgICAgICAgIHN2Z0ZlYXR1cmVz
LT5hZGQoIlBBSU5UQVRUUklCVVRFIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIk9QQUNJ
VFlBVFRSSUJVVEUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiR1JBUEhJQ1NBVFRSSUJV
VEUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiTUFSS0VSIik7CisgICAgICAgIHN2Z0Zl
YXR1cmVzLT5hZGQoIkNPTE9SUFJPRklMRSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJH
UkFESUVOVCIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJQQVRURVJOIik7CisgICAgICAg
IHN2Z0ZlYXR1cmVzLT5hZGQoIkNMSVAiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiTUFT
SyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJGSUxURVIiKTsKKyAgICAgICAgc3ZnRmVh
dHVyZXMtPmFkZCgiWExJTktBVFRSSUJVVEUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgi
Rk9OVCIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJFWFRFTlNJQklMSVRZIik7CisKKyAg
ICAgICAgLy8gMS4wIGZlYXR1cmVzCisgICAgICAgIC8vc3ZnRmVhdHVyZXMtPmFkZCgiU1ZHIik7
CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNWRy5TVEFUSUMiKTsKKyAgICAgICAgc3ZnRmVh
dHVyZXMtPmFkZCgiU1ZHLkFOSU1BVElPTiIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJT
VkcuRFlOQU1JQyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJET00iKTsKKyAgICAgICAg
c3ZnRmVhdHVyZXMtPmFkZCgiRE9NLlNWRyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJE
T00uU1ZHLlNUQVRJQyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJET00uU1ZHLkFOSU1B
VElPTiIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJET00uU1ZHLkRZTkFNSUMiKTsKKyAg
ICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiU1ZHLkFMTCIpOworICAgICAgICBzdmdGZWF0dXJlcy0+
YWRkKCJkb20uc3ZnLkFMTCIpOworICAgIH0KKyAgICByZXR1cm4gKnN2Z0ZlYXR1cmVzOworfQor
I2VuZGlmCisKIERPTUltcGxlbWVudGF0aW9uOjp+RE9NSW1wbGVtZW50YXRpb24oKQogewogfQpA
QCAtNjksNiArMTI5LDE5IEBAIGJvb2wgRE9NSW1wbGVtZW50YXRpb246Omhhc0ZlYXR1cmUgKGNv
bnMKICAgICAgICAgcmV0dXJuIHZlcnNpb24uaXNFbXB0eSgpIHx8IHZlcnNpb24gPT0gIjIuMCI7
CiAgICAgaWYgKGxvd2VyID09ICJ4cGF0aCIpCiAgICAgICAgIHJldHVybiB2ZXJzaW9uLmlzRW1w
dHkoKSB8fCB2ZXJzaW9uID09ICIzLjAiOworCisjaWYgU1ZHX1NVUFBPUlQKKyAgICBTdHJpbmcg
dXBwZXIgPSBmZWF0dXJlLnVwcGVyKCk7CisgICAgaWYgKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2
ZXJzaW9uID09ICIxLjEiKSAmJiB1cHBlci5zdGFydHNXaXRoKCJIVFRQOi8vV1dXLlczLk9SRy9U
Ui9TVkcxMS9GRUFUVVJFIyIpKSB7CisgICAgICAgIGlmIChzdmdGZWF0dXJlU2V0KCkuY29udGFp
bnModXBwZXIucmlnaHQodXBwZXIubGVuZ3RoKCkgLSAzNSkpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09
ICIxLjAiKSAmJiB1cHBlci5zdGFydHNXaXRoKCJPUkcuVzNDLiIpKSB7CisgICAgICAgIGlmIChz
dmdGZWF0dXJlU2V0KCkuY29udGFpbnModXBwZXIucmlnaHQobG93ZXIubGVuZ3RoKCkgLSA4KSkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICAKICAgICByZXR1
cm4gZmFsc2U7CiB9CkBAIC0xMzIsNiArMjA1LDkgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9N
SW1wbGVtZW50YXRpb246OgogICAgICAgICBpZiAocXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKHF1
YWxpZmllZE5hbWUpIHx8CiAgICAgICAgICAgICAoY29sb25wb3MgPj0gMCAmJiBuYW1lc3BhY2VV
UkkuaXNOdWxsKCkpIHx8CiAgICAgICAgICAgICAoY29sb25wb3MgPT0gMyAmJiBxdWFsaWZpZWRO
YW1lWzBdID09ICd4JyAmJiBxdWFsaWZpZWROYW1lWzFdID09ICdtJyAmJiBxdWFsaWZpZWROYW1l
WzJdID09ICdsJyAmJgorI2lmIFNWR19TVVBQT1JUCisgICAgICAgICAgICAgbmFtZXNwYWNlVVJJ
ICE9IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkgJiYKKyNlbmRpZgogICAgICAgICAgICAgIG5h
bWVzcGFjZVVSSSAhPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIikpIHsK
IAogICAgICAgICAgICAgZWMgPSBOQU1FU1BBQ0VfRVJSOwpAQCAtMTQ2LDcgKzIyMiwxNiBAQCBQ
YXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIAotICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jID0gbmV3IERvY3VtZW50KHRoaXMs
IDApOworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jOworI2lmIFNWR19TVVBQT1JUCisgICAgaWYg
KG5hbWVzcGFjZVVSSSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKSB7CisgICAgICAgIGRv
YyA9IG5ldyBTVkdEb2N1bWVudCh0aGlzLCAwKTsKKyAgICB9IGVsc2UgeworI2VuZGlmCisgICAg
ICAgIGRvYyA9IG5ldyBEb2N1bWVudCh0aGlzLCAwKTsKKyNpZiBTVkdfU1VQUE9SVAorICAgIH0K
KyNlbmRpZgogCiAgICAgLy8gbm93IGdldCB0aGUgaW50ZXJlc3RpbmcgcGFydHMgb2YgdGhlIGRv
Y3R5cGUKICAgICBpZiAoZG9jdHlwZSkKQEAgLTIxNCw0ICsyOTksMTEgQEAgUGFzc1JlZlB0cjxI
VE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aQogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0K
IAorI2lmIFNWR19TVVBQT1JUCitQYXNzUmVmUHRyPFNWR0RvY3VtZW50PiBET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlU1ZHRG9jdW1lbnQoRnJhbWVWaWV3KiB2KQoreworICAgIHJldHVybiBuZXcg
U1ZHRG9jdW1lbnQodGhpcywgdik7Cit9CisjZW5kaWYKKwogfQpJbmRleDogV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5oCShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgRG9jdW1lbnQ7CiBj
bGFzcyBEb2N1bWVudFR5cGU7CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CisjaWYgU1ZHX1NVUFBPUlQKK2NsYXNzIFNWR0RvY3VtZW50OworI2VuZGlmCiBjbGFzcyBTdHJp
bmc7CiBjbGFzcyBUZXh0RG9jdW1lbnQ7CiAKQEAgLTYxLDYgKzY0LDkgQEAgcHVibGljOgogICAg
IC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAgICBQYXNzUmVmUHRyPERvY3Vt
ZW50PiBjcmVhdGVEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7CiAgICAgUGFzc1JlZlB0cjxIVE1M
RG9jdW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7CisjaWYgU1ZHX1NV
UFBPUlQKKyAgICBQYXNzUmVmUHRyPFNWR0RvY3VtZW50PiBjcmVhdGVTVkdEb2N1bWVudChGcmFt
ZVZpZXcqID0gMCk7CisjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIHN0YXRpYyBpbnN0YW5j
ZSBvZiB0aGlzIGNsYXNzIC0gb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBzaG91bGQK
ICAgICAvLyBldmVyIGJlIHByZXNlbnQsIGFuZCBpcyB1c2VkIGFzIGEgZmFjdG9yeSBtZXRob2Qg
Zm9yIGNyZWF0aW5nIERvY3VtZW50IG9iamVjdHMKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbAkocmV2aXNp
b24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRE9NSW1wbGVt
ZW50YXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2Zwot
ewotCWludGVyZmFjZSBbbm9kcHRyLCBDb25kaXRpb25hbD1TVkddIFNWR0RPTUltcGxlbWVudGF0
aW9uIDogY29yZTo6RE9NSW1wbGVtZW50YXRpb24gewotCQlib29sZWFuIGhhc0ZlYXR1cmUoaW4g
Y29yZTo6RE9NU3RyaW5nIGZlYXR1cmUsCi0JCQkJCQkgICBpbiBjb3JlOjpET01TdHJpbmcgdmVy
c2lvbik7Ci0KLQkJLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLQkJY29yZTo6RG9jdW1l
bnRUeXBlIGNyZWF0ZURvY3VtZW50VHlwZShpbiBjb3JlOjpET01TdHJpbmcgcXVhbGlmaWVkTmFt
ZSwKLQkJCQkJCQkJCQlpbiBjb3JlOjpET01TdHJpbmcgcHVibGljSWQsCi0JCQkJCQkJCQkJaW4g
Y29yZTo6RE9NU3RyaW5nIHN5c3RlbUlkKQotCQkJCQkJCQkJCXJhaXNlcyhjb3JlOjpET01FeGNl
cHRpb24pOwotCi0JCS8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0JCWNvcmU6OkRvY3Vt
ZW50IGNyZWF0ZURvY3VtZW50KGluIGNvcmU6OkRPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0JCQkJ
CQkJCWluIGNvcmU6OkRPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotCQkJCQkJCQlpbiBjb3JlOjpE
b2N1bWVudFR5cGUgZG9jdHlwZSkKLQkJCQkJCQkJcmFpc2VzKGNvcmU6OkRPTUV4Y2VwdGlvbik7
Ci0KLQkJLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjogW3NwZWNpZmllZCBpbiBzZXBlcmF0
ZWQgRE9NSW1wbGVtZW50YXRpb25DU1NdCi0JCWNzczo6Q1NTU3R5bGVTaGVldCBjcmVhdGVDU1NT
dHlsZVNoZWV0KGluIGNvcmU6OkRPTVN0cmluZyB0aXRsZSwKLQkJCQkJCQkJCQkgIGluIGNvcmU6
OkRPTVN0cmluZyBtZWRpYSkgcmFpc2VzKGNvcmU6OkRPTUV4Y2VwdGlvbik7Ci0JfTsKLX07Cklu
ZGV4OiBXZWJDb3JlL2tzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE1
NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNp
bmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdD
b2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwCShy
ZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAKICNpbmNs
dWRlICJEZXByZWNhdGVkU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAia3N2Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyTGlz
dC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAx
NTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMTQgKzI2LDEzIEBACiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdab29tRXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdEb2N1bWVu
dDo6U1ZHRG9jdW1lbnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmlldykg
OiBEb2N1bWVudChpLCB2aWV3KQorU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50KERPTUltcGxlbWVu
dGF0aW9uICppLCBGcmFtZVZpZXcgKnZpZXcpIDogRG9jdW1lbnQoaSwgdmlldykKIHsKIH0KIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdFbGVtZW50OwogICAgIGNsYXNz
IFNWR1NWR0VsZW1lbnQ7Ci0gICAgY2xhc3MgU1ZHRE9NSW1wbGVtZW50YXRpb247CisgICAgY2xh
c3MgRE9NSW1wbGVtZW50YXRpb247CiAKICAgICBjbGFzcyBTVkdEb2N1bWVudCA6IHB1YmxpYyBE
b2N1bWVudCB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdEb2N1bWVudChTVkdET01JbXBsZW1l
bnRhdGlvbiAqaSwgRnJhbWVWaWV3ICp2aWV3KTsKKyAgICAgICAgU1ZHRG9jdW1lbnQoRE9NSW1w
bGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmlldyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0Rv
Y3VtZW50KCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdEb2N1bWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RP
TUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCkBAIC01NCw3
ICs1NCw3IEBAIFNWR0VsZW1lbnQ6On5TVkdFbGVtZW50KCkKIAogYm9vbCBTVkdFbGVtZW50Ojpp
c1N1cHBvcnRlZChTdHJpbmdJbXBsKiBmZWF0dXJlLCBTdHJpbmdJbXBsKiB2ZXJzaW9uKSBjb25z
dAogewotICAgIGlmIChTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKS0+aGFzRmVhdHVy
ZShmZWF0dXJlLCB2ZXJzaW9uKSkKKyAgICBpZiAoRE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNl
KCktPmhhc0ZlYXR1cmUoZmVhdHVyZSwgdmVyc2lvbikpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZl
YXR1cmUsIHZlcnNpb24pOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJTVkdG
RUJsZW5kRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0
aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc4MCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
TnVtYmVyTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc4MCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9z
aXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBA
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRl
eDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNs
dWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgi
CiAjaW5jbHVkZSAiU1ZHRkVMaWdodEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNp
bmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVy
LmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiRGVwcmVjYXRl
ZFN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUmVu
ZGVyU3R5bGUuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBA
CiAjaW5jbHVkZSAiU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUg
IlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc4
MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1l
cmF0aW9uLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVNZXJnZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVt
ZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw3ICszNiw2IEBACiAjaW5jbHVkZSAiU1ZHRkVPZmZzZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2lu
Y2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgotI2luY2x1ZGUgIlNW
R0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5oIgogCiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGUuaCIKICNpbmNsdWRlICJTVkdGRVRpbGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
RW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEludGVnZXIuaCIKLSNpbmNsdWRl
ICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJ
bmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0
aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3R5bGUuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4Lmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJBdHRy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU1ZHUG9pbnRMaXN0LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdG9wRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlNWR1JlbmRl
clN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlci5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTU3ODApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdNYXRy
aXguaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdUZXN0cy5jcHAJKHJldmlzaW9uIDE1NzgwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGVz
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTIgQEAKICNpbmNsdWRlICJTVkdU
ZXN0cy5oIgogCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIu
aCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKICNp
bmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQo
KSBjb25zdAogICAgIGZvcih1bnNpZ25lZCBsb25nIGkgPSAwO2kgPCBsaXN0LT5udW1iZXJPZkl0
ZW1zKCk7aSsrKQogICAgIHsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gU3RyaW5nKGxpc3QtPmdl
dEl0ZW0oaSkpOwotICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIVNWR0RPTUltcGxlbWVu
dGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKHZhbHVlLmltcGwoKSwgMCkpCisgICAgICAg
IGlmKHZhbHVlLmlzRW1wdHkoKSB8fCAhRE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKCktPmhh
c0ZlYXR1cmUodmFsdWUsIFN0cmluZygpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCShyZXZpc2lv
biAxNTc4MCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5j
bHVkZSAiU1ZHVHJhbnNmb3JtYWJsZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgImtzdmcuaCIKIApJbmRleDogV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lv
biAxNTc4MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDggKzg4LDggQEAKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMu
aCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50
YXRpb24uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNTgyLDcgKzU4Miw3
IEBAIHZvaWQgRnJhbWU6OmJlZ2luKGNvbnN0IEtVUkwmIHVybCkKIAogI2lmIFNWR19TVVBQT1JU
CiAgIGlmIChkLT5tX3JlcXVlc3QubV9yZXNwb25zZU1JTUVUeXBlID09ICJpbWFnZS9zdmcreG1s
IikKLSAgICBkLT5tX2RvYyA9IFNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5jcmVh
dGVEb2N1bWVudChkLT5tX3ZpZXcuZ2V0KCkpOworICAgIGQtPm1fZG9jID0gRE9NSW1wbGVtZW50
YXRpb246Omluc3RhbmNlKCktPmNyZWF0ZVNWR0RvY3VtZW50KGQtPm1fdmlldy5nZXQoKSk7CiAg
IGVsc2UKICNlbmRpZgogICBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUoZC0+
bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSkpCg==
</data>
<flag name="review"
          id="3044"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9871</attachid>
            <date>2006-08-04 07:23:31 -0700</date>
            <delta_ts>2006-08-05 14:29:53 -0700</delta_ts>
            <desc>improved patch</desc>
            <filename>10230-3.diff</filename>
            <type>text/plain</type>
            <size>29516</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMDYtMDgtMDMgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5P
IFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMzAKKyAgICAgICAgU1ZHRE9NSW1wbGVt
ZW50YXRpb24gc2hvdWxkIGRpZSAoYW5kIGJlIHJvbGxlZCBpbnRvIERPTUltcGxlbWVudGF0aW9u
KQorCisgICAgICAgIERlbGV0ZSBTVkdET01JbXBsZW1lbnRhdGlvbiBhbmQgcmVmZXJlbmNlcyB0
byBpdC4gVGhlCisgICAgICAgIHN2ZyBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IGlzIG5vdyBpbiBE
T01JbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c3ZnRmVhdHVyZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6aGFzRmVhdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNy
ZWF0ZVNWR0RvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoKKyAg
ICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBrc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpTVkdEb2N1
bWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0RvY3VtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6aXNT
dXBwb3J0ZWQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHA6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RUZsb29kRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtz
dmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVU
aWxlRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU3RvcEVsZW1l
bnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBrc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdUZXN0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6
aXNWYWxpZCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwOgorICAg
ICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmJlZ2luKToK
KwogMjAwNi0wOC0wMyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGZvciBidWcgMTAyMjksIGRvbid0IGJvdGhlciB0cnlpbmcgdG8gY2xlYXIgd2hlbiBubyBm
bG9hdHMgYXJlCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA1Miw4ICsxMDUyLDYgQEAKIAkJQTg4QUQ0NEEw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR0Rlc2NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
RGVzY0VsZW1lbnQuaCAqLzsgfTsKIAkJQTg4QUQ0NEIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Rv
Y3VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGODM3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi87IH07CiAJCUE4
OEFENDRDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0RvY3VtZW50LmggKi87IH07Ci0JCUE4OEFENDREMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdE
T01JbXBsZW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEMwRjgzOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRp
b24uY3BwICovOyB9OwotCQlBODhBRDQ0RTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVt
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovOyB9
OwogCQlBODhBRDQ0RjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQjA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHRWxlbWVudC5jcHAgKi87IH07CiAJCUE4OEFENDUwMDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgzQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovOyB9Owog
CQlBODhBRDQ1MjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzRTA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggKi87IH07CkBAIC0yNzY0LDggKzI3NjIs
NiBAQAogCQlBOEMwRjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdEZXNjRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJQThDMEY4MzcwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRG9j
dW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRG9jdW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07Ci0JCUE4QzBGODM5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR0RPTUltcGxlbWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBT
VkdET01JbXBsZW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR0RPTUltcGxlbWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzQjA4OTcwMUYz
MDBCQTUxMTQgLyogU1ZHRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4M0MwODk3MDFG
MzAwQkE1MTE0IC8qIFNWR0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzRDA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHRWxlbWVudEluc3RhbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVudEluc3RhbmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC00NjMz
LDggKzQ2MjksNiBAQAogCQkJCUE4QzBGODM3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVu
dC5jcHAgKi8sCiAJCQkJQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50Lmgg
Ki8sCiAJCQkJQTgzM0I5OTMwQTJCNzdENTAwRDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCAqLywK
LQkJCQlBOEMwRjgzOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3Bw
ICovLAotCQkJCUE4QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlv
bi5oICovLAogCQkJCUE4QzBGODNCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50LmNwcCAq
LywKIAkJCQlBOEMwRjgzQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovLAogCQkJ
CUE4MzNDNUU3MEEyQ0NCQTQwMEQ1NzY2NCAvKiBTVkdFbGVtZW50LmlkbCAqLywKQEAgLTU3NjYs
NyArNTc2MCw2IEBACiAJCQkJQTg4QUQ0NDgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RlZnNFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQ0QTA5NTI0OEYwMDAxREQxOTYgLyogU1ZH
RGVzY0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDRDMDk1MjQ4RjAwMDFERDE5
NiAvKiBTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0NEUwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR0RPTUltcGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhB
RDQ1MDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTg4QUQ0NTIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg4QUQ0NTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5j
ZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNjY4OCw3ICs2NjgxLDYgQEAKIAkJCQlBODhBRDQ0
NzA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRGVmc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTg4QUQ0NDkwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Rlc2NFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4OEFENDRCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBODhBRDQ0RDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1w
bGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NEYwOTUyNDhGMDAwMURE
MTk2IC8qIFNWR0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NTUwOTUyNDhG
MDAwMUREMTk2IC8qIFNWR0VsbGlwc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
OEFENDU3MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNp
b24gMTU3OTYpCisrKyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM0LDYgKzM0LDExIEBACiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIK
ICNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaXMgc3Rp
bGwgd2FpdGluZyBmb3IgbWUgdG8gdW5kZXJzdGFuZCB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbgpA
QCAtNDYsNiArNTEsNjEgQEAgc3RhdGljIGJvb2wgcXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKGNv
bgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIFNWR19TVVBQT1JUCitzdGF0aWMgY29uc3Qg
SGFzaFNldDxTdHJpbmc+JiBzdmdGZWF0dXJlU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxT
dHJpbmc+KiBzdmdGZWF0dXJlcyA9IDA7CisgICAgaWYgKCFzdmdGZWF0dXJlcykgeworICAgICAg
ICBzdmdGZWF0dXJlcyA9IG5ldyBIYXNoU2V0PFN0cmluZz47CisgICAgICAgIAorICAgICAgICAv
LyAxLjEgZmVhdHVyZXMKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgic3ZnIik7CisgICAgICAg
IHN2Z0ZlYXR1cmVzLT5hZGQoInN2Z2RvbSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJz
dmctc3RhdGljIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoInN2Z2RvbS1zdGF0aWMiKTsK
KyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgic3ZnLWFuaW1hdGlvbiIpOworICAgICAgICBzdmdG
ZWF0dXJlcy0+YWRkKCJzdmdkb20tYW5pbWF0aW9uIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5h
ZGQoInN2Zy1keW5hbWljIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoImNvcmVhdHRyaWJ1
dGUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgic3RydWN0dXJlIik7CisgICAgICAgIHN2
Z0ZlYXR1cmVzLT5hZGQoImNvbnRhaW5lcmF0dHJpYnV0ZSIpOworICAgICAgICBzdmdGZWF0dXJl
cy0+YWRkKCJjb25kaXRpb25hbHByb2Nlc3NpbmciKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiaW1hZ2UiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgic3R5bGUiKTsKKyAgICAgICAg
c3ZnRmVhdHVyZXMtPmFkZCgidmlld3BvcnRhdHRyaWJ1dGUiKTsKKyAgICAgICAgc3ZnRmVhdHVy
ZXMtPmFkZCgic2hhcGUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgidGV4dCIpOworICAg
ICAgICBzdmdGZWF0dXJlcy0+YWRkKCJwYWludGF0dHJpYnV0ZSIpOworICAgICAgICBzdmdGZWF0
dXJlcy0+YWRkKCJvcGFjaXR5YXR0cmlidXRlIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQo
ImdyYXBoaWNzYXR0cmlidXRlIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIm1hcmtlciIp
OworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJjb2xvcnByb2ZpbGUiKTsKKyAgICAgICAgc3Zn
RmVhdHVyZXMtPmFkZCgiZ3JhZGllbnQiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgicGF0
dGVybiIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJjbGlwIik7CisgICAgICAgIHN2Z0Zl
YXR1cmVzLT5hZGQoIm1hc2siKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiZmlsdGVyIik7
CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoInhsaW5rYXR0cmlidXRlIik7CisgICAgICAgIHN2
Z0ZlYXR1cmVzLT5hZGQoImZvbnQiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiZXh0ZW5z
aWJpbGl0eSIpOworCisgICAgICAgIC8vIDEuMCBmZWF0dXJlcworICAgICAgICAvL3N2Z0ZlYXR1
cmVzLT5hZGQoInN2ZyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJzdmcuc3RhdGljIik7
CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoInN2Zy5hbmltYXRpb24iKTsKKyAgICAgICAgc3Zn
RmVhdHVyZXMtPmFkZCgic3ZnLmR5bmFtaWMiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgi
ZG9tIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoImRvbS5zdmciKTsKKyAgICAgICAgc3Zn
RmVhdHVyZXMtPmFkZCgiZG9tLnN2Zy5zdGF0aWMiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiZG9tLnN2Zy5hbmltYXRpb24iKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiZG9tLnN2
Zy5keW5hbWljIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoInN2Zy5hbGwiKTsKKyAgICAg
ICAgc3ZnRmVhdHVyZXMtPmFkZCgiZG9tLnN2Zy5hbGwiKTsKKyAgICB9CisgICAgcmV0dXJuICpz
dmdGZWF0dXJlczsKK30KKyNlbmRpZgorCiBET01JbXBsZW1lbnRhdGlvbjo6fkRPTUltcGxlbWVu
dGF0aW9uKCkKIHsKIH0KQEAgLTY5LDYgKzEyOSwxOCBAQCBib29sIERPTUltcGxlbWVudGF0aW9u
OjpoYXNGZWF0dXJlIChjb25zCiAgICAgICAgIHJldHVybiB2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2
ZXJzaW9uID09ICIyLjAiOwogICAgIGlmIChsb3dlciA9PSAieHBhdGgiKQogICAgICAgICByZXR1
cm4gdmVyc2lvbi5pc0VtcHR5KCkgfHwgdmVyc2lvbiA9PSAiMy4wIjsKKworI2lmIFNWR19TVVBQ
T1JUCisgICAgaWYgKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09ICIxLjEiKSAmJiBm
ZWF0dXJlLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjIiwg
ZmFsc2UpKSB7CisgICAgICAgIGlmIChzdmdGZWF0dXJlU2V0KCkuY29udGFpbnMobG93ZXIucmln
aHQobG93ZXIubGVuZ3RoKCkgLSAzNSkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgaWYgKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09ICIxLjAiKSAmJiBm
ZWF0dXJlLnN0YXJ0c1dpdGgoIm9yZy53M2MuIiwgZmFsc2UpKSB7CisgICAgICAgIGlmIChzdmdG
ZWF0dXJlU2V0KCkuY29udGFpbnMobG93ZXIucmlnaHQobG93ZXIubGVuZ3RoKCkgLSA4KSkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICAKICAgICByZXR1cm4g
ZmFsc2U7CiB9CkBAIC0xMzIsNiArMjA0LDkgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1w
bGVtZW50YXRpb246OgogICAgICAgICBpZiAocXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKHF1YWxp
ZmllZE5hbWUpIHx8CiAgICAgICAgICAgICAoY29sb25wb3MgPj0gMCAmJiBuYW1lc3BhY2VVUkku
aXNOdWxsKCkpIHx8CiAgICAgICAgICAgICAoY29sb25wb3MgPT0gMyAmJiBxdWFsaWZpZWROYW1l
WzBdID09ICd4JyAmJiBxdWFsaWZpZWROYW1lWzFdID09ICdtJyAmJiBxdWFsaWZpZWROYW1lWzJd
ID09ICdsJyAmJgorI2lmIFNWR19TVVBQT1JUCisgICAgICAgICAgICAgbmFtZXNwYWNlVVJJICE9
IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkgJiYKKyNlbmRpZgogICAgICAgICAgICAgIG5hbWVz
cGFjZVVSSSAhPSAiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIikpIHsKIAog
ICAgICAgICAgICAgZWMgPSBOQU1FU1BBQ0VfRVJSOwpAQCAtMTQ2LDcgKzIyMSwxMyBAQCBQYXNz
UmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jID0gbmV3IERvY3VtZW50KHRoaXMsIDAp
OworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jOworI2lmIFNWR19TVVBQT1JUCisgICAgaWYgKG5h
bWVzcGFjZVVSSSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQorICAgICAgICBkb2MgPSBu
ZXcgU1ZHRG9jdW1lbnQodGhpcywgMCk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIGRvYyA9
IG5ldyBEb2N1bWVudCh0aGlzLCAwKTsKIAogICAgIC8vIG5vdyBnZXQgdGhlIGludGVyZXN0aW5n
IHBhcnRzIG9mIHRoZSBkb2N0eXBlCiAgICAgaWYgKGRvY3R5cGUpCkBAIC0yMTQsNCArMjk1LDEx
IEBAIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGkKICAgICByZXR1cm4g
ZC5yZWxlYXNlKCk7CiB9CiAKKyNpZiBTVkdfU1VQUE9SVAorUGFzc1JlZlB0cjxTVkdEb2N1bWVu
dD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZVNWR0RvY3VtZW50KEZyYW1lVmlldyogdikKK3sK
KyAgICByZXR1cm4gbmV3IFNWR0RvY3VtZW50KHRoaXMsIHYpOworfQorI2VuZGlmCisKIH0KSW5k
ZXg6IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBAIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRnJhbWVWaWV3OwogY2xh
c3MgSFRNTERvY3VtZW50OworI2lmIFNWR19TVVBQT1JUCitjbGFzcyBTVkdEb2N1bWVudDsKKyNl
bmRpZgogY2xhc3MgU3RyaW5nOwogY2xhc3MgVGV4dERvY3VtZW50OwogCkBAIC02MSw2ICs2NCw5
IEBAIHB1YmxpYzoKICAgICAvLyBPdGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00pCiAgICAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoRnJhbWVWaWV3KiA9IDApOwogICAg
IFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBjcmVhdGVIVE1MRG9jdW1lbnQoRnJhbWVWaWV3KiA9
IDApOworI2lmIFNWR19TVVBQT1JUCisgICAgUGFzc1JlZlB0cjxTVkdEb2N1bWVudD4gY3JlYXRl
U1ZHRG9jdW1lbnQoRnJhbWVWaWV3KiA9IDApOworI2VuZGlmCiAKICAgICAvLyBSZXR1cm5zIHRo
ZSBzdGF0aWMgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyAtIG9ubHkgb25lIGluc3RhbmNlIG9mIHRo
aXMgY2xhc3Mgc2hvdWxkCiAgICAgLy8gZXZlciBiZSBwcmVzZW50LCBhbmQgaXMgdXNlZCBhcyBh
IGZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBEb2N1bWVudCBvYmplY3RzCkluZGV4OiBXZWJD
b3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdET01JbXBsZW1lbnRh
dGlvbi5pZGwJKHJldmlzaW9uIDE1Nzk2KQorKysgV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLW1vZHVsZSBzdmcKLXsKLQlpbnRlcmZhY2UgW25vZHB0ciwgQ29uZGl0aW9uYWw9U1ZHXSBT
VkdET01JbXBsZW1lbnRhdGlvbiA6IGNvcmU6OkRPTUltcGxlbWVudGF0aW9uIHsKLQkJYm9vbGVh
biBoYXNGZWF0dXJlKGluIGNvcmU6OkRPTVN0cmluZyBmZWF0dXJlLAotCQkJCQkJICAgaW4gY29y
ZTo6RE9NU3RyaW5nIHZlcnNpb24pOwotCi0JCS8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6
Ci0JCWNvcmU6OkRvY3VtZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUoaW4gY29yZTo6RE9NU3Ry
aW5nIHF1YWxpZmllZE5hbWUsCi0JCQkJCQkJCQkJaW4gY29yZTo6RE9NU3RyaW5nIHB1YmxpY0lk
LAotCQkJCQkJCQkJCWluIGNvcmU6OkRPTVN0cmluZyBzeXN0ZW1JZCkKLQkJCQkJCQkJCQlyYWlz
ZXMoY29yZTo6RE9NRXhjZXB0aW9uKTsKLQotCQkvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAy
OgotCQljb3JlOjpEb2N1bWVudCBjcmVhdGVEb2N1bWVudChpbiBjb3JlOjpET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLAotCQkJCQkJCQlpbiBjb3JlOjpET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKLQkJ
CQkJCQkJaW4gY29yZTo6RG9jdW1lbnRUeXBlIGRvY3R5cGUpCi0JCQkJCQkJCXJhaXNlcyhjb3Jl
OjpET01FeGNlcHRpb24pOwotCi0JCS8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6IFtzcGVj
aWZpZWQgaW4gc2VwZXJhdGVkIERPTUltcGxlbWVudGF0aW9uQ1NTXQotCQljc3M6OkNTU1N0eWxl
U2hlZXQgY3JlYXRlQ1NTU3R5bGVTaGVldChpbiBjb3JlOjpET01TdHJpbmcgdGl0bGUsCi0JCQkJ
CQkJCQkJICBpbiBjb3JlOjpET01TdHJpbmcgbWVkaWEpIHJhaXNlcyhjb3JlOjpET01FeGNlcHRp
b24pOwotCX07Ci19OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIu
Y3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUva3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVk
dWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJTVkdB
bmltYXRlQ29sb3JFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR01hdHJpeC5oIgogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgpJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0NvbG9yLmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdD
b2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJTVkdD
b2xvci5oIgogCiAjaW5jbHVkZSAiRGVwcmVjYXRlZFN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgImtzdmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJl
ci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZE51bWJlckxpc3QuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50
LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxMyBAQAogCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTVkdF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50KFNWR0RPTUltcGxlbWVudGF0aW9uICppLCBG
cmFtZVZpZXcgKnZpZXcpIDogRG9jdW1lbnQoaSwgdmlldykKK1NWR0RvY3VtZW50OjpTVkdEb2N1
bWVudChET01JbXBsZW1lbnRhdGlvbiAqaSwgRnJhbWVWaWV3ICp2aWV3KSA6IERvY3VtZW50KGks
IHZpZXcpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkocmV2aXNpb24gMTU3
OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCwxMSArMzAsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHRWxl
bWVudDsKICAgICBjbGFzcyBTVkdTVkdFbGVtZW50OwotICAgIGNsYXNzIFNWR0RPTUltcGxlbWVu
dGF0aW9uOworICAgIGNsYXNzIERPTUltcGxlbWVudGF0aW9uOwogCiAgICAgY2xhc3MgU1ZHRG9j
dW1lbnQgOiBwdWJsaWMgRG9jdW1lbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHRG9jdW1l
bnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmlldyk7CisgICAgICAgIFNW
R0RvY3VtZW50KERPTUltcGxlbWVudGF0aW9uICppLCBGcmFtZVZpZXcgKnZpZXcpOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdEb2N1bWVudCgpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29s
IGlzU1ZHRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTEgKzI2LDExIEBACiAKICNpbmNsdWRl
ICJBdHRyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJET01JbXBsZW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50
RXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU1ZHRWxl
bWVudC5oIgpAQCAtNTQsNyArNTQsNyBAQCBTVkdFbGVtZW50Ojp+U1ZHRWxlbWVudCgpCiAKIGJv
b2wgU1ZHRWxlbWVudDo6aXNTdXBwb3J0ZWQoU3RyaW5nSW1wbCogZmVhdHVyZSwgU3RyaW5nSW1w
bCogdmVyc2lvbikgY29uc3QKIHsKLSAgICBpZiAoU1ZHRE9NSW1wbGVtZW50YXRpb246Omluc3Rh
bmNlKCktPmhhc0ZlYXR1cmUoZmVhdHVyZSwgdmVyc2lvbikpCisgICAgaWYgKERPTUltcGxlbWVu
dGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2Uo
KS0+aGFzRmVhdHVyZShmZWF0dXJlLCB2ZXJzaW9uKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFQmxlbmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Nzk2KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBA
CiAjaW5jbHVkZSAiU1ZHRkVCbGVuZEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRl
eDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkocmV2
aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRh
dGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlICJTVkdB
bmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0
aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Nzk2KQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5n
LmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0ZFTGlnaHRFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5
NikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZEVu
dW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZE51bWJlci5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RUZsb29kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVG
bG9vZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0ZFRmxvb2RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2lu
Y2x1ZGUgIkRlcHJlY2F0ZWRTdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgog
I2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Nzk2KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJp
bmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9u
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVNZXJnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBA
QAogI2luY2x1ZGUgIlNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1
ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1Nzk2KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNWR0ZFT2Zmc2V0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Nzk2KQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHRkVMaWdodEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuaCIKIAogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVRp
bGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHRkVUaWxlRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRp
b24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRJbnRl
Z2VyLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1w
bGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdOYW1l
cy5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNiBA
QAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRT
dHJpbmcuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKLSNpbmNsdWRl
ICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1
ZGUgIlNWR01hdHJpeC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAog
CiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1BvaW50TGlzdC5oIgpJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1N0b3BFbGVtZW50LmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdG9wRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNp
bmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR1N0b3BFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRh
dGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1Nzk2KQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYg
QEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyUGF0aC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAj
aW5jbHVkZSAiU1ZHTWF0cml4LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRU
cmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTdHls
ZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHVGVzdHMuY3BwCShyZXZpc2lvbiAxNTc5NikKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDEyIEBA
CiAjaW5jbHVkZSAiU1ZHVGVzdHMuaCIKIAogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCi0jaW5jbHVk
ZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdT
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0
aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsNyArNjgsNyBAQCBib29sIFNW
R1Rlc3RzOjppc1ZhbGlkKCkgY29uc3QKICAgICBmb3IodW5zaWduZWQgbG9uZyBpID0gMDtpIDwg
bGlzdC0+bnVtYmVyT2ZJdGVtcygpO2krKykKICAgICB7CiAgICAgICAgIFN0cmluZyB2YWx1ZSA9
IFN0cmluZyhsaXN0LT5nZXRJdGVtKGkpKTsKLSAgICAgICAgaWYodmFsdWUuaXNFbXB0eSgpIHx8
ICFTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKS0+aGFzRmVhdHVyZSh2YWx1ZS5pbXBs
KCksIDApKQorICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIURPTUltcGxlbWVudGF0aW9u
OjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKHZhbHVlLCBTdHJpbmcoKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zv
cm1hYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zvcm1h
YmxlLmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUcmFuc2Zv
cm1hYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIlNW
R01hdHJpeC5oIgogI2luY2x1ZGUgIlNWR1RyYW5zZm9ybWFibGUuaCIKICNpbmNsdWRlICJTVkdT
dHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKICNpbmNsdWRlICJrc3ZnLmgiCiAKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAkocmV2aXNpb24gMTU3OTYpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04OSw4ICs4OSw4IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNs
dWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTVkdE
b2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5oIgotI2luY2x1ZGUg
IlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
QEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIEZyYW1lOjpiZWdpbihjb25zdCBLVVJMJiB1cmwpCiAK
ICNpZiBTVkdfU1VQUE9SVAogICBpZiAoZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSA9
PSAiaW1hZ2Uvc3ZnK3htbCIpCi0gICAgZC0+bV9kb2MgPSBTVkdET01JbXBsZW1lbnRhdGlvbjo6
aW5zdGFuY2UoKS0+Y3JlYXRlRG9jdW1lbnQoZC0+bV92aWV3LmdldCgpKTsKKyAgICBkLT5tX2Rv
YyA9IERPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5jcmVhdGVTVkdEb2N1bWVudChkLT5t
X3ZpZXcuZ2V0KCkpOwogICBlbHNlCiAjZW5kaWYKICAgaWYgKERPTUltcGxlbWVudGF0aW9uOjpp
c1hNTE1JTUVUeXBlKGQtPm1fcmVxdWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUpKQo=
</data>
<flag name="review"
          id="3056"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9894</attachid>
            <date>2006-08-05 14:29:53 -0700</date>
            <delta_ts>2006-08-07 02:28:40 -0700</delta_ts>
            <desc>Now with testcase</desc>
            <filename>10230-4.diff</filename>
            <type>text/plain</type>
            <size>41905</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1ODA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYtMDgtMDUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgY2FzZSBmb3IKKyAgICAgICAgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyMzA+CisgICAgICAgIFNWR0RPTUltcGxlbWVudGF0aW9uIHNob3Vs
ZCBkaWUgKGFuZCBiZSByb2xsZWQgaW50byBET01JbXBsZW1lbnRhdGlvbikKKworICAgICAgICAq
IHN2Zy9jdXN0b20vc3ZnLWZlYXR1cmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9zdmctZmVhdHVyZXMuaHRtbDogQWRkZWQuCisKIDIwMDYtMDgtMDUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctZmVhdHVyZXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWZlYXR1cmVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWZlYXR1cmVz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorIm9yZy53M2Muc3Zn
IiwgIjEuMCI6IHRydWUsIHRydWUKKyJvcmcudzNjLnN2Zy5zdGF0aWMiLCAiMS4wIjogdHJ1ZSwg
dHJ1ZQorIm9yZy53M2Muc3ZnLmFuaW1hdGlvbiIsICIxLjAiOiBmYWxzZSwgZmFsc2UKKyJvcmcu
dzNjLnN2Zy5keW5hbWljIiwgIjEuMCI6IGZhbHNlLCBmYWxzZQorIm9yZy53M2MuZG9tIiwgIjEu
MCI6IHRydWUsIHRydWUKKyJvcmcudzNjLmRvbS5zdmciLCAiMS4wIjogdHJ1ZSwgdHJ1ZQorIm9y
Zy53M2MuZG9tLnN2Zy5zdGF0aWMiLCAiMS4wIjogdHJ1ZSwgdHJ1ZQorIm9yZy53M2MuZG9tLnN2
Zy5hbmltYXRpb24iLCAiMS4wIjogZmFsc2UsIGZhbHNlCisib3JnLnczYy5kb20uc3ZnLmR5bmFt
aWMiLCAiMS4wIjogZmFsc2UsIGZhbHNlCisib3JnLnczYy5zdmcuYWxsIiwgIjEuMCI6IGZhbHNl
LCBmYWxzZQorIm9yZy53M2MuZG9tLnN2Zy5hbGwiLCAiMS4wIjogZmFsc2UsIGZhbHNlCisiaHR0
cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkciLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHRE9NIiwgIjEuMSI6IHRydWUs
IHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1zdGF0aWMiLCAi
MS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZH
RE9NLXN0YXRpYyIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNTVkctYW5pbWF0aW9uIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHRE9NLWFuaW1hdGlvbiIsICIxLjEiOiBmYWxz
ZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1keW5hbWlj
IiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjU1ZHRE9NLWR5bmFtaWMiLCAiMS4xIjogZmFsc2UsIGZhbHNlCisiaHR0cDovL3d3dy53My5v
cmcvVFIvU1ZHMTEvZmVhdHVyZSNDb3JlQXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJo
dHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1N0cnVjdHVyZSIsICIxLjEiOiB0cnVl
LCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY1N0cnVjdHVy
ZSIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVy
ZSNDb250YWluZXJBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMu
b3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29uZGl0aW9uYWxQcm9jZXNzaW5nIiwgIjEuMSI6IHRydWUs
IHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0ltYWdlIiwgIjEuMSI6
IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1N0eWxlIiwg
IjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1Zp
ZXdwb3J0QXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI1NoYXBlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9TVkcxMS9mZWF0dXJlI1RleHQiLCAiMS4xIjogZmFsc2UsIGZhbHNlCisiaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY1RleHQiLCAiMS4xIjogZmFsc2UsIGZh
bHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYWludEF0dHJpYnV0ZSIs
ICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNC
YXNpY1BhaW50QXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI09wYWNpdHlBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjR3JhcGhpY3NBdHRyaWJ1dGUiLCAi
MS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFz
ZUdyYXBoaWNzQXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI01hcmtlciIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNDb2xvclByb2ZpbGUiLCAiMS4xIjogZmFsc2UsIGZh
bHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNHcmFkaWVudCIsICIxLjEi
OiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYXR0ZXJu
IiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJl
I0NsaXAiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2Zl
YXR1cmUjQmFzaWNDbGlwIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI01hc2siLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMu
b3JnL1RSL1NWRzExL2ZlYXR1cmUjRmlsdGVyIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNGaWx0ZXIiLCAiMS4xIjogZmFsc2Us
IGZhbHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNEb2N1bWVudEV2ZW50
c0F0dHJpYnV0ZSIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNHcmFwaGljYWxFdmVudHNBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQW5pbWF0aW9uRXZlbnRzQXR0cmli
dXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI0N1cnNvciIsICIxLjEiOiBmYWxzZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0h5cGVybGlua2luZyIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNYbGlua0F0dHJpYnV0ZSIsICIxLjEiOiB0cnVlLCB0
cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NW
RzExL2ZlYXR1cmUjVmlldyIsICIxLjEiOiBmYWxzZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1NjcmlwdCIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNBbmltYXRpb24iLCAiMS4xIjogZmFsc2UsIGZhbHNl
CisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNGb250IiwgIjEuMSI6IGZhbHNl
LCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNGb250Iiwg
IjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
RXh0ZW5zaWJpbGl0eSIsICIxLjEiOiB0cnVlLCB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1mZWF0dXJlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vc3ZnLWZlYXR1cmVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1mZWF0dXJlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACis8
c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgIHZhciB1bmRlZmluZWQ7CisKKyAgICB2YXIgZmVhdHVyZXMgPSBbCisgICAgICAgIFsib3Jn
LnczYy5zdmciLCAiMS4wIl0sCisgICAgICAgIFsib3JnLnczYy5zdmcuc3RhdGljIiwgIjEuMCJd
LAorICAgICAgICBbIm9yZy53M2Muc3ZnLmFuaW1hdGlvbiIsICIxLjAiXSwKKyAgICAgICAgWyJv
cmcudzNjLnN2Zy5keW5hbWljIiwgIjEuMCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tIiwgIjEu
MCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tLnN2ZyIsICIxLjAiXSwKKyAgICAgICAgWyJvcmcu
dzNjLmRvbS5zdmcuc3RhdGljIiwgIjEuMCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tLnN2Zy5h
bmltYXRpb24iLCAiMS4wIl0sCisgICAgICAgIFsib3JnLnczYy5kb20uc3ZnLmR5bmFtaWMiLCAi
MS4wIl0sCisgICAgICAgIFsib3JnLnczYy5zdmcuYWxsIiwgIjEuMCJdLAorICAgICAgICBbIm9y
Zy53M2MuZG9tLnN2Zy5hbGwiLCAiMS4wIl0sCisKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1NWRyIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWR0RPTSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8v
d3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1zdGF0aWMiLCAiMS4xIl0sCisgICAgICAg
IFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkdET00tc3RhdGljIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHLWFu
aW1hdGlvbiIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9m
ZWF0dXJlI1NWR0RPTS1hbmltYXRpb24iLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53
My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkctZHluYW1pYyIsICIxLjEiXSwKKyAgICAgICAgWyJo
dHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWR0RPTS1keW5hbWljIiwgIjEuMSJd
LAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29yZUF0dHJp
YnV0ZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI1N0cnVjdHVyZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0Jhc2ljU3RydWN0dXJlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29udGFpbmVyQXR0cmlidXRlIiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29uZGl0aW9uYWxQ
cm9jZXNzaW5nIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzEx
L2ZlYXR1cmUjSW1hZ2UiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIv
U1ZHMTEvZmVhdHVyZSNTdHlsZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1ZpZXdwb3J0QXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBb
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU2hhcGUiLCAiMS4xIl0sCisgICAg
ICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNUZXh0IiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNUZXh0Iiwg
IjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjUGFp
bnRBdHRyaWJ1dGUiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNCYXNpY1BhaW50QXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjT3BhY2l0eUF0dHJpYnV0ZSIsICIxLjEiXSwK
KyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0dyYXBoaWNzQXR0
cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2Zl
YXR1cmUjQmFzZUdyYXBoaWNzQXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjTWFya2VyIiwgIjEuMSJdLAorICAgICAgICBbImh0
dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29sb3JQcm9maWxlIiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjR3JhZGllbnQiLCAi
MS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYXR0
ZXJuIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjQ2xpcCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9m
ZWF0dXJlI0Jhc2ljQ2xpcCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI01hc2siLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5v
cmcvVFIvU1ZHMTEvZmVhdHVyZSNGaWx0ZXIiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY0ZpbHRlciIsICIxLjEiXSwKKyAgICAgICAg
WyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0RvY3VtZW50RXZlbnRzQXR0cmli
dXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjR3JhcGhpY2FsRXZlbnRzQXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQW5pbWF0aW9uRXZlbnRzQXR0cmlidXRlIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ3Vyc29y
IiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
SHlwZXJsaW5raW5nIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NW
RzExL2ZlYXR1cmUjWGxpbmtBdHRyaWJ1dGUiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjVmlldyIs
ICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1Nj
cmlwdCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI0FuaW1hdGlvbiIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0ZvbnQiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcv
VFIvU1ZHMTEvZmVhdHVyZSNCYXNpY0ZvbnQiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5IiwgIjEuMSJdXQorCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBmZWF0dXJlcy5sZW5ndGg7ICsraSkKKyAgICB7CisgICAgICAg
IHZhciBpdGVtID0gZmVhdHVyZXNbaV07CisgICAgICAgIGlmIChpdGVtWzFdID09ICJvbWl0dGVk
IikgeworICAgICAgICAgICAgdmFyIGhhc0ZlYXR1cmUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5oYXNGZWF0dXJlKGl0ZW1bMF0pOworICAgICAgICAgICAgdmFyIGlzU3VwcG9ydGVkID0gZG9j
dW1lbnQuYm9keS5pc1N1cHBvcnRlZChpdGVtWzBdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHZhciBoYXNGZWF0dXJlID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVy
ZShpdGVtWzBdLCBpdGVtWzFdKTsKKyAgICAgICAgICAgIHZhciBpc1N1cHBvcnRlZCA9IGRvY3Vt
ZW50LmJvZHkuaXNTdXBwb3J0ZWQoaXRlbVswXSwgaXRlbVsxXSk7CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgaXRlbTBTdHJpbmcgPSBpdGVtWzBdOworICAgICAgICBpZiAodHlwZW9mIGl0ZW0w
U3RyaW5nID09ICJzdHJpbmciKQorICAgICAgICAgICAgaXRlbTBTdHJpbmcgPSAnIicgKyBpdGVt
MFN0cmluZyArICciJzsKKyAgICAgICAgdmFyIGl0ZW0xU3RyaW5nID0gaXRlbVsxXTsKKyAgICAg
ICAgaWYgKHR5cGVvZiBpdGVtMVN0cmluZyA9PSAic3RyaW5nIiAmJiBpdGVtWzFdICE9ICJvbWl0
dGVkIikKKyAgICAgICAgICAgIGl0ZW0xU3RyaW5nID0gJyInICsgaXRlbTFTdHJpbmcgKyAnIic7
CisgICAgICAgIHZhciBtZXNzYWdlID0gaXRlbTBTdHJpbmcgKyAnLCAnICsgaXRlbTFTdHJpbmcg
KyAnOiAnICsgaGFzRmVhdHVyZSArICcsICcgKyBpc1N1cHBvcnRlZDsKKworICAgICAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRpdi5pbm5lckhU
TUwgPSBtZXNzYWdlOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgfQorfQorCis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPC9ib2R5PgpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE1ODA4KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw1OSBAQAorMjAwNi0wOC0wNSAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3pp
bGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIzMAorICAgICAgICBTVkdET01J
bXBsZW1lbnRhdGlvbiBzaG91bGQgZGllIChhbmQgYmUgcm9sbGVkIGludG8gRE9NSW1wbGVtZW50
YXRpb24pCisKKyAgICAgICAgRGVsZXRlIFNWR0RPTUltcGxlbWVudGF0aW9uIGFuZCByZWZlcmVu
Y2VzIHRvIGl0LiBUaGUKKyAgICAgICAgc3ZnIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgaXMgbm93
IGluIERPTUltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdmdGZWF0dXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpoYXNGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0
aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlU1ZHRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5o
OgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24u
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3Bw
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb2xvci5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnQ6OlNW
R0RvY3VtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50
Ojppc1N1cHBvcnRlZCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHA6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHA6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHA6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
c3RzOjppc1ZhbGlkKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6YmVn
aW4pOgorICAgICAgICAqIHBsYXRmb3JtL1N0cmluZ0hhc2guaDoKKyAgICAgICAgKFdURjo6KToK
KyAgICAgICAgKFdURjo6Q2FzZUluc2Vuc2l0aXZlSGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNhc2VJbnNlbnNpdGl2ZUhhc2g6OmVxdWFsKToKKwogMjAwNi0wOC0wNSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU4MDgp
CisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTA1Miw4ICsxMDUyLDYgQEAKIAkJQTg4QUQ0NEEwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR0Rlc2NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQuaCAqLzsg
fTsKIAkJQTg4QUQ0NEIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RvY3VtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODM3MDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi87IH07CiAJCUE4OEFENDRDMDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi87
IH07Ci0JCUE4OEFENDREMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgz
OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwICovOyB9OwotCQlB
ODhBRDQ0RTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODNBMDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovOyB9OwogCQlBODhBRDQ0RjA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVu
dC5jcHAgKi87IH07CiAJCUE4OEFENDUwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQzA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovOyB9OwogCQlBODhBRDQ1MjA5NTI0OEYw
MDAxREQxOTYgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzRTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxl
bWVudEluc3RhbmNlLmggKi87IH07CkBAIC0yNzY0LDggKzI3NjIsNiBAQAogCQlBOEMwRjgzNjA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdEZXNjRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4Mzcw
ODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRG9jdW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4
MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODM5MDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0RPTUltcGxlbWVudGF0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07Ci0JCUE4QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0RPTUltcGxlbWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNWR0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4M0MwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0Vs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzRDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudElu
c3RhbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHRWxlbWVudEluc3RhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC00NjMzLDggKzQ2MjksNiBAQAogCQkJ
CUE4QzBGODM3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi8sCiAJCQkJQThD
MEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8sCiAJCQkJQTgzM0I5OTMw
QTJCNzdENTAwRDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCAqLywKLQkJCQlBOEMwRjgzOTA4OTcw
MUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAotCQkJCUE4QzBGODNB
MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCUE4QzBG
ODNCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50LmNwcCAqLywKIAkJCQlBOEMwRjgzQzA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovLAogCQkJCUE4MzNDNUU3MEEyQ0NCQTQw
MEQ1NzY2NCAvKiBTVkdFbGVtZW50LmlkbCAqLywKQEAgLTU3NjYsNyArNTc2MCw2IEBACiAJCQkJ
QTg4QUQ0NDgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RlZnNFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODhBRDQ0QTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRGVzY0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4OEFENDRDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0NEUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQ1MDA5NTI0OEYwMDAxREQx
OTYgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0NTIwOTUyNDhGMDAw
MUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0
NTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBpbiBIZWFkZXJz
ICovLApAQCAtNjY4OCw3ICs2NjgxLDYgQEAKIAkJCQlBODhBRDQ0NzA5NTI0OEYwMDAxREQxOTYg
LyogU1ZHRGVmc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NDkwOTUyNDhG
MDAwMUREMTk2IC8qIFNWR0Rlc2NFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFE
NDRCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBODhBRDQ0RDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NEYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NTUwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Vs
bGlwc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENDU3MDk1MjQ4RjAwMDFE
RDE5NiAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTU4MDgpCisrKyBXZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDExIEBACiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKICNpbmNsdWRlICJUZXh0RG9j
dW1lbnQuaCIKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNs
dWRlICJTVkdEb2N1bWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8g
RklYTUU6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaXMgc3RpbGwgd2FpdGluZyBmb3IgbWUg
dG8gdW5kZXJzdGFuZCB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbgpAQCAtNDYsNiArNTEsNzggQEAg
c3RhdGljIGJvb2wgcXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKGNvbgogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorI2lmIFNWR19TVVBQT1JUCitzdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIENh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBzdmdGZWF0dXJlU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNl
dDxTdHJpbmcsIENhc2VJbnNlbnNpdGl2ZUhhc2g+KiBzdmdGZWF0dXJlcyA9IDA7CisgICAgaWYg
KCFzdmdGZWF0dXJlcykgeworICAgICAgICBzdmdGZWF0dXJlcyA9IG5ldyBIYXNoU2V0PFN0cmlu
ZywgQ2FzZUluc2Vuc2l0aXZlSGFzaD47CisKKy8vIFRPRE86IGZlYXR1cmVzIG5lZWQgdG8gYmUg
Y29tbWVudGVkIG91dCB3aGVuIHdlIGltcGxlbWVudCB0aGVtCisgICAgICAgIC8vIDEuMSBmZWF0
dXJlcworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJTVkciKTsKKyAgICAgICAgc3ZnRmVhdHVy
ZXMtPmFkZCgiU1ZHRE9NIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNWRy1zdGF0aWMi
KTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiU1ZHRE9NLXN0YXRpYyIpOworLy8gICAgICAg
IHN2Z0ZlYXR1cmVzLT5hZGQoIlNWRy1hbmltYXRpb24iKTsKKy8vICAgICAgICBzdmdGZWF0dXJl
cy0+YWRkKCJTVkdET00tYW5pbWF0aW9uIik7CisvLyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgi
U1ZHLWR5bmFtaWMiKTsKKy8vICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJTVkdET00tZHluYW1p
YyIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJDb3JlQXR0cmlidXRlIik7CisgICAgICAg
IHN2Z0ZlYXR1cmVzLT5hZGQoIlN0cnVjdHVyZSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRk
KCJCYXNpY1N0cnVjdHVyZSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJDb250YWluZXJB
dHRyaWJ1dGUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiQ29uZGl0aW9uYWxQcm9jZXNz
aW5nIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkltYWdlIik7CisgICAgICAgIHN2Z0Zl
YXR1cmVzLT5hZGQoIlN0eWxlIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlZpZXdwb3J0
QXR0cmlidXRlIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNoYXBlIik7CisvLyAgICAg
ICAgc3ZnRmVhdHVyZXMtPmFkZCgiVGV4dCIpOworLy8gICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQo
IkJhc2ljVGV4dCIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJQYWludEF0dHJpYnV0ZSIp
OworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJCYXNpY1BhaW50QXR0cmlidXRlIik7CisgICAg
ICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIk9wYWNpdHlBdHRyaWJ1dGUiKTsKKyAgICAgICAgc3ZnRmVh
dHVyZXMtPmFkZCgiR3JhcGhpY3NBdHRyaWJ1dGUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiQmFzZUdyYXBoaWNzQXR0cmlidXRlIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIk1h
cmtlciIpOworLy8gICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkNvbG9yUHJvZmlsZSIpOworICAg
ICAgICBzdmdGZWF0dXJlcy0+YWRkKCJHcmFkaWVudCIpOworICAgICAgICBzdmdGZWF0dXJlcy0+
YWRkKCJQYXR0ZXJuIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkNsaXAiKTsKKyAgICAg
ICAgc3ZnRmVhdHVyZXMtPmFkZCgiQmFzaWNDbGlwIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5h
ZGQoIk1hc2siKTsKKy8vICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJGaWx0ZXIiKTsKKy8vICAg
ICAgICBzdmdGZWF0dXJlcy0+YWRkKCJCYXNpY0ZpbHRlciIpOworICAgICAgICBzdmdGZWF0dXJl
cy0+YWRkKCJEb2N1bWVudEV2ZW50c0F0dHJpYnV0ZSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+
YWRkKCJHcmFwaGljYWxFdmVudHNBdHRyaWJ1dGUiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiQW5pbWF0aW9uRXZlbnRzQXR0cmlidXRlIik7CisvLyAgICAgICAgc3ZnRmVhdHVyZXMtPmFk
ZCgiQ3Vyc29yIik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkh5cGVybGlua2luZyIpOwor
ICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJYbGlua0F0dHJpYnV0ZSIpOworLy8gICAgICAgIHN2
Z0ZlYXR1cmVzLT5hZGQoIkV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiKTsKKy8vICAgICAgICBz
dmdGZWF0dXJlcy0+YWRkKCJWaWV3Iik7CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIlNjcmlw
dCIpOworLy8gICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoIkFuaW1hdGlvbiIpOworLy8gICAgICAg
IHN2Z0ZlYXR1cmVzLT5hZGQoIkZvbnQiKTsKKy8vICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJC
YXNpY0ZvbnQiKTsKKyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiRXh0ZW5zaWJpbGl0eSIpOwor
CisgICAgICAgIC8vIDEuMCBmZWF0dXJlcworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJzdmcu
c3RhdGljIik7CisvLyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgic3ZnLmFuaW1hdGlvbiIpOwor
Ly8gICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoInN2Zy5keW5hbWljIik7CisgICAgICAgIHN2Z0Zl
YXR1cmVzLT5hZGQoImRvbSIpOworICAgICAgICBzdmdGZWF0dXJlcy0+YWRkKCJkb20uc3ZnIik7
CisgICAgICAgIHN2Z0ZlYXR1cmVzLT5hZGQoImRvbS5zdmcuc3RhdGljIik7CisvLyAgICAgICAg
c3ZnRmVhdHVyZXMtPmFkZCgiZG9tLnN2Zy5hbmltYXRpb24iKTsKKy8vICAgICAgICBzdmdGZWF0
dXJlcy0+YWRkKCJkb20uc3ZnLmR5bmFtaWMiKTsKKy8vICAgICAgICBzdmdGZWF0dXJlcy0+YWRk
KCJzdmcuYWxsIik7CisvLyAgICAgICAgc3ZnRmVhdHVyZXMtPmFkZCgiZG9tLnN2Zy5hbGwiKTsK
KyAgICB9CisgICAgcmV0dXJuICpzdmdGZWF0dXJlczsKK30KKyNlbmRpZgorCiBET01JbXBsZW1l
bnRhdGlvbjo6fkRPTUltcGxlbWVudGF0aW9uKCkKIHsKIH0KQEAgLTY5LDYgKzE0NiwxOCBAQCBi
b29sIERPTUltcGxlbWVudGF0aW9uOjpoYXNGZWF0dXJlIChjb25zCiAgICAgICAgIHJldHVybiB2
ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09ICIyLjAiOwogICAgIGlmIChsb3dlciA9PSAi
eHBhdGgiKQogICAgICAgICByZXR1cm4gdmVyc2lvbi5pc0VtcHR5KCkgfHwgdmVyc2lvbiA9PSAi
My4wIjsKKworI2lmIFNWR19TVVBQT1JUCisgICAgaWYgKCh2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2
ZXJzaW9uID09ICIxLjEiKSAmJiBmZWF0dXJlLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cudzMub3Jn
L3RyL3N2ZzExL2ZlYXR1cmUjIiwgZmFsc2UpKSB7CisgICAgICAgIGlmIChzdmdGZWF0dXJlU2V0
KCkuY29udGFpbnMoZmVhdHVyZS5yaWdodChmZWF0dXJlLmxlbmd0aCgpIC0gMzUpKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICgodmVyc2lvbi5pc0VtcHR5KCkg
fHwgdmVyc2lvbiA9PSAiMS4wIikgJiYgZmVhdHVyZS5zdGFydHNXaXRoKCJvcmcudzNjLiIsIGZh
bHNlKSkgeworICAgICAgICBpZiAoc3ZnRmVhdHVyZVNldCgpLmNvbnRhaW5zKGZlYXR1cmUucmln
aHQoZmVhdHVyZS5sZW5ndGgoKSAtIDgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyNlbmRpZgogICAgIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTEzMiw2ICsyMjEsOSBA
QCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6CiAgICAgICAgIGlmIChx
dWFsaWZpZWROYW1lSXNNYWxmb3JtZWQocXVhbGlmaWVkTmFtZSkgfHwKICAgICAgICAgICAgIChj
b2xvbnBvcyA+PSAwICYmIG5hbWVzcGFjZVVSSS5pc051bGwoKSkgfHwKICAgICAgICAgICAgIChj
b2xvbnBvcyA9PSAzICYmIHF1YWxpZmllZE5hbWVbMF0gPT0gJ3gnICYmIHF1YWxpZmllZE5hbWVb
MV0gPT0gJ20nICYmIHF1YWxpZmllZE5hbWVbMl0gPT0gJ2wnICYmCisjaWYgU1ZHX1NVUFBPUlQK
KyAgICAgICAgICAgICBuYW1lc3BhY2VVUkkgIT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSAm
JgorI2VuZGlmCiAgICAgICAgICAgICAgbmFtZXNwYWNlVVJJICE9ICJodHRwOi8vd3d3LnczLm9y
Zy9YTUwvMTk5OC9uYW1lc3BhY2UiKSkgewogCiAgICAgICAgICAgICBlYyA9IE5BTUVTUEFDRV9F
UlI7CkBAIC0xNDYsNyArMjM4LDEzIEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVu
dGF0aW9uOjoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgUmVmUHRyPERvY3VtZW50
PiBkb2MgPSBuZXcgRG9jdW1lbnQodGhpcywgMCk7CisgICAgUmVmUHRyPERvY3VtZW50PiBkb2M7
CisjaWYgU1ZHX1NVUFBPUlQKKyAgICBpZiAobmFtZXNwYWNlVVJJID09IFNWR05hbWVzOjpzdmdO
YW1lc3BhY2VVUkkpCisgICAgICAgIGRvYyA9IG5ldyBTVkdEb2N1bWVudCh0aGlzLCAwKTsKKyAg
ICBlbHNlCisjZW5kaWYKKyAgICAgICAgZG9jID0gbmV3IERvY3VtZW50KHRoaXMsIDApOwogCiAg
ICAgLy8gbm93IGdldCB0aGUgaW50ZXJlc3RpbmcgcGFydHMgb2YgdGhlIGRvY3R5cGUKICAgICBp
ZiAoZG9jdHlwZSkKQEAgLTIxNCw0ICszMTIsMTEgQEAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+
IERPTUltcGxlbWVudGF0aQogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIAorI2lmIFNWR19T
VVBQT1JUCitQYXNzUmVmUHRyPFNWR0RvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRl
U1ZHRG9jdW1lbnQoRnJhbWVWaWV3KiB2KQoreworICAgIHJldHVybiBuZXcgU1ZHRG9jdW1lbnQo
dGhpcywgdik7Cit9CisjZW5kaWYKKwogfQpJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCShy
ZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVu
dFR5cGU7CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CisjaWYgU1ZHX1NV
UFBPUlQKK2NsYXNzIFNWR0RvY3VtZW50OworI2VuZGlmCiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBU
ZXh0RG9jdW1lbnQ7CiAKQEAgLTYxLDYgKzY0LDkgQEAgcHVibGljOgogICAgIC8vIE90aGVyIG1l
dGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAgICBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVE
b2N1bWVudChGcmFtZVZpZXcqID0gMCk7CiAgICAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IGNy
ZWF0ZUhUTUxEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7CisjaWYgU1ZHX1NVUFBPUlQKKyAgICBQ
YXNzUmVmUHRyPFNWR0RvY3VtZW50PiBjcmVhdGVTVkdEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7
CisjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIHN0YXRpYyBpbnN0YW5jZSBvZiB0aGlzIGNs
YXNzIC0gb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBzaG91bGQKICAgICAvLyBldmVy
IGJlIHByZXNlbnQsIGFuZCBpcyB1c2VkIGFzIGEgZmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5n
IERvY3VtZW50IG9iamVjdHMKSW5kZXg6IFdlYkNvcmUva3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdET01JbXBsZW1lbnRhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5k
aW5ncy9pZGwvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmlkbAkocmV2aXNpb24gMTU4MDgpCisr
KyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotbW9kdWxlIHN2ZwotewotCWludGVyZmFj
ZSBbbm9kcHRyLCBDb25kaXRpb25hbD1TVkddIFNWR0RPTUltcGxlbWVudGF0aW9uIDogY29yZTo6
RE9NSW1wbGVtZW50YXRpb24gewotCQlib29sZWFuIGhhc0ZlYXR1cmUoaW4gY29yZTo6RE9NU3Ry
aW5nIGZlYXR1cmUsCi0JCQkJCQkgICBpbiBjb3JlOjpET01TdHJpbmcgdmVyc2lvbik7Ci0KLQkJ
Ly8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLQkJY29yZTo6RG9jdW1lbnRUeXBlIGNyZWF0
ZURvY3VtZW50VHlwZShpbiBjb3JlOjpET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKLQkJCQkJCQkJ
CQlpbiBjb3JlOjpET01TdHJpbmcgcHVibGljSWQsCi0JCQkJCQkJCQkJaW4gY29yZTo6RE9NU3Ry
aW5nIHN5c3RlbUlkKQotCQkJCQkJCQkJCXJhaXNlcyhjb3JlOjpET01FeGNlcHRpb24pOwotCi0J
CS8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0JCWNvcmU6OkRvY3VtZW50IGNyZWF0ZURv
Y3VtZW50KGluIGNvcmU6OkRPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0JCQkJCQkJCWluIGNvcmU6
OkRPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotCQkJCQkJCQlpbiBjb3JlOjpEb2N1bWVudFR5cGUg
ZG9jdHlwZSkKLQkJCQkJCQkJcmFpc2VzKGNvcmU6OkRPTUV4Y2VwdGlvbik7Ci0KLQkJLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMjogW3NwZWNpZmllZCBpbiBzZXBlcmF0ZWQgRE9NSW1wbGVt
ZW50YXRpb25DU1NdCi0JCWNzczo6Q1NTU3R5bGVTaGVldCBjcmVhdGVDU1NTdHlsZVNoZWV0KGlu
IGNvcmU6OkRPTVN0cmluZyB0aXRsZSwKLQkJCQkJCQkJCQkgIGluIGNvcmU6OkRPTVN0cmluZyBt
ZWRpYSkgcmFpc2VzKGNvcmU6OkRPTUV4Y2VwdGlvbik7Ci0JfTsKLX07CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
a3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDE1ODA4KQorKysgV2Vi
Q29yZS9rc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdT
dHlsZWRFbGVtZW50LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb2xvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29sb3IuY3BwCShyZXZpc2lvbiAxNTgw
OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIlNWR0NvbG9yLmgiCiAKICNpbmNsdWRlICJEZXByZWNh
dGVkU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAia3N2Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIgotI2luY2x1
ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTQg
KzI2LDEzIEBACiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdab29t
RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdEb2N1bWVudDo6U1ZHRG9jdW1l
bnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmlldykgOiBEb2N1bWVudChp
LCB2aWV3KQorU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50KERPTUltcGxlbWVudGF0aW9uICppLCBG
cmFtZVZpZXcgKnZpZXcpIDogRG9jdW1lbnQoaSwgdmlldykKIHsKIH0KIApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdEb2N1bWVudC5oCShyZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdFbGVtZW50OwogICAgIGNsYXNzIFNWR1NWR0VsZW1l
bnQ7Ci0gICAgY2xhc3MgU1ZHRE9NSW1wbGVtZW50YXRpb247CisgICAgY2xhc3MgRE9NSW1wbGVt
ZW50YXRpb247CiAKICAgICBjbGFzcyBTVkdEb2N1bWVudCA6IHB1YmxpYyBEb2N1bWVudCB7CiAg
ICAgcHVibGljOgotICAgICAgICBTVkdEb2N1bWVudChTVkdET01JbXBsZW1lbnRhdGlvbiAqaSwg
RnJhbWVWaWV3ICp2aWV3KTsKKyAgICAgICAgU1ZHRG9jdW1lbnQoRE9NSW1wbGVtZW50YXRpb24g
KmksIEZyYW1lVmlldyAqdmlldyk7CiAgICAgICAgIHZpcnR1YWwgflNWR0RvY3VtZW50KCk7CiAg
ICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgw
OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxMSArMjYsMTEgQEAKIAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjaW5jbHVkZSAiU1ZH
TmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCkBAIC01NCw3ICs1NCw3IEBAIFNW
R0VsZW1lbnQ6On5TVkdFbGVtZW50KCkKIAogYm9vbCBTVkdFbGVtZW50Ojppc1N1cHBvcnRlZChT
dHJpbmdJbXBsKiBmZWF0dXJlLCBTdHJpbmdJbXBsKiB2ZXJzaW9uKSBjb25zdAogewotICAgIGlm
IChTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKS0+aGFzRmVhdHVyZShmZWF0dXJlLCB2
ZXJzaW9uKSkKKyAgICBpZiAoRE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKCktPmhhc0ZlYXR1
cmUoZmVhdHVyZSwgdmVyc2lvbikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJu
IERPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNp
b24pOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJTVkdGRUJsZW5kRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzks
NyArMzksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdC5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgi
Ci0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmNwcAkocmV2aXNpb24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAi
U1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1l
bnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTgwOCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAi
U1ZHRkVMaWdodEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQs
NiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCi0jaW5jbHVk
ZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiRGVwcmVjYXRlZFN0cmluZ0xpc3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcu
aCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0hlbHBl
ci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAi
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIu
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxl
bWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCi0j
aW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBA
CiAjaW5jbHVkZSAiU1ZHRkVPZmZzZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRO
dW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RP
TUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1
ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIgogCiAK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgw
OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJTVkdGRVRpbGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRl
ICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEludGVnZXIuaCIKLSNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNW
R0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5
bGUuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5n
dGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUG9p
bnRMaXN0LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTgwOCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkocmV2
aXNpb24gMTU4MDgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJSZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdNYXRyaXguaCIKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBACiAj
aW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdE
T01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAJ
KHJldmlzaW9uIDE1ODA4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGVzdHMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTIgQEAKICNpbmNsdWRlICJTVkdUZXN0cy5oIgogCiAj
aW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNsdWRl
ICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJBdHRy
LmgiCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogICAg
IGZvcih1bnNpZ25lZCBsb25nIGkgPSAwO2kgPCBsaXN0LT5udW1iZXJPZkl0ZW1zKCk7aSsrKQog
ICAgIHsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gU3RyaW5nKGxpc3QtPmdldEl0ZW0oaSkpOwot
ICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIVNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0
YW5jZSgpLT5oYXNGZWF0dXJlKHZhbHVlLmltcGwoKSwgMCkpCisgICAgICAgIGlmKHZhbHVlLmlz
RW1wdHkoKSB8fCAhRE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKCktPmhhc0ZlYXR1cmUodmFs
dWUsIFN0cmluZygpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysr
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHVHJh
bnNmb3JtYWJsZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dC5oIgogI2luY2x1ZGUgImtzdmcuaCIKIApJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxNTgwOCkKKysr
IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDggKzg5LDggQEAK
ICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRl
ICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNl
bmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNTgzLDcgKzU4Myw3IEBAIHZvaWQgRnJh
bWU6OmJlZ2luKGNvbnN0IEtVUkwmIHVybCkKIAogI2lmIFNWR19TVVBQT1JUCiAgIGlmIChkLT5t
X3JlcXVlc3QubV9yZXNwb25zZU1JTUVUeXBlID09ICJpbWFnZS9zdmcreG1sIikKLSAgICBkLT5t
X2RvYyA9IFNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5jcmVhdGVEb2N1bWVudChk
LT5tX3ZpZXcuZ2V0KCkpOworICAgIGQtPm1fZG9jID0gRE9NSW1wbGVtZW50YXRpb246Omluc3Rh
bmNlKCktPmNyZWF0ZVNWR0RvY3VtZW50KGQtPm1fdmlldy5nZXQoKSk7CiAgIGVsc2UKICNlbmRp
ZgogICBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUoZC0+bV9yZXF1ZXN0Lm1f
cmVzcG9uc2VNSU1FVHlwZSkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1N0cmluZ0hhc2guaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1N0cmluZ0hhc2guaAkocmV2aXNpb24gMTU4
MDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1N0cmluZ0hhc2guaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgU3RySGFzaDsKIAogICAgIHRlbXBsYXRlPD4gc3RydWN0IFN0ckhhc2g8V2ViQ29yZTo6
U3RyaW5nSW1wbCo+IHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29y
ZTo6U3RyaW5nJiBrZXkpIHsgcmV0dXJuIGtleS5pbXBsKCktPmhhc2goKTsgfQogICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJDb3JlOjpTdHJpbmdJbXBsKiBrZXkpIHsgcmV0
dXJuIGtleS0+aGFzaCgpOyB9CiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNv
cmU6OlN0cmluZ0ltcGwqIGEsIGNvbnN0IFdlYkNvcmU6OlN0cmluZ0ltcGwqIGIpCiAgICAgICAg
IHsKQEAgLTY3LDYgKzY4LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHB1YmxpYzoKICAgICAg
ICAgLy8gUGF1bCBIc2llaCdzIFN1cGVyRmFzdEhhc2gKICAgICAgICAgLy8gaHR0cDovL3d3dy5h
emlsbGlvbm1vbmtleXMuY29tL3FlZC9oYXNoLmh0bWwKKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiBoYXNoKHN0ci5pbXBsKCkpOworICAgICAgICB9CiAgICAgICAgIHN0YXRpYyB1bnNp
Z25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OlN0cmluZ0ltcGwqIHN0cikKICAgICAgICAgewogICAg
ICAgICAgICAgdW5zaWduZWQgbCA9IHN0ci0+bGVuZ3RoKCk7CkBAIC0xNTUsNiArMTYwLDEwIEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgICAgIH0KICAg
ICAgICAgCisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNvcmU6OlN0cmluZyAm
YSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nICZiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gZXF1YWwoYS5pbXBsKCksIGIuaW1wbCgpKTsKKyAgICAgICAgfQogICAgICAgICBzdGF0aWMg
Ym9vbCBlcXVhbChjb25zdCBXZWJDb3JlOjpTdHJpbmdJbXBsKiBhLCBjb25zdCBXZWJDb3JlOjpT
dHJpbmdJbXBsKiBiKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYSA9PSBiKQpAQCAtMTk0
LDYgKzIwMywxMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNSZWYgPSB0cnVlOwogICAgICAgICBzdGF0aWMgdm9pZCByZWYoY29uc3QgV2ViQ29yZTo6
U3RyaW5nJiBzKSB7IGlmIChzLmltcGwoKSkgcy5pbXBsKCktPnJlZigpOyB9CiAgICAgICAgIHN0
YXRpYyB2b2lkIGRlcmVmKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgcykgeyBpZiAocy5pbXBsKCkp
IHMuaW1wbCgpLT5kZXJlZigpOyB9CisgICAgICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpTdHJp
bmcmIGRlbGV0ZWRWYWx1ZSgpIHsKKyAgICAgICAgICAgIHN0YXRpYyBXZWJDb3JlOjpTdHJpbmcg
bnVsbDsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CiAgICAgfTsKIAogICAg
IC8vIHNoYXJlIGNvZGUgYmV0d2VlbiBTdHJpbmdJbXBsKiwgUmVmUHRyPFN0cmluZ0ltcGw+LCBh
bmQgU3RyaW5nCg==
</data>
<flag name="review"
          id="3060"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9912</attachid>
            <date>2006-08-07 02:28:40 -0700</date>
            <delta_ts>2006-08-11 12:46:56 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>10230-5.diff</filename>
            <type>text/plain</type>
            <size>40456</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1ODEwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYtMDgtMDUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgY2FzZSBmb3IKKyAgICAgICAgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyMzA+CisgICAgICAgIFNWR0RPTUltcGxlbWVudGF0aW9uIHNob3Vs
ZCBkaWUgKGFuZCBiZSByb2xsZWQgaW50byBET01JbXBsZW1lbnRhdGlvbikKKworICAgICAgICAq
IHN2Zy9jdXN0b20vc3ZnLWZlYXR1cmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9zdmctZmVhdHVyZXMuaHRtbDogQWRkZWQuCisKIDIwMDYtMDgtMDUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctZmVhdHVyZXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWZlYXR1cmVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLWZlYXR1cmVz
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorIm9yZy53M2Muc3Zn
IiwgIjEuMCI6IHRydWUsIHRydWUKKyJvcmcudzNjLnN2Zy5zdGF0aWMiLCAiMS4wIjogdHJ1ZSwg
dHJ1ZQorIm9yZy53M2Muc3ZnLmFuaW1hdGlvbiIsICIxLjAiOiBmYWxzZSwgZmFsc2UKKyJvcmcu
dzNjLnN2Zy5keW5hbWljIiwgIjEuMCI6IGZhbHNlLCBmYWxzZQorIm9yZy53M2MuZG9tIiwgIjEu
MCI6IHRydWUsIHRydWUKKyJvcmcudzNjLmRvbS5zdmciLCAiMS4wIjogdHJ1ZSwgdHJ1ZQorIm9y
Zy53M2MuZG9tLnN2Zy5zdGF0aWMiLCAiMS4wIjogdHJ1ZSwgdHJ1ZQorIm9yZy53M2MuZG9tLnN2
Zy5hbmltYXRpb24iLCAiMS4wIjogZmFsc2UsIGZhbHNlCisib3JnLnczYy5kb20uc3ZnLmR5bmFt
aWMiLCAiMS4wIjogZmFsc2UsIGZhbHNlCisib3JnLnczYy5zdmcuYWxsIiwgIjEuMCI6IGZhbHNl
LCBmYWxzZQorIm9yZy53M2MuZG9tLnN2Zy5hbGwiLCAiMS4wIjogZmFsc2UsIGZhbHNlCisiaHR0
cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkciLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHRE9NIiwgIjEuMSI6IHRydWUs
IHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1zdGF0aWMiLCAi
MS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZH
RE9NLXN0YXRpYyIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNTVkctYW5pbWF0aW9uIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHRE9NLWFuaW1hdGlvbiIsICIxLjEiOiBmYWxz
ZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1keW5hbWlj
IiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjU1ZHRE9NLWR5bmFtaWMiLCAiMS4xIjogZmFsc2UsIGZhbHNlCisiaHR0cDovL3d3dy53My5v
cmcvVFIvU1ZHMTEvZmVhdHVyZSNDb3JlQXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJo
dHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1N0cnVjdHVyZSIsICIxLjEiOiB0cnVl
LCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY1N0cnVjdHVy
ZSIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVy
ZSNDb250YWluZXJBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMu
b3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29uZGl0aW9uYWxQcm9jZXNzaW5nIiwgIjEuMSI6IHRydWUs
IHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0ltYWdlIiwgIjEuMSI6
IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1N0eWxlIiwg
IjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1Zp
ZXdwb3J0QXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI1NoYXBlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9TVkcxMS9mZWF0dXJlI1RleHQiLCAiMS4xIjogZmFsc2UsIGZhbHNlCisiaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY1RleHQiLCAiMS4xIjogZmFsc2UsIGZh
bHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYWludEF0dHJpYnV0ZSIs
ICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNC
YXNpY1BhaW50QXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI09wYWNpdHlBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjR3JhcGhpY3NBdHRyaWJ1dGUiLCAi
MS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFz
ZUdyYXBoaWNzQXR0cmlidXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI01hcmtlciIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNDb2xvclByb2ZpbGUiLCAiMS4xIjogZmFsc2UsIGZh
bHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNHcmFkaWVudCIsICIxLjEi
OiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYXR0ZXJu
IiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJl
I0NsaXAiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2Zl
YXR1cmUjQmFzaWNDbGlwIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI01hc2siLCAiMS4xIjogdHJ1ZSwgdHJ1ZQorImh0dHA6Ly93d3cudzMu
b3JnL1RSL1NWRzExL2ZlYXR1cmUjRmlsdGVyIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNGaWx0ZXIiLCAiMS4xIjogZmFsc2Us
IGZhbHNlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNEb2N1bWVudEV2ZW50
c0F0dHJpYnV0ZSIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNHcmFwaGljYWxFdmVudHNBdHRyaWJ1dGUiLCAiMS4xIjogdHJ1ZSwgdHJ1ZQor
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQW5pbWF0aW9uRXZlbnRzQXR0cmli
dXRlIiwgIjEuMSI6IHRydWUsIHRydWUKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI0N1cnNvciIsICIxLjEiOiBmYWxzZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0h5cGVybGlua2luZyIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNYbGlua0F0dHJpYnV0ZSIsICIxLjEiOiB0cnVlLCB0
cnVlCisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkIiwgIjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NW
RzExL2ZlYXR1cmUjVmlldyIsICIxLjEiOiBmYWxzZSwgZmFsc2UKKyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1NjcmlwdCIsICIxLjEiOiB0cnVlLCB0cnVlCisiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNBbmltYXRpb24iLCAiMS4xIjogZmFsc2UsIGZhbHNl
CisiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNGb250IiwgIjEuMSI6IGZhbHNl
LCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNGb250Iiwg
IjEuMSI6IGZhbHNlLCBmYWxzZQorImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
RXh0ZW5zaWJpbGl0eSIsICIxLjEiOiB0cnVlLCB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1mZWF0dXJlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9j
dXN0b20vc3ZnLWZlYXR1cmVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3N2Zy1mZWF0dXJlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACis8
c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgIHZhciB1bmRlZmluZWQ7CisKKyAgICB2YXIgZmVhdHVyZXMgPSBbCisgICAgICAgIFsib3Jn
LnczYy5zdmciLCAiMS4wIl0sCisgICAgICAgIFsib3JnLnczYy5zdmcuc3RhdGljIiwgIjEuMCJd
LAorICAgICAgICBbIm9yZy53M2Muc3ZnLmFuaW1hdGlvbiIsICIxLjAiXSwKKyAgICAgICAgWyJv
cmcudzNjLnN2Zy5keW5hbWljIiwgIjEuMCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tIiwgIjEu
MCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tLnN2ZyIsICIxLjAiXSwKKyAgICAgICAgWyJvcmcu
dzNjLmRvbS5zdmcuc3RhdGljIiwgIjEuMCJdLAorICAgICAgICBbIm9yZy53M2MuZG9tLnN2Zy5h
bmltYXRpb24iLCAiMS4wIl0sCisgICAgICAgIFsib3JnLnczYy5kb20uc3ZnLmR5bmFtaWMiLCAi
MS4wIl0sCisgICAgICAgIFsib3JnLnczYy5zdmcuYWxsIiwgIjEuMCJdLAorICAgICAgICBbIm9y
Zy53M2MuZG9tLnN2Zy5hbGwiLCAiMS4wIl0sCisKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1NWRyIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWR0RPTSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8v
d3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWRy1zdGF0aWMiLCAiMS4xIl0sCisgICAgICAg
IFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkdET00tc3RhdGljIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU1ZHLWFu
aW1hdGlvbiIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9m
ZWF0dXJlI1NWR0RPTS1hbmltYXRpb24iLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53
My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNTVkctZHluYW1pYyIsICIxLjEiXSwKKyAgICAgICAgWyJo
dHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1NWR0RPTS1keW5hbWljIiwgIjEuMSJd
LAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29yZUF0dHJp
YnV0ZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI1N0cnVjdHVyZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0Jhc2ljU3RydWN0dXJlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29udGFpbmVyQXR0cmlidXRlIiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29uZGl0aW9uYWxQ
cm9jZXNzaW5nIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzEx
L2ZlYXR1cmUjSW1hZ2UiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIv
U1ZHMTEvZmVhdHVyZSNTdHlsZSIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9y
Zy9UUi9TVkcxMS9mZWF0dXJlI1ZpZXdwb3J0QXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBb
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjU2hhcGUiLCAiMS4xIl0sCisgICAg
ICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNUZXh0IiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNUZXh0Iiwg
IjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjUGFp
bnRBdHRyaWJ1dGUiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZH
MTEvZmVhdHVyZSNCYXNpY1BhaW50QXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6
Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjT3BhY2l0eUF0dHJpYnV0ZSIsICIxLjEiXSwK
KyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0dyYXBoaWNzQXR0
cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2Zl
YXR1cmUjQmFzZUdyYXBoaWNzQXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjTWFya2VyIiwgIjEuMSJdLAorICAgICAgICBbImh0
dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ29sb3JQcm9maWxlIiwgIjEuMSJdLAor
ICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjR3JhZGllbnQiLCAi
MS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNQYXR0
ZXJuIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjQ2xpcCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9m
ZWF0dXJlI0Jhc2ljQ2xpcCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9U
Ui9TVkcxMS9mZWF0dXJlI01hc2siLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5v
cmcvVFIvU1ZHMTEvZmVhdHVyZSNGaWx0ZXIiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY0ZpbHRlciIsICIxLjEiXSwKKyAgICAgICAg
WyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0RvY3VtZW50RXZlbnRzQXR0cmli
dXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1
cmUjR3JhcGhpY2FsRXZlbnRzQXR0cmlidXRlIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQW5pbWF0aW9uRXZlbnRzQXR0cmlidXRlIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQ3Vyc29y
IiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
SHlwZXJsaW5raW5nIiwgIjEuMSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NW
RzExL2ZlYXR1cmUjWGxpbmtBdHRyaWJ1dGUiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIiwgIjEu
MSJdLAorICAgICAgICBbImh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjVmlldyIs
ICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI1Nj
cmlwdCIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI0FuaW1hdGlvbiIsICIxLjEiXSwKKyAgICAgICAgWyJodHRwOi8vd3d3LnczLm9yZy9UUi9T
VkcxMS9mZWF0dXJlI0ZvbnQiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3dy53My5vcmcv
VFIvU1ZHMTEvZmVhdHVyZSNCYXNpY0ZvbnQiLCAiMS4xIl0sCisgICAgICAgIFsiaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5IiwgIjEuMSJdXQorCisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBmZWF0dXJlcy5sZW5ndGg7ICsraSkKKyAgICB7CisgICAgICAg
IHZhciBpdGVtID0gZmVhdHVyZXNbaV07CisgICAgICAgIGlmIChpdGVtWzFdID09ICJvbWl0dGVk
IikgeworICAgICAgICAgICAgdmFyIGhhc0ZlYXR1cmUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5oYXNGZWF0dXJlKGl0ZW1bMF0pOworICAgICAgICAgICAgdmFyIGlzU3VwcG9ydGVkID0gZG9j
dW1lbnQuYm9keS5pc1N1cHBvcnRlZChpdGVtWzBdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHZhciBoYXNGZWF0dXJlID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVy
ZShpdGVtWzBdLCBpdGVtWzFdKTsKKyAgICAgICAgICAgIHZhciBpc1N1cHBvcnRlZCA9IGRvY3Vt
ZW50LmJvZHkuaXNTdXBwb3J0ZWQoaXRlbVswXSwgaXRlbVsxXSk7CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgaXRlbTBTdHJpbmcgPSBpdGVtWzBdOworICAgICAgICBpZiAodHlwZW9mIGl0ZW0w
U3RyaW5nID09ICJzdHJpbmciKQorICAgICAgICAgICAgaXRlbTBTdHJpbmcgPSAnIicgKyBpdGVt
MFN0cmluZyArICciJzsKKyAgICAgICAgdmFyIGl0ZW0xU3RyaW5nID0gaXRlbVsxXTsKKyAgICAg
ICAgaWYgKHR5cGVvZiBpdGVtMVN0cmluZyA9PSAic3RyaW5nIiAmJiBpdGVtWzFdICE9ICJvbWl0
dGVkIikKKyAgICAgICAgICAgIGl0ZW0xU3RyaW5nID0gJyInICsgaXRlbTFTdHJpbmcgKyAnIic7
CisgICAgICAgIHZhciBtZXNzYWdlID0gaXRlbTBTdHJpbmcgKyAnLCAnICsgaXRlbTFTdHJpbmcg
KyAnOiAnICsgaGFzRmVhdHVyZSArICcsICcgKyBpc1N1cHBvcnRlZDsKKworICAgICAgICB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgIGRpdi5pbm5lckhU
TUwgPSBtZXNzYWdlOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7Cisg
ICAgfQorfQorCis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPC9ib2R5PgpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw1OSBAQAorMjAwNi0wOC0wNSAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3pp
bGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIzMAorICAgICAgICBTVkdET01J
bXBsZW1lbnRhdGlvbiBzaG91bGQgZGllIChhbmQgYmUgcm9sbGVkIGludG8gRE9NSW1wbGVtZW50
YXRpb24pCisKKyAgICAgICAgRGVsZXRlIFNWR0RPTUltcGxlbWVudGF0aW9uIGFuZCByZWZlcmVu
Y2VzIHRvIGl0LiBUaGUKKyAgICAgICAgc3ZnIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkgaXMgbm93
IGluIERPTUltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzdmdGZWF0dXJlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpoYXNGZWF0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0
aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlU1ZHRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5o
OgorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24u
aWRsOiBSZW1vdmVkLgorICAgICAgICAqIGtzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3Bw
OgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDb2xvci5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRG9jdW1lbnQ6OlNW
R0RvY3VtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50
Ojppc1N1cHBvcnRlZCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIGtzdmcyL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHA6CisgICAg
ICAgICoga3N2ZzIvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIv
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHA6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHA6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHA6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
c3RzOjppc1ZhbGlkKToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5jcHA6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6YmVn
aW4pOgorICAgICAgICAqIHBsYXRmb3JtL1N0cmluZ0hhc2guaDoKKyAgICAgICAgKFdURjo6KToK
KyAgICAgICAgKFdURjo6Q2FzZUluc2Vuc2l0aXZlSGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNhc2VJbnNlbnNpdGl2ZUhhc2g6OmVxdWFsKToKKwogMjAwNi0wOC0wNSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTU4MTApCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTA1Miw4ICsxMDUyLDYgQEAKIAkJQTg4QUQ0NEEwOTUyNDhGMDAwMURE
MTk2IC8qIFNWR0Rlc2NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEMwRjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQu
aCAqLzsgfTsKIAkJQTg4QUQ0NEIwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RvY3VtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODM3MDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi87IH07CiAJCUE4OEFENDRDMDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50
LmggKi87IH07Ci0JCUE4OEFENDREMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdET01JbXBsZW1lbnRh
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEMwRjgzOTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwICovOyB9
OwotCQlBODhBRDQ0RTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzBGODNBMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovOyB9OwogCQlBODhBRDQ0
RjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
RWxlbWVudC5jcHAgKi87IH07CiAJCUE4OEFENDUwMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMw
RjgzQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovOyB9OwogCQlBODhBRDQ1MjA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHRWxlbWVudEluc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjgzRTA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHRWxlbWVudEluc3RhbmNlLmggKi87IH07CkBAIC0yNzQ3LDggKzI3NDUsNiBAQAogCQlBOEMw
RjgzNjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRGVzY0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdEZXNjRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThD
MEY4MzcwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRG9jdW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
QThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRG9jdW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBG
ODM5MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0RPTUltcGxl
bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07Ci0JCUE4QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1l
bnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNWR0RPTUltcGxlbWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzQjA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4M0MwODk3MDFGMzAwQkE1MTE0IC8q
IFNWR0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjgzRDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxl
bWVudEluc3RhbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHRWxlbWVudEluc3RhbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC00NjE2LDggKzQ2MTIsNiBA
QAogCQkJCUE4QzBGODM3MDg5NzAxRjMwMEJBNTExNCAvKiBTVkdEb2N1bWVudC5jcHAgKi8sCiAJ
CQkJQThDMEY4MzgwODk3MDFGMzAwQkE1MTE0IC8qIFNWR0RvY3VtZW50LmggKi8sCiAJCQkJQTgz
M0I5OTMwQTJCNzdENTAwRDU3NjY0IC8qIFNWR0RvY3VtZW50LmlkbCAqLywKLQkJCQlBOEMwRjgz
OTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAotCQkJCUE4
QzBGODNBMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJ
CUE4QzBGODNCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdFbGVtZW50LmNwcCAqLywKIAkJCQlBOEMw
RjgzQzA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHRWxlbWVudC5oICovLAogCQkJCUE4MzNDNUU3MEEy
Q0NCQTQwMEQ1NzY2NCAvKiBTVkdFbGVtZW50LmlkbCAqLywKQEAgLTU3NDksNyArNTc0Myw2IEBA
CiAJCQkJQTg4QUQ0NDgwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0RlZnNFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODhBRDQ0QTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRGVzY0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENDRDMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1
bWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTg4QUQ0NEUwOTUyNDhGMDAwMUREMTk2IC8qIFNW
R0RPTUltcGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDQ1MDA5NTI0OEYw
MDAxREQxOTYgLyogU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0NTIwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTg4QUQ0NTQwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjY2OCw3ICs2NjYxLDYgQEAKIAkJCQlBODhBRDQ0NzA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHRGVmc0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NDkw
OTUyNDhGMDAwMUREMTk2IC8qIFNWR0Rlc2NFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4OEFENDRCMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdEb2N1bWVudC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBODhBRDQ0RDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHRE9NSW1wbGVtZW50YXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NEYwOTUyNDhGMDAwMUREMTk2IC8qIFNWR0Vs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0NTUwOTUyNDhGMDAwMUREMTk2IC8q
IFNWR0VsbGlwc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENDU3MDk1MjQ4
RjAwMDFERDE5NiAvKiBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTU4MTApCisr
KyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDYgKzM0LDExIEBACiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKICNpbmNsdWRlICJU
ZXh0RG9jdW1lbnQuaCIKIAorI2lmIFNWR19TVVBQT1JUCisjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
KyNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogLy8gRklYTUU6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaXMgc3RpbGwgd2FpdGluZyBm
b3IgbWUgdG8gdW5kZXJzdGFuZCB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbgpAQCAtNDYsNiArNTEs
OTUgQEAgc3RhdGljIGJvb2wgcXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKGNvbgogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorI2lmIFNWR19TVVBQT1JUCisKKyNkZWZpbmUgU1ZHRkVBVFVSRTIobmFt
ZSwgdmFsdWUpIHN0YXRpYyBBdG9taWNTdHJpbmcgU1ZHRkVBVFVSRV8jI25hbWUoI3ZhbHVlKTsg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2Z0ZlYXR1cmVzLmFkZChTVkdGRUFUVVJF
XyMjbmFtZS5pbXBsKCkpOworI2RlZmluZSBTVkdGRUFUVVJFKGZlYXR1cmUpIHN0YXRpYyBBdG9t
aWNTdHJpbmcgU1ZHRkVBVFVSRV8jI2ZlYXR1cmUoI2ZlYXR1cmUpOyBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3ZnRmVhdHVyZXMuYWRkKFNWR0ZFQVRVUkVfIyNmZWF0dXJlLmltcGwo
KSk7CisKK2Jvb2wgaXNTVkcxMEZlYXR1cmUoY29uc3QgU3RyaW5nICZmZWF0dXJlKQoreworICAg
IHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgc3RhdGljIEhhc2hTZXQ8U3Ry
aW5nSW1wbCosIENhc2VJbnNlbnNpdGl2ZUhhc2g+IHN2Z0ZlYXR1cmVzOworICAgIGlmICghaW5p
dGlhbGl6ZWQpIHsKKyAgICAgICAgLy8gVE9ETzogZmVhdHVyZXMgbmVlZCB0byBiZSB1bmNvbW1l
bnRlZCB3aGVuIHdlIGltcGxlbWVudCB0aGVtCisgICAgICAgIC8vIDEuMCBmZWF0dXJlcworICAg
ICAgICBTVkdGRUFUVVJFMihTVkcsIHN2ZykKKyAgICAgICAgU1ZHRkVBVFVSRTIoU1ZHX1NUQVRJ
Qywgc3ZnLnN0YXRpYykKKy8vICAgICAgU1ZHRkVBVFVSRTIoU1ZHX0FOSU1BVElPTiwgc3ZnLmFu
aW1hdGlvbikKKy8vICAgICAgU1ZHRkVBVFVSRTIoU1ZHX0RZTkFNSUMsIHN2Zy5keW5hbWljKQor
Ly8gICAgICBTVkdGRUFUVVJFMihET01fU1ZHX0FOSU1BVElPTiwgc3ZnLmRvbS5hbmltYXRpb24p
CisvLyAgICAgIFNWR0ZFQVRVUkUyKERPTV9TVkdfRFlOQU1JQywgc3ZnLmRvbS5keW5hbWljKQor
ICAgICAgICBTVkdGRUFUVVJFMihET00sIGRvbSkKKyAgICAgICAgU1ZHRkVBVFVSRTIoRE9NX1NW
RywgZG9tLnN2ZykKKyAgICAgICAgU1ZHRkVBVFVSRTIoRE9NX1NWR19TVEFUSUMsIGRvbS5zdmcu
c3RhdGljKQorLy8gICAgICBTVkdGRUFUVVJFMihTVkdfQUxMLCBzdmcuYWxsKQorLy8gICAgICBT
VkdGRUFUVVJFMihET01fU1ZHX0FMTCwgZG9tLnN2Zy5hbGwpCisgICAgICAgIGluaXRpYWxpemVk
ID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIHN2Z0ZlYXR1cmVzLmNvbnRhaW5zKGZlYXR1cmUu
aW1wbCgpKTsKK30KKworYm9vbCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUp
Cit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgSGFz
aFNldDxTdHJpbmdJbXBsKiwgQ2FzZUluc2Vuc2l0aXZlSGFzaD4gc3ZnRmVhdHVyZXM7CisgICAg
aWYgKCFpbml0aWFsaXplZCkgeworICAgICAgICAvLyBUT0RPOiBmZWF0dXJlcyBuZWVkIHRvIGJl
IHVuY29tbWVudGVkIHdoZW4gd2UgaW1wbGVtZW50IHRoZW0KKyAgICAgICAgLy8gMS4xIGZlYXR1
cmVzCisgICAgICAgIFNWR0ZFQVRVUkUoU1ZHKQorICAgICAgICBTVkdGRUFUVVJFKFNWR0RPTSkK
KyAgICAgICAgU1ZHRkVBVFVSRTIoU1ZHX1NUQVRJQywgU1ZHLXN0YXRpYykKKyAgICAgICAgU1ZH
RkVBVFVSRTIoU1ZHRE9NX1NUQVRJQywgU1ZHRE9NLXN0YXRpYykKKy8vICAgICAgU1ZHRkVBVFVS
RTIoU1ZHX0FOSU1BVElPTiwgU1ZHLWFuaW1hdGlvbikKKy8vICAgICAgU1ZHRkVBVFVSRTIoU1ZH
RE9NX0FOSU1BVElPTiwgU1ZHRE9NLWFuaW1hdGlvbikKKy8vICAgICAgU1ZHRkVBVFVSRTIoU1ZH
X0RZTkFNSUMsIFNWRy1keW5hbWljKQorLy8gICAgICBTVkdGRUFUVVJFMihTVkdET01fRFlOQU1J
QywgU1ZHRE9NLWR5bmFtaWMpCisgICAgICAgIFNWR0ZFQVRVUkUoQ29yZUF0dHJpYnV0ZSkKKyAg
ICAgICAgU1ZHRkVBVFVSRShTdHJ1Y3R1cmUpCisgICAgICAgIFNWR0ZFQVRVUkUoQmFzaWNTdHJ1
Y3R1cmUpCisgICAgICAgIFNWR0ZFQVRVUkUoQ29udGFpbmVyQXR0cmlidXRlKQorICAgICAgICBT
VkdGRUFUVVJFKENvbmRpdGlvbmFsUHJvY2Vzc2luZykKKyAgICAgICAgU1ZHRkVBVFVSRShJbWFn
ZSkKKyAgICAgICAgU1ZHRkVBVFVSRShTdHlsZSkKKyAgICAgICAgU1ZHRkVBVFVSRShWaWV3cG9y
dEF0dHJpYnV0ZSkKKyAgICAgICAgU1ZHRkVBVFVSRShTaGFwZSkKKy8vICAgICAgU1ZHRkVBVFVS
RShUZXh0KQorLy8gICAgICBTVkdGRUFUVVJFKEJhc2ljVGV4dCkKKyAgICAgICAgU1ZHRkVBVFVS
RShQYWludEF0dHJpYnV0ZSkKKyAgICAgICAgU1ZHRkVBVFVSRShCYXNpY1BhaW50QXR0cmlidXRl
KQorICAgICAgICBTVkdGRUFUVVJFKE9wYWNpdHlBdHRyaWJ1dGUpCisgICAgICAgIFNWR0ZFQVRV
UkUoR3JhcGhpY3NBdHRyaWJ1dGUpCisgICAgICAgIFNWR0ZFQVRVUkUoQmFzZUdyYXBoaWNzQXR0
cmlidXRlKQorICAgICAgICBTVkdGRUFUVVJFKE1hcmtlcikKKy8vICAgICAgU1ZHRkVBVFVSRShD
b2xvclByb2ZpbGUpCisgICAgICAgIFNWR0ZFQVRVUkUoR3JhZGllbnQpCisgICAgICAgIFNWR0ZF
QVRVUkUoUGF0dGVybikKKyAgICAgICAgU1ZHRkVBVFVSRShDbGlwKQorICAgICAgICBTVkdGRUFU
VVJFKEJhc2ljQ2xpcCkKKyAgICAgICAgU1ZHRkVBVFVSRShNYXNrKQorLy8gICAgICBTVkdGRUFU
VVJFKEZpbHRlcikKKy8vICAgICAgU1ZHRkVBVFVSRShCYXNpY0ZpbHRlcikKKyAgICAgICAgU1ZH
RkVBVFVSRShEb2N1bWVudEV2ZW50c0F0dHJpYnV0ZSkKKyAgICAgICAgU1ZHRkVBVFVSRShHcmFw
aGljYWxFdmVudHNBdHRyaWJ1dGUpCisgICAgICAgIFNWR0ZFQVRVUkUoQW5pbWF0aW9uRXZlbnRz
QXR0cmlidXRlKQorLy8gICAgICBTVkdGRUFUVVJFKEN1cnNvcikKKyAgICAgICAgU1ZHRkVBVFVS
RShIeXBlcmxpbmtpbmcpCisgICAgICAgIFNWR0ZFQVRVUkUoWGxpbmtBdHRyaWJ1dGUpCisvLyAg
ICAgIFNWR0ZFQVRVUkUoRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKKy8vICAgICAgU1ZHRkVB
VFVSRShWaWV3KQorICAgICAgICBTVkdGRUFUVVJFKFNjcmlwdCkKKy8vICAgICAgU1ZHRkVBVFVS
RShBbmltYXRpb24pCisvLyAgICAgIFNWR0ZFQVRVUkUoRm9udCkKKy8vICAgICAgU1ZHRkVBVFVS
RShCYXNpY0ZvbnQpCisgICAgICAgIFNWR0ZFQVRVUkUoRXh0ZW5zaWJpbGl0eSkKKyAgICAgICAg
aW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gc3ZnRmVhdHVyZXMuY29udGFp
bnMoZmVhdHVyZS5pbXBsKCkpOworfQorI2VuZGlmCisKIERPTUltcGxlbWVudGF0aW9uOjp+RE9N
SW1wbGVtZW50YXRpb24oKQogewogfQpAQCAtNjksNiArMTYzLDE4IEBAIGJvb2wgRE9NSW1wbGVt
ZW50YXRpb246Omhhc0ZlYXR1cmUgKGNvbnMKICAgICAgICAgcmV0dXJuIHZlcnNpb24uaXNFbXB0
eSgpIHx8IHZlcnNpb24gPT0gIjIuMCI7CiAgICAgaWYgKGxvd2VyID09ICJ4cGF0aCIpCiAgICAg
ICAgIHJldHVybiB2ZXJzaW9uLmlzRW1wdHkoKSB8fCB2ZXJzaW9uID09ICIzLjAiOworCisjaWYg
U1ZHX1NVUFBPUlQKKyAgICBpZiAoKHZlcnNpb24uaXNFbXB0eSgpIHx8IHZlcnNpb24gPT0gIjEu
MSIpICYmIGZlYXR1cmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVh
dHVyZSMiLCBmYWxzZSkpIHsKKyAgICAgICAgaWYgKGlzU1ZHMTFGZWF0dXJlKGZlYXR1cmUucmln
aHQoZmVhdHVyZS5sZW5ndGgoKSAtIDM1KSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAoKHZlcnNpb24uaXNFbXB0eSgpIHx8IHZlcnNpb24gPT0gIjEuMCIpICYm
IGZlYXR1cmUuc3RhcnRzV2l0aCgib3JnLnczYy4iLCBmYWxzZSkpIHsKKyAgICAgICAgaWYgKGlz
U1ZHMTBGZWF0dXJlKGZlYXR1cmUucmlnaHQoZmVhdHVyZS5sZW5ndGgoKSAtIDgpKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogICAgIAogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTEzMiw2ICsyMzgsOSBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1l
bnRhdGlvbjo6CiAgICAgICAgIGlmIChxdWFsaWZpZWROYW1lSXNNYWxmb3JtZWQocXVhbGlmaWVk
TmFtZSkgfHwKICAgICAgICAgICAgIChjb2xvbnBvcyA+PSAwICYmIG5hbWVzcGFjZVVSSS5pc051
bGwoKSkgfHwKICAgICAgICAgICAgIChjb2xvbnBvcyA9PSAzICYmIHF1YWxpZmllZE5hbWVbMF0g
PT0gJ3gnICYmIHF1YWxpZmllZE5hbWVbMV0gPT0gJ20nICYmIHF1YWxpZmllZE5hbWVbMl0gPT0g
J2wnICYmCisjaWYgU1ZHX1NVUFBPUlQKKyAgICAgICAgICAgICBuYW1lc3BhY2VVUkkgIT0gU1ZH
TmFtZXM6OnN2Z05hbWVzcGFjZVVSSSAmJgorI2VuZGlmCiAgICAgICAgICAgICAgbmFtZXNwYWNl
VVJJICE9ICJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiKSkgewogCiAgICAg
ICAgICAgICBlYyA9IE5BTUVTUEFDRV9FUlI7CkBAIC0xNDYsNyArMjU1LDEzIEBAIFBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgUmVmUHRyPERvY3VtZW50PiBkb2MgPSBuZXcgRG9jdW1lbnQodGhpcywgMCk7Cisg
ICAgUmVmUHRyPERvY3VtZW50PiBkb2M7CisjaWYgU1ZHX1NVUFBPUlQKKyAgICBpZiAobmFtZXNw
YWNlVVJJID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkpCisgICAgICAgIGRvYyA9IG5ldyBT
VkdEb2N1bWVudCh0aGlzLCAwKTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgZG9jID0gbmV3
IERvY3VtZW50KHRoaXMsIDApOwogCiAgICAgLy8gbm93IGdldCB0aGUgaW50ZXJlc3RpbmcgcGFy
dHMgb2YgdGhlIGRvY3R5cGUKICAgICBpZiAoZG9jdHlwZSkKQEAgLTIxNCw0ICszMjksMTEgQEAg
UGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aQogICAgIHJldHVybiBkLnJl
bGVhc2UoKTsKIH0KIAorI2lmIFNWR19TVVBQT1JUCitQYXNzUmVmUHRyPFNWR0RvY3VtZW50PiBE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlU1ZHRG9jdW1lbnQoRnJhbWVWaWV3KiB2KQoreworICAg
IHJldHVybiBuZXcgU1ZHRG9jdW1lbnQodGhpcywgdik7Cit9CisjZW5kaWYKKwogfQpJbmRleDog
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5oCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudFR5cGU7CiBjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBI
VE1MRG9jdW1lbnQ7CisjaWYgU1ZHX1NVUFBPUlQKK2NsYXNzIFNWR0RvY3VtZW50OworI2VuZGlm
CiBjbGFzcyBTdHJpbmc7CiBjbGFzcyBUZXh0RG9jdW1lbnQ7CiAKQEAgLTYxLDYgKzY0LDkgQEAg
cHVibGljOgogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAgICBQYXNz
UmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7CiAgICAgUGFz
c1JlZlB0cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7
CisjaWYgU1ZHX1NVUFBPUlQKKyAgICBQYXNzUmVmUHRyPFNWR0RvY3VtZW50PiBjcmVhdGVTVkdE
b2N1bWVudChGcmFtZVZpZXcqID0gMCk7CisjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIHN0
YXRpYyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIC0gb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBj
bGFzcyBzaG91bGQKICAgICAvLyBldmVyIGJlIHByZXNlbnQsIGFuZCBpcyB1c2VkIGFzIGEgZmFj
dG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIERvY3VtZW50IG9iamVjdHMKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbi5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9u
LmlkbAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3JlL2tzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHRE9NSW1wbGVtZW50YXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
bW9kdWxlIHN2ZwotewotCWludGVyZmFjZSBbbm9kcHRyLCBDb25kaXRpb25hbD1TVkddIFNWR0RP
TUltcGxlbWVudGF0aW9uIDogY29yZTo6RE9NSW1wbGVtZW50YXRpb24gewotCQlib29sZWFuIGhh
c0ZlYXR1cmUoaW4gY29yZTo6RE9NU3RyaW5nIGZlYXR1cmUsCi0JCQkJCQkgICBpbiBjb3JlOjpE
T01TdHJpbmcgdmVyc2lvbik7Ci0KLQkJLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLQkJ
Y29yZTo6RG9jdW1lbnRUeXBlIGNyZWF0ZURvY3VtZW50VHlwZShpbiBjb3JlOjpET01TdHJpbmcg
cXVhbGlmaWVkTmFtZSwKLQkJCQkJCQkJCQlpbiBjb3JlOjpET01TdHJpbmcgcHVibGljSWQsCi0J
CQkJCQkJCQkJaW4gY29yZTo6RE9NU3RyaW5nIHN5c3RlbUlkKQotCQkJCQkJCQkJCXJhaXNlcyhj
b3JlOjpET01FeGNlcHRpb24pOwotCi0JCS8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0J
CWNvcmU6OkRvY3VtZW50IGNyZWF0ZURvY3VtZW50KGluIGNvcmU6OkRPTVN0cmluZyBuYW1lc3Bh
Y2VVUkksCi0JCQkJCQkJCWluIGNvcmU6OkRPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotCQkJCQkJ
CQlpbiBjb3JlOjpEb2N1bWVudFR5cGUgZG9jdHlwZSkKLQkJCQkJCQkJcmFpc2VzKGNvcmU6OkRP
TUV4Y2VwdGlvbik7Ci0KLQkJLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjogW3NwZWNpZmll
ZCBpbiBzZXBlcmF0ZWQgRE9NSW1wbGVtZW50YXRpb25DU1NdCi0JCWNzczo6Q1NTU3R5bGVTaGVl
dCBjcmVhdGVDU1NTdHlsZVNoZWV0KGluIGNvcmU6OkRPTVN0cmluZyB0aXRsZSwKLQkJCQkJCQkJ
CQkgIGluIGNvcmU6OkRPTVN0cmluZyBtZWRpYSkgcmFpc2VzKGNvcmU6OkRPTUV4Y2VwdGlvbik7
Ci0JfTsKLX07CkluZGV4OiBXZWJDb3JlL2tzdmcyL21pc2MvS1NWR1RpbWVTY2hlZHVsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVkdWxlci5jcHAJ
KHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3ZnMi9taXNjL0tTVkdUaW1lU2NoZWR1bGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RP
TUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZH
TmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCkluZGV4OiBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdDb2xvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
Q29sb3IuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0NvbG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIlNWR0NvbG9y
LmgiCiAKICNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RP
TUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAia3N2Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkTnVtYmVyTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDEzIEBACiAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TVkdEb2N1bWVudDo6U1ZHRG9jdW1lbnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1l
VmlldyAqdmlldykgOiBEb2N1bWVudChpLCB2aWV3KQorU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50
KERPTUltcGxlbWVudGF0aW9uICppLCBGcmFtZVZpZXcgKnZpZXcpIDogRG9jdW1lbnQoaSwgdmll
dykKIHsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCShyZXZpc2lvbiAxNTgxMCkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDExICszMCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdFbGVtZW50
OwogICAgIGNsYXNzIFNWR1NWR0VsZW1lbnQ7Ci0gICAgY2xhc3MgU1ZHRE9NSW1wbGVtZW50YXRp
b247CisgICAgY2xhc3MgRE9NSW1wbGVtZW50YXRpb247CiAKICAgICBjbGFzcyBTVkdEb2N1bWVu
dCA6IHB1YmxpYyBEb2N1bWVudCB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdEb2N1bWVudChT
VkdET01JbXBsZW1lbnRhdGlvbiAqaSwgRnJhbWVWaWV3ICp2aWV3KTsKKyAgICAgICAgU1ZHRG9j
dW1lbnQoRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmlldyk7CiAgICAgICAgIHZp
cnR1YWwgflNWR0RvY3VtZW50KCk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNT
VkdEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogI2luY2x1ZGUgIkF0
dHIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2lu
Y2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRl
bnNpb25zLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50
LmgiCkBAIC01NCw3ICs1NCw3IEBAIFNWR0VsZW1lbnQ6On5TVkdFbGVtZW50KCkKIAogYm9vbCBT
VkdFbGVtZW50Ojppc1N1cHBvcnRlZChTdHJpbmdJbXBsKiBmZWF0dXJlLCBTdHJpbmdJbXBsKiB2
ZXJzaW9uKSBjb25zdAogewotICAgIGlmIChTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2Uo
KS0+aGFzRmVhdHVyZShmZWF0dXJlLCB2ZXJzaW9uKSkKKyAgICBpZiAoRE9NSW1wbGVtZW50YXRp
b246Omluc3RhbmNlKCktPmhhc0ZlYXR1cmUoZmVhdHVyZSwgdmVyc2lvbikpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5o
YXNGZWF0dXJlKGZlYXR1cmUsIHZlcnNpb24pOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVCbGVuZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZF
QmxlbmRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAKICNp
bmNsdWRlICJTVkdGRUJsZW5kRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVy
YXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlNWR0RP
TUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
U3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkTnVtYmVyTGlzdC5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9u
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24u
aCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJT
VkdBbmltYXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIK
LSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUgIlNWR0FuaW1h
dGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHRkVMaWdodEVsZW1lbnQuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkRW51bWVy
YXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkTnVtYmVyLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFRmxv
b2RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUZsb29k
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVG
bG9vZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZFN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw2IEBACiAjaW5jbHVkZSAiU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5o
IgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVk
U3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmgiCi0jaW5jbHVkZSAiU1ZHRE9NSW1wbGVtZW50YXRpb24uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R0ZFTWVyZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdG
RU1lcmdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVNZXJnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAj
aW5jbHVkZSAiU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4
MTApCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiU1ZHRkVPZmZzZXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0
cmluZy5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkTnVtYmVyLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgot
I2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5oIgogCiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdGRVRpbGVFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5o
IgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlci5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZEludGVnZXIu
aCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXIuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1BhdHRlcm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBACiAj
aW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmlu
Zy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgotI2luY2x1ZGUgIlNW
R0RPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU1ZHSGVscGVyLmgiCiAjaW5jbHVkZSAi
U1ZHTWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdQb2x5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBACiAKICNp
bmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01J
bXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0hlbHBlci5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHUG9pbnRMaXN0LmgiCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdG9wRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
U3RvcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1
ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZHU3RvcEVsZW1lbnQuaCIKICNpbmNs
dWRlICJTVkdBbmltYXRlZE51bWJlci5oIgotI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9u
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdTdHlsZWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4MTApCisrKyBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJQYXRoLmgiCiAjaW5jbHVk
ZSAiU1ZHQW5pbWF0ZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdIZWxwZXIuaCIKICNpbmNs
dWRlICJTVkdNYXRyaXguaCIKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdT
dHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5k
ZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDE1ODEwKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUsMTIgQEAKICNp
bmNsdWRlICJTVkdUZXN0cy5oIgogCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKLSNpbmNsdWRlICJT
VkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdIZWxwZXIuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1N0cmlu
Z0xpc3QuaCIKICNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24u
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgU1ZHVGVz
dHM6OmlzVmFsaWQoKSBjb25zdAogICAgIGZvcih1bnNpZ25lZCBsb25nIGkgPSAwO2kgPCBsaXN0
LT5udW1iZXJPZkl0ZW1zKCk7aSsrKQogICAgIHsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gU3Ry
aW5nKGxpc3QtPmdldEl0ZW0oaSkpOwotICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIVNW
R0RPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5oYXNGZWF0dXJlKHZhbHVlLmltcGwoKSwg
MCkpCisgICAgICAgIGlmKHZhbHVlLmlzRW1wdHkoKSB8fCAhRE9NSW1wbGVtZW50YXRpb246Omlu
c3RhbmNlKCktPmhhc0ZlYXR1cmUodmFsdWUsIFN0cmluZygpKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFibGUu
Y3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1RyYW5zZm9ybWFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiU1ZHTWF0
cml4LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxl
ZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgImtzdmcuaCIKIApJbmRleDog
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCShyZXZpc2lvbiAxNTgxMCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg5LDggKzg5LDggQEAKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUg
IlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCi0jaW5jbHVkZSAiU1ZH
RE9NSW1wbGVtZW50YXRpb24uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAt
NTgzLDcgKzU4Myw3IEBAIHZvaWQgRnJhbWU6OmJlZ2luKGNvbnN0IEtVUkwmIHVybCkKIAogI2lm
IFNWR19TVVBQT1JUCiAgIGlmIChkLT5tX3JlcXVlc3QubV9yZXNwb25zZU1JTUVUeXBlID09ICJp
bWFnZS9zdmcreG1sIikKLSAgICBkLT5tX2RvYyA9IFNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0
YW5jZSgpLT5jcmVhdGVEb2N1bWVudChkLT5tX3ZpZXcuZ2V0KCkpOworICAgIGQtPm1fZG9jID0g
RE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKCktPmNyZWF0ZVNWR0RvY3VtZW50KGQtPm1fdmll
dy5nZXQoKSk7CiAgIGVsc2UKICNlbmRpZgogICBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzWE1M
TUlNRVR5cGUoZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9964</attachid>
            <date>2006-08-09 14:07:19 -0700</date>
            <delta_ts>2006-08-11 12:46:56 -0700</delta_ts>
            <desc>Fix for case-insensitive lookup</desc>
            <filename>10230-6.diff</filename>
            <type>text/plain</type>
            <size>1263</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTgyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEgQEAKKzIwMDYtMDgtMDkgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmVydCBhbiBv
dmVyLW9wdGltaXphdGlvbiBzdGVwIHRoYXQgbWVzc2VkIHVwIHRoZSBIYXNoU2V0IGxvb2t1cC4K
KworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisKIDIwMDYtMDgtMDggIFJv
YiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRl
eDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMTU4MjIpCisrKyBXZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDkg
QEAgc3RhdGljIGJvb2wgcXVhbGlmaWVkTmFtZUlzTWFsZm9ybWVkKGNvbgogCiAjaWZkZWYgU1ZH
X1NVUFBPUlQKIAotI2RlZmluZSBTVkdGRUFUVVJFMihuYW1lLCB2YWx1ZSkgQXRvbWljU3RyaW5n
IFNWR0ZFQVRVUkVfIyNuYW1lKCN2YWx1ZSk7IFwKKyNkZWZpbmUgU1ZHRkVBVFVSRTIobmFtZSwg
dmFsdWUpIHN0YXRpYyBBdG9taWNTdHJpbmcgU1ZHRkVBVFVSRV8jI25hbWUoI3ZhbHVlKTsgXAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2Z0ZlYXR1cmVzLmFkZChTVkdGRUFUVVJFXyMj
bmFtZS5pbXBsKCkpOwotI2RlZmluZSBTVkdGRUFUVVJFKGZlYXR1cmUpIEF0b21pY1N0cmluZyBT
VkdGRUFUVVJFXyMjZmVhdHVyZSgjZmVhdHVyZSk7IFwKKyNkZWZpbmUgU1ZHRkVBVFVSRShmZWF0
dXJlKSBzdGF0aWMgQXRvbWljU3RyaW5nIFNWR0ZFQVRVUkVfIyNmZWF0dXJlKCNmZWF0dXJlKTsg
XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2Z0ZlYXR1cmVzLmFkZChTVkdGRUFUVVJF
XyMjZmVhdHVyZS5pbXBsKCkpOwogCiBib29sIGlzU1ZHMTBGZWF0dXJlKGNvbnN0IFN0cmluZyAm
ZmVhdHVyZSkK
</data>
<flag name="review"
          id="3083"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9987</attachid>
            <date>2006-08-11 12:46:56 -0700</date>
            <delta_ts>2006-08-11 12:55:37 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>10230-7.diff</filename>
            <type>text/plain</type>
            <size>6964</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTgzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTEgQEAKKzIwMDYtMDgtMDkgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldmVydCBhbiBv
dmVyLW9wdGltaXphdGlvbiBzdGVwIHRoYXQgbWVzc2VkIHVwIHRoZSBIYXNoU2V0IGxvb2t1cC4K
KworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisKIDIwMDYtMDgtMTIgIE9s
aXZlciAgPG9qaDE2QHN0dWRlbnQuY2FudGVyYnVyeS5hYy5uej4KIAogICAgICAgICBSdWJiZXIg
c3RhbXBlZCBieSB0aW0KSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9u
IDE1ODMyKQorKysgV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw4NyArNTMsOTAgQEAgc3RhdGljIGJvb2wgcXVhbGlmaWVkTmFtZUlzTWFsZm9y
bWVkKGNvbgogCiAjaWZkZWYgU1ZHX1NVUFBPUlQKIAotI2RlZmluZSBTVkdGRUFUVVJFMihuYW1l
LCB2YWx1ZSkgQXRvbWljU3RyaW5nIFNWR0ZFQVRVUkVfIyNuYW1lKCN2YWx1ZSk7IFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdmdGZWF0dXJlcy5hZGQoU1ZHRkVBVFVSRV8jI25hbWUu
aW1wbCgpKTsKLSNkZWZpbmUgU1ZHRkVBVFVSRShmZWF0dXJlKSBBdG9taWNTdHJpbmcgU1ZHRkVB
VFVSRV8jI2ZlYXR1cmUoI2ZlYXR1cmUpOyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3ZnRmVhdHVyZXMuYWRkKFNWR0ZFQVRVUkVfIyNmZWF0dXJlLmltcGwoKSk7CitzdGF0aWMgdm9p
ZCBhZGRTdHJpbmcoSGFzaFNldDxTdHJpbmdJbXBsKiwgQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHNl
dCwgY29uc3QKK2NoYXIqIHN0cmluZykKK3sKKyAgICBTdHJpbmdJbXBsKiBzID0gbmV3IFN0cmlu
Z0ltcGwoc3RyaW5nKTsKKyAgICBzLT5yZWYoKTsKKyAgICBzZXQuYWRkKHMpOworfQogCi1ib29s
IGlzU1ZHMTBGZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKK3N0YXRpYyBib29sIGlzU1ZH
MTBGZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKIHsKICAgICBzdGF0aWMgYm9vbCBpbml0
aWFsaXplZCA9IGZhbHNlOwogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZ0ltcGwqLCBDYXNlSW5z
ZW5zaXRpdmVIYXNoPiBzdmdGZWF0dXJlczsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CiAgICAg
ICAgIC8vIFRPRE86IGZlYXR1cmVzIG5lZWQgdG8gYmUgdW5jb21tZW50ZWQgd2hlbiB3ZSBpbXBs
ZW1lbnQgdGhlbQogICAgICAgICAvLyAxLjAgZmVhdHVyZXMKLSAgICAgICAgU1ZHRkVBVFVSRTIo
U1ZHLCBzdmcpCi0gICAgICAgIFNWR0ZFQVRVUkUyKFNWR19TVEFUSUMsIHN2Zy5zdGF0aWMpCi0v
LyAgICAgIFNWR0ZFQVRVUkUyKFNWR19BTklNQVRJT04sIHN2Zy5hbmltYXRpb24pCi0vLyAgICAg
IFNWR0ZFQVRVUkUyKFNWR19EWU5BTUlDLCBzdmcuZHluYW1pYykKLS8vICAgICAgU1ZHRkVBVFVS
RTIoRE9NX1NWR19BTklNQVRJT04sIHN2Zy5kb20uYW5pbWF0aW9uKQotLy8gICAgICBTVkdGRUFU
VVJFMihET01fU1ZHX0RZTkFNSUMsIHN2Zy5kb20uZHluYW1pYykKLSAgICAgICAgU1ZHRkVBVFVS
RTIoRE9NLCBkb20pCi0gICAgICAgIFNWR0ZFQVRVUkUyKERPTV9TVkcsIGRvbS5zdmcpCi0gICAg
ICAgIFNWR0ZFQVRVUkUyKERPTV9TVkdfU1RBVElDLCBkb20uc3ZnLnN0YXRpYykKLS8vICAgICAg
U1ZHRkVBVFVSRTIoU1ZHX0FMTCwgc3ZnLmFsbCkKLS8vICAgICAgU1ZHRkVBVFVSRTIoRE9NX1NW
R19BTEwsIGRvbS5zdmcuYWxsKQorICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJzdmci
KTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAic3ZnLnN0YXRpYyIpOworLy8gICAg
ICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJzdmcuYW5pbWF0aW9uIik7CisvLyAgICAgIGFkZFN0
cmluZyhzdmdGZWF0dXJlcywgInN2Zy5keW5hbWljIik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdG
ZWF0dXJlcywgInN2Zy5kb20uYW5pbWF0aW9uIik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdGZWF0
dXJlcywgInN2Zy5kb20uZHluYW1pYyIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMs
ICJkb20iKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiZG9tLnN2ZyIpOworICAg
ICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJkb20uc3ZnLnN0YXRpYyIpOworLy8gICAgICBh
ZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJzdmcuYWxsIik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdG
ZWF0dXJlcywgImRvbS5zdmcuYWxsIik7CiAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIHN2Z0ZlYXR1cmVzLmNvbnRhaW5zKGZlYXR1cmUuaW1wbCgpKTsKIH0K
IAotYm9vbCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUpCitzdGF0aWMgYm9v
bCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUpCiB7CiAgICAgc3RhdGljIGJv
b2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmdJbXBsKiwg
Q2FzZUluc2Vuc2l0aXZlSGFzaD4gc3ZnRmVhdHVyZXM7CiAgICAgaWYgKCFpbml0aWFsaXplZCkg
ewogICAgICAgICAvLyBUT0RPOiBmZWF0dXJlcyBuZWVkIHRvIGJlIHVuY29tbWVudGVkIHdoZW4g
d2UgaW1wbGVtZW50IHRoZW0KICAgICAgICAgLy8gMS4xIGZlYXR1cmVzCi0gICAgICAgIFNWR0ZF
QVRVUkUoU1ZHKQotICAgICAgICBTVkdGRUFUVVJFKFNWR0RPTSkKLSAgICAgICAgU1ZHRkVBVFVS
RTIoU1ZHX1NUQVRJQywgU1ZHLXN0YXRpYykKLSAgICAgICAgU1ZHRkVBVFVSRTIoU1ZHRE9NX1NU
QVRJQywgU1ZHRE9NLXN0YXRpYykKLS8vICAgICAgU1ZHRkVBVFVSRTIoU1ZHX0FOSU1BVElPTiwg
U1ZHLWFuaW1hdGlvbikKLS8vICAgICAgU1ZHRkVBVFVSRTIoU1ZHRE9NX0FOSU1BVElPTiwgU1ZH
RE9NLWFuaW1hdGlvbikKLS8vICAgICAgU1ZHRkVBVFVSRTIoU1ZHX0RZTkFNSUMsIFNWRy1keW5h
bWljKQotLy8gICAgICBTVkdGRUFUVVJFMihTVkdET01fRFlOQU1JQywgU1ZHRE9NLWR5bmFtaWMp
Ci0gICAgICAgIFNWR0ZFQVRVUkUoQ29yZUF0dHJpYnV0ZSkKLSAgICAgICAgU1ZHRkVBVFVSRShT
dHJ1Y3R1cmUpCi0gICAgICAgIFNWR0ZFQVRVUkUoQmFzaWNTdHJ1Y3R1cmUpCi0gICAgICAgIFNW
R0ZFQVRVUkUoQ29udGFpbmVyQXR0cmlidXRlKQotICAgICAgICBTVkdGRUFUVVJFKENvbmRpdGlv
bmFsUHJvY2Vzc2luZykKLSAgICAgICAgU1ZHRkVBVFVSRShJbWFnZSkKLSAgICAgICAgU1ZHRkVB
VFVSRShTdHlsZSkKLSAgICAgICAgU1ZHRkVBVFVSRShWaWV3cG9ydEF0dHJpYnV0ZSkKLSAgICAg
ICAgU1ZHRkVBVFVSRShTaGFwZSkKLS8vICAgICAgU1ZHRkVBVFVSRShUZXh0KQotLy8gICAgICBT
VkdGRUFUVVJFKEJhc2ljVGV4dCkKLSAgICAgICAgU1ZHRkVBVFVSRShQYWludEF0dHJpYnV0ZSkK
LSAgICAgICAgU1ZHRkVBVFVSRShCYXNpY1BhaW50QXR0cmlidXRlKQotICAgICAgICBTVkdGRUFU
VVJFKE9wYWNpdHlBdHRyaWJ1dGUpCi0gICAgICAgIFNWR0ZFQVRVUkUoR3JhcGhpY3NBdHRyaWJ1
dGUpCi0gICAgICAgIFNWR0ZFQVRVUkUoQmFzZUdyYXBoaWNzQXR0cmlidXRlKQotICAgICAgICBT
VkdGRUFUVVJFKE1hcmtlcikKLS8vICAgICAgU1ZHRkVBVFVSRShDb2xvclByb2ZpbGUpCi0gICAg
ICAgIFNWR0ZFQVRVUkUoR3JhZGllbnQpCi0gICAgICAgIFNWR0ZFQVRVUkUoUGF0dGVybikKLSAg
ICAgICAgU1ZHRkVBVFVSRShDbGlwKQotICAgICAgICBTVkdGRUFUVVJFKEJhc2ljQ2xpcCkKLSAg
ICAgICAgU1ZHRkVBVFVSRShNYXNrKQotLy8gICAgICBTVkdGRUFUVVJFKEZpbHRlcikKLS8vICAg
ICAgU1ZHRkVBVFVSRShCYXNpY0ZpbHRlcikKLSAgICAgICAgU1ZHRkVBVFVSRShEb2N1bWVudEV2
ZW50c0F0dHJpYnV0ZSkKLSAgICAgICAgU1ZHRkVBVFVSRShHcmFwaGljYWxFdmVudHNBdHRyaWJ1
dGUpCi0gICAgICAgIFNWR0ZFQVRVUkUoQW5pbWF0aW9uRXZlbnRzQXR0cmlidXRlKQotLy8gICAg
ICBTVkdGRUFUVVJFKEN1cnNvcikKLSAgICAgICAgU1ZHRkVBVFVSRShIeXBlcmxpbmtpbmcpCi0g
ICAgICAgIFNWR0ZFQVRVUkUoWGxpbmtBdHRyaWJ1dGUpCi0vLyAgICAgIFNWR0ZFQVRVUkUoRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKLS8vICAgICAgU1ZHRkVBVFVSRShWaWV3KQotICAgICAg
ICBTVkdGRUFUVVJFKFNjcmlwdCkKLS8vICAgICAgU1ZHRkVBVFVSRShBbmltYXRpb24pCi0vLyAg
ICAgIFNWR0ZFQVRVUkUoRm9udCkKLS8vICAgICAgU1ZHRkVBVFVSRShCYXNpY0ZvbnQpCi0gICAg
ICAgIFNWR0ZFQVRVUkUoRXh0ZW5zaWJpbGl0eSkKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1
cmVzLCAiU1ZHIik7CisgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIlNWR0RPTSIpOwor
ICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJTVkctc3RhdGljIik7CisgICAgICAgIGFk
ZFN0cmluZyhzdmdGZWF0dXJlcywgIlNWR0RPTS1zdGF0aWMiKTsKKy8vICAgICAgYWRkU3RyaW5n
KHN2Z0ZlYXR1cmVzLCAiU1ZHLWFuaW1hdGlvbik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdGZWF0
dXJlcywgIlNWR0RPTS1hbmltYXRpb24pOworLy8gICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMs
ICJTVkctZHluYW1pYyk7CisvLyAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIlNWR0RPTS1k
eW5hbWljKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiQ29yZUF0dHJpYnV0ZSIp
OworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJTdHJ1Y3R1cmUiKTsKKyAgICAgICAg
YWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiQmFzaWNTdHJ1Y3R1cmUiKTsKKyAgICAgICAgYWRkU3Ry
aW5nKHN2Z0ZlYXR1cmVzLCAiQ29udGFpbmVyQXR0cmlidXRlIik7CisgICAgICAgIGFkZFN0cmlu
ZyhzdmdGZWF0dXJlcywgIkNvbmRpdGlvbmFsUHJvY2Vzc2luZyIpOworICAgICAgICBhZGRTdHJp
bmcoc3ZnRmVhdHVyZXMsICJJbWFnZSIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMs
ICJTdHlsZSIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJWaWV3cG9ydEF0dHJp
YnV0ZSIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJTaGFwZSIpOworLy8gICAg
ICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJUZXh0Iik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdG
ZWF0dXJlcywgIkJhc2ljVGV4dCIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJQ
YWludEF0dHJpYnV0ZSIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJCYXNpY1Bh
aW50QXR0cmlidXRlIik7CisgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIk9wYWNpdHlB
dHRyaWJ1dGUiKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiR3JhcGhpY3NBdHRy
aWJ1dGUiKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiQmFzZUdyYXBoaWNzQXR0
cmlidXRlIik7CisgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIk1hcmtlciIpOworLy8g
ICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJDb2xvclByb2ZpbGUiKTsKKyAgICAgICAgYWRk
U3RyaW5nKHN2Z0ZlYXR1cmVzLCAiR3JhZGllbnQiKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0Zl
YXR1cmVzLCAiUGF0dGVybiIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJDbGlw
Iik7CisgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIkJhc2ljQ2xpcCIpOworICAgICAg
ICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJNYXNrIik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdG
ZWF0dXJlcywgIkZpbHRlciIpOworLy8gICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJCYXNp
Y0ZpbHRlciIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJEb2N1bWVudEV2ZW50
c0F0dHJpYnV0ZSIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJHcmFwaGljYWxF
dmVudHNBdHRyaWJ1dGUiKTsKKyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiQW5pbWF0
aW9uRXZlbnRzQXR0cmlidXRlIik7CisvLyAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywgIkN1
cnNvciIpOworICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJIeXBlcmxpbmtpbmciKTsK
KyAgICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiWGxpbmtBdHRyaWJ1dGUiKTsKKy8vICAg
ICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCIpOwor
Ly8gICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJWaWV3Iik7CisgICAgICAgIGFkZFN0cmlu
ZyhzdmdGZWF0dXJlcywgIlNjcmlwdCIpOworLy8gICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMs
ICJBbmltYXRpb24iKTsKKy8vICAgICAgYWRkU3RyaW5nKHN2Z0ZlYXR1cmVzLCAiRm9udCIpOwor
Ly8gICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJCYXNpY0ZvbnQiKTsKKyAgICAgICAgYWRk
U3RyaW5nKHN2Z0ZlYXR1cmVzLCAiRXh0ZW5zaWJpbGl0eSIpOwogICAgICAgICBpbml0aWFsaXpl
ZCA9IHRydWU7CiAgICAgfQogICAgIHJldHVybiBzdmdGZWF0dXJlcy5jb250YWlucyhmZWF0dXJl
LmltcGwoKSk7Cg==
</data>
<flag name="review"
          id="3097"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>