<?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>207478</bug_id>
          
          <creation_ts>2020-02-10 10:24:08 -0800</creation_ts>
          <short_desc>a lot gcc warnings because of %{public}s format specifier</short_desc>
          <delta_ts>2021-04-27 21:21:31 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225137</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Víctor M. Jáquez L.">vjaquez</reporter>
          <assigned_to name="Víctor M. Jáquez L.">vjaquez</assigned_to>
          <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>krollin</cc>
    
    <cc>mjs</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616947</commentid>
    <comment_count>0</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-10 10:24:08 -0800</bug_when>
    <thetext>While compiling with GCC a lot of big warnings are shown because those macros boil down to vfprintf() in Linux, and that {public} specifier is invalid. It is only for os_log [1]


1. https://developer.apple.com/documentation/os/logging?language=objc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616956</commentid>
    <comment_count>1</comment_count>
      <attachid>390262</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-10 10:40:08 -0800</bug_when>
    <thetext>Created attachment 390262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617571</commentid>
    <comment_count>2</comment_count>
      <attachid>390262</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-11 13:01:20 -0800</bug_when>
    <thetext>Comment on attachment 390262
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=390262&amp;action=review

&gt; Source/WTF/wtf/Assertions.h:487
&gt; +#define LOGDSTR &quot;s&quot;

In WebKit coding style we normally prefer words over clumps of letters. I don’t know that LOGDSTR is a good choice for the project. Is this referring to something named &quot;logd&quot;? Maybe PUBLIC_LOG_STRING would be a good name? Also, why not put the &quot;%&quot; into the macro?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617592</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-02-11 13:31:04 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Also, why not put the &quot;%&quot; into the macro?

I think that leaving the &quot;%&quot; out of the macro follows standard macros like PRId64.

Any naming convention should take into account other types of format specifications that might be used. For instance:

PUBLIC_LOG_STRING: {public}s
PRIVATE_LOG_STRING: {private}s
FUTUREOPTION_LOG_STRING: {future-option}s

PUBLIC_LOG_OBJCOBJECT: {public}@
PRIVATE_LOG_OBJCOBJECT: {private}@
FUTUREOPTION_LOG_OBJCOBJECT: {future-option}@

So while I like LOGDSTR for its brevity, it doesn&apos;t scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617737</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-11 16:08:35 -0800</bug_when>
    <thetext>(In reply to Keith Rollin from comment #3)
&gt; (In reply to Darin Adler from comment #2)
&gt; &gt; Also, why not put the &quot;%&quot; into the macro?
&gt; 
&gt; I think that leaving the &quot;%&quot; out of the macro follows standard macros like
&gt; PRId64.

It does. That alone doesn’t seem like reason to follow suit, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617817</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-02-11 19:05:19 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; (In reply to Keith Rollin from comment #3)
&gt; &gt; (In reply to Darin Adler from comment #2)
&gt; &gt; &gt; Also, why not put the &quot;%&quot; into the macro?
&gt; &gt; 
&gt; &gt; I think that leaving the &quot;%&quot; out of the macro follows standard macros like
&gt; &gt; PRId64.
&gt; 
&gt; It does. That alone doesn’t seem like reason to follow suit, though.

What&apos;s the reason for not following suit?

Personally, I&apos;d like to be consistent with the standard. That way I don&apos;t have to remember &quot;OK, add the % for the standard macros, but leave it out for WebKit macros. Or is it the other way around...&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617909</commentid>
    <comment_count>6</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-12 02:25:45 -0800</bug_when>
    <thetext>(In reply to Keith Rollin from comment #5)
&gt; (In reply to Darin Adler from comment #4)
&gt; &gt; (In reply to Keith Rollin from comment #3)
&gt; &gt; &gt; (In reply to Darin Adler from comment #2)
&gt; &gt; &gt; &gt; Also, why not put the &quot;%&quot; into the macro?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think that leaving the &quot;%&quot; out of the macro follows standard macros like
&gt; &gt; &gt; PRId64.
&gt; &gt; 
&gt; &gt; It does. That alone doesn’t seem like reason to follow suit, though.
&gt; 
&gt; What&apos;s the reason for not following suit?
&gt; 
&gt; Personally, I&apos;d like to be consistent with the standard. That way I don&apos;t
&gt; have to remember &quot;OK, add the % for the standard macros, but leave it out
&gt; for WebKit macros. Or is it the other way around...&quot;.

I do agree. It is better, IMO, to be consistent with other formatting macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617927</commentid>
    <comment_count>7</comment_count>
      <attachid>390505</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-12 03:49:26 -0800</bug_when>
    <thetext>Created attachment 390505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617928</commentid>
    <comment_count>8</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-12 03:51:58 -0800</bug_when>
    <thetext>(In reply to Keith Rollin from comment #3)
&gt; (In reply to Darin Adler from comment #2)
&gt; &gt; Also, why not put the &quot;%&quot; into the macro?
&gt; 
&gt; I think that leaving the &quot;%&quot; out of the macro follows standard macros like
&gt; PRId64.
&gt; 
&gt; Any naming convention should take into account other types of format
&gt; specifications that might be used. For instance:
&gt; 
&gt; PUBLIC_LOG_STRING: {public}s

Done. Now this symbol is used.

&gt; PRIVATE_LOG_STRING: {private}s
&gt; FUTUREOPTION_LOG_STRING: {future-option}s
&gt; 
&gt; PUBLIC_LOG_OBJCOBJECT: {public}@
&gt; PRIVATE_LOG_OBJCOBJECT: {private}@
&gt; FUTUREOPTION_LOG_OBJCOBJECT: {future-option}@
&gt; 
&gt; So while I like LOGDSTR for its brevity, it doesn&apos;t scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618274</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-12 15:58:34 -0800</bug_when>
    <thetext>(In reply to Keith Rollin from comment #5)
&gt; What&apos;s the reason for not following suit?

To me PUBLIC_LOG_STRING doesn’t seem much like PRId64. I agree that if you thought of them as similar and closely related then we’d want them to match.

&gt; Personally, I&apos;d like to be consistent with the standard. That way I don&apos;t
&gt; have to remember &quot;OK, add the % for the standard macros, but leave it out
&gt; for WebKit macros. Or is it the other way around...&quot;.

OK, tastes differ, and I certainly won’t insist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619632</commentid>
    <comment_count>10</comment_count>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2020-02-17 05:26:59 -0800</bug_when>
    <thetext>May I have r+ &amp; q+ ? 

O:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619729</commentid>
    <comment_count>11</comment_count>
      <attachid>390505</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 10:48:04 -0800</bug_when>
    <thetext>Comment on attachment 390505
Patch

Clearing flags on attachment: 390505

Committed r256745: &lt;https://trac.webkit.org/changeset/256745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619730</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 10:48:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619731</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-17 10:49:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/59517129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390262</attachid>
            <date>2020-02-10 10:40:08 -0800</date>
            <delta_ts>2020-02-12 03:49:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207478-20200210194007.patch</filename>
            <type>text/plain</type>
            <size>44452</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBhOTIwNWI3YjkxODc4ZGUzMjRhNzYz
NTBmZmM2N2JiZjlhOWZmOGEuLmI1YzkzNDA5ZTIwODhiNGFiYzU0MGRiYzljZmQwZDM4Yzk3MmVk
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMTAgIFbDrWN0b3IgTWFudWVsIErDoXF1
ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBhIGxvdCBnY2Mgd2Fybmlu
Z3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBzcGVjaWZpZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQ3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBMT0dEU1RSIG1hY3JvIHdoaWNo
IGlzIGRlZmluZWQgZGVwZW5kaW5nIG9uIGlmIG9zX2xvZygpWzFdIGlzCisgICAgICAgIHVzZWQg
b3IgcmF0aGVyIG9sZCBwcmludGYoKS4KKworICAgICAgICBPUyBMb2dnaW5nIHByb2Nlc3NlcyBm
b3JtYXQgc3BlY2lmaWVycyBmb3IgcHJpdmFjeSBtYXR0ZXJzLCBmb3IKKyAgICAgICAgZXhhbXBs
ZSBkeW5hbWljIHN0cmluZ3MsIHdoaWNoIGRlbWFuZHMgJXtwdWJsaWN9cy4gQnV0IHRoZXNlCisg
ICAgICAgIHNwZWNpZmllcnMgYXJlIG5vdCB2YWxpZCBmb3IgcHJpbnRmKCkuCisKKyAgICAgICAg
Q2FsbHMgdG8gbG9nZ2luZyB3aXRoIHRoaXMgc3BlY2lmaWVyLCBpZiB0aGV5IGFyZSBub3QgTWFj
L0RhcndpbmcKKyAgICAgICAgZXhjbHVzaXZlLCB1c2UgdGhpcyBuZXcgbWFjcm8gdG8gYXZvaWQg
Z2NjIHdhcm5pbmdzLgorCisgICAgICAgIDEuIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9k
b2N1bWVudGF0aW9uL29zL2xvZ2dpbmc/bGFuZ3VhZ2U9b2JqYworCisgICAgICAgICogd3RmL0Fz
c2VydGlvbnMuaDoKKyAgICAgICAgKiB3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OmxvZ01lbW9y
eVVzYWdlQ2hhbmdlKToKKwogMjAyMC0wMi0wOSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmUtZW5hYmxlIExUTyBmb3IgQVJNIGJ1aWxkcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGExNWI3MzFjYmVhOWZlM2RkODFjODVkNDMzZGNkNmQzYmM4ZThkZmYuLjg2NTBiNTY3M2U1
NjkwZGU2YmFlZDdhOGYxMTRhMGYwN2Q2OGNhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAyMC0wMi0xMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIGEgbG90IGdjYyB3YXJuaW5ncyBiZWNhdXNlIG9mICV7cHVibGlj
fXMgZm9ybWF0IHNwZWNpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3NDc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIExPR0RTVFIgbWFjcm8gd2hpY2ggaXMgZGVmaW5lZCBkZXBlbmRpbmcg
b24gaWYgb3NfbG9nKClbMV0gaXMKKyAgICAgICAgdXNlZCBvciByYXRoZXIgb2xkIHByaW50Zigp
LgorCisgICAgICAgIE9TIExvZ2dpbmcgcHJvY2Vzc2VzIGZvcm1hdCBzcGVjaWZpZXJzIGZvciBw
cml2YWN5IG1hdHRlcnMsIGZvcgorICAgICAgICBleGFtcGxlIGR5bmFtaWMgc3RyaW5ncywgd2hp
Y2ggZGVtYW5kcyAle3B1YmxpY31zLiBCdXQgdGhlc2UKKyAgICAgICAgc3BlY2lmaWVycyBhcmUg
bm90IHZhbGlkIGZvciBwcmludGYoKS4KKworICAgICAgICBDYWxscyB0byBsb2dnaW5nIHdpdGgg
dGhpcyBzcGVjaWZpZXIsIGlmIHRoZXkgYXJlIG5vdCBNYWMvRGFyd2luZworICAgICAgICBleGNs
dXNpdmUsIHVzZSB0aGlzIG5ldyBtYWNybyB0byBhdm9pZCBnY2Mgd2FybmluZ3MuCisKKyAgICAg
ICAgMS4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24vb3MvbG9nZ2lu
Zz9sYW5ndWFnZT1vYmpjCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXVl
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb1JlbGVhc2VMb2dnaW5nKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpvcGVuU1FMaXRlRGF0YWJhc2Up
OgorCiAyMDIwLTAyLTA5ICBCYXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4K
IAogICAgICAgICBSZXBsYWNlIHJlZHVuZGFudCBmdW5jdGlvbnMgd2l0aCB2YXJpYWRpYyB0ZW1w
bGF0ZSBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWEyZGIyNGE2NjVhZDA2YjQ1Yjc1N2ViOGE5MmFl
ZjJlZmU2MmY4OS4uYmUwYjkxZTQ5MDU5NmViY2MyMTEwODAzYzgzOGQ3NjY3YjQwZWVhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAyMC0wMi0xMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVl
eiBMZWFsICA8dmphcXVlekBpZ2FsaWEuY29tPgorCisgICAgICAgIGEgbG90IGdjYyB3YXJuaW5n
cyBiZWNhdXNlIG9mICV7cHVibGljfXMgZm9ybWF0IHNwZWNpZmllcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NDc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExPR0RTVFIgbWFjcm8gd2hpY2gg
aXMgZGVmaW5lZCBkZXBlbmRpbmcgb24gaWYgb3NfbG9nKClbMV0gaXMKKyAgICAgICAgdXNlZCBv
ciByYXRoZXIgb2xkIHByaW50ZigpLgorCisgICAgICAgIE9TIExvZ2dpbmcgcHJvY2Vzc2VzIGZv
cm1hdCBzcGVjaWZpZXJzIGZvciBwcml2YWN5IG1hdHRlcnMsIGZvcgorICAgICAgICBleGFtcGxl
IGR5bmFtaWMgc3RyaW5ncywgd2hpY2ggZGVtYW5kcyAle3B1YmxpY31zLiBCdXQgdGhlc2UKKyAg
ICAgICAgc3BlY2lmaWVycyBhcmUgbm90IHZhbGlkIGZvciBwcmludGYoKS4KKworICAgICAgICBD
YWxscyB0byBsb2dnaW5nIHdpdGggdGhpcyBzcGVjaWZpZXIsIGlmIHRoZXkgYXJlIG5vdCBNYWMv
RGFyd2luZworICAgICAgICBleGNsdXNpdmUsIHVzZSB0aGlzIG5ldyBtYWNybyB0byBhdm9pZCBn
Y2Mgd2FybmluZ3MuCisKKyAgICAgICAgMS4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2Rv
Y3VtZW50YXRpb24vb3MvbG9nZ2luZz9sYW5ndWFnZT1vYmpjCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW5JVFBEYXRhYmFzZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0Nv
cnJlY3RUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OmVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZURh
dGFSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpkZWJ1Z0xvZ0RvbWFpbnNJbkJhdGNoZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnN0YXJ0TmV0d29ya0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vy
dmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkRmFpbCk6CisgICAgICAgICogVUlQcm9jZXNz
L0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6bG9nSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2
aXR5OjpBY3Rpdml0eSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2
aXR5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbik6CisKIDIwMjAtMDItMDkgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS11bV1BFXSBFeHBvc2UgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJM
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Bc3NlcnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0
Zi9Bc3NlcnRpb25zLmgKaW5kZXggYmViMDg1MzdlOGE1NDY5YzZhMWZmNDdmZGM1ZDIzYTk4NTM4
Njc5Mi4uZTdlYTk3YjE3OTQ1MjY3NTcxMWU3YzVjYTNkMjIzN2NhOWUwZWIwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Fzc2Vy
dGlvbnMuaApAQCAtNDg0LDYgKzQ4NCw3IEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1
cmVEdWVUb1VucmVhY2hhYmxlQ29kZSA9IGZhbHNlOwogLyogUkVMRUFTRV9MT0cgKi8KIAogI2lm
IFJFTEVBU0VfTE9HX0RJU0FCTEVECisjZGVmaW5lIExPR0RTVFIgInMiCiAjZGVmaW5lIFJFTEVB
U0VfTE9HKGNoYW5uZWwsIC4uLikgKCh2b2lkKTApCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9S
KGNoYW5uZWwsIC4uLikgTE9HX0VSUk9SKF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xP
R19GQVVMVChjaGFubmVsLCAuLi4pIExPR19FUlJPUihfX1ZBX0FSR1NfXykKQEAgLTQ5OCw2ICs0
OTksNyBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWlsdXJlRHVlVG9VbnJlYWNoYWJsZUNv
ZGUgPSBmYWxzZTsKIAogI2RlZmluZSBSRUxFQVNFX0xPR19TVEFDS1RSQUNFKGNoYW5uZWwpICgo
dm9pZCkwKQogI2Vsc2UKKyNkZWZpbmUgTE9HRFNUUiAie3B1YmxpY31zIgogI2RlZmluZSBSRUxF
QVNFX0xPRyhjaGFubmVsLCAuLi4pIG9zX2xvZyhMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0No
YW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCAu
Li4pIG9zX2xvZ19lcnJvcihMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFf
QVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVChjaGFubmVsLCAuLi4pIG9zX2xvZ19m
YXVsdChMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggNTM3OWMwYTRkNWM4YzZm
MzY3ZDkxNjk2ZTBkNmExOGM1ZDlmZWMwZi4uMzA4NGE2NmQwMjRkZWE3NDkzYjdmZGU0NmMyMGEz
ZDJlMjE3NGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBA
IC0yNzUsMjMgKzI3NSwyMSBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6bWVtb3J5UHJl
c3N1cmVTdGF0dXNDaGFuZ2VkKCkKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZM
b2dnZXI6OmxvZ01lbW9yeVVzYWdlQ2hhbmdlKCkKIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKLSNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiV7cHVibGljfXMiCiAjZGVmaW5lIE1F
TU9SWVBSRVNTVVJFX0xPRyguLi4pIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCBfX1ZBX0FS
R1NfXykKICNlbHNlCi0jZGVmaW5lIFNUUklOR19TUEVDSUZJQ0FUSU9OICIlcyIKICNkZWZpbmUg
TUVNT1JZUFJFU1NVUkVfTE9HKC4uLikgV1RGTG9nQWx3YXlzKF9fVkFfQVJHU19fKQogI2VuZGlm
CiAKICAgICBhdXRvIGN1cnJlbnRNZW1vcnkgPSBwbGF0Zm9ybU1lbW9yeVVzYWdlKCk7CiAgICAg
aWYgKCFjdXJyZW50TWVtb3J5IHx8ICFtX2luaXRpYWxNZW1vcnkpIHsKLSAgICAgICAgTUVNT1JZ
UFJFU1NVUkVfTE9HKCJNZW1vcnkgcHJlc3N1cmUgcmVsaWVmOiAiIFNUUklOR19TUEVDSUZJQ0FU
SU9OICI6IChVbmFibGUgdG8gZ2V0IGRpcnR5IG1lbW9yeSBpbmZvcm1hdGlvbiBmb3IgcHJvY2Vz
cykiLCBtX2xvZ1N0cmluZyk7CisgICAgICAgIE1FTU9SWVBSRVNTVVJFX0xPRygiTWVtb3J5IHBy
ZXNzdXJlIHJlbGllZjogJSIgTE9HRFNUUiAiOiAoVW5hYmxlIHRvIGdldCBkaXJ0eSBtZW1vcnkg
aW5mb3JtYXRpb24gZm9yIHByb2Nlc3MpIiwgbV9sb2dTdHJpbmcpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgbG9uZyByZXNpZGVudERpZmYgPSBjdXJyZW50TWVtb3J5LT5yZXNpZGVu
dCAtIG1faW5pdGlhbE1lbW9yeS0+cmVzaWRlbnQ7CiAgICAgbG9uZyBwaHlzaWNhbERpZmYgPSBj
dXJyZW50TWVtb3J5LT5waHlzaWNhbCAtIG1faW5pdGlhbE1lbW9yeS0+cGh5c2ljYWw7CiAKLSAg
ICBNRU1PUllQUkVTU1VSRV9MT0coIk1lbW9yeSBwcmVzc3VyZSByZWxpZWY6ICIgU1RSSU5HX1NQ
RUNJRklDQVRJT04gIjogcmVzID0gJXp1LyV6dS8lbGQsIHJlcytzd2FwID0gJXp1LyV6dS8lbGQi
LAorICAgIE1FTU9SWVBSRVNTVVJFX0xPRygiTWVtb3J5IHByZXNzdXJlIHJlbGllZjogJSIgTE9H
RFNUUiAiOiByZXMgPSAlenUvJXp1LyVsZCwgcmVzK3N3YXAgPSAlenUvJXp1LyVsZCIsCiAgICAg
ICAgIG1fbG9nU3RyaW5nLAogICAgICAgICBtX2luaXRpYWxNZW1vcnktPnJlc2lkZW50LCBjdXJy
ZW50TWVtb3J5LT5yZXNpZGVudCwgcmVzaWRlbnREaWZmLAogICAgICAgICBtX2luaXRpYWxNZW1v
cnktPnBoeXNpY2FsLCBjdXJyZW50TWVtb3J5LT5waHlzaWNhbCwgcGh5c2ljYWxEaWZmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9BZENsaWNrQXR0cmlidXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAKaW5kZXggMzdkNmFk
M2EwODY1ZTEwYjlmYWQ0ZTNkMWExZTA3NjlkM2UwY2IxYi4uNThjZjQ2YmRlOGQ4YjhiNzg2YzBk
NzYwNjRjY2VhMTk2MjExNGY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Fk
Q2xpY2tBdHRyaWJ1dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tB
dHRyaWJ1dGlvbi5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0
aW9uOjpDb252ZXJzaW9uPiBBZENsaWNrQXR0cmlidXRpb246OnBhcnNlQ29udmVyc2lvblJlcXUK
IAogICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXcocmVkaXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0
cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwgcmVkaXJlY3RVUkwucGF0aEVuZCgpIC0gcmVk
aXJlY3RVUkwucGF0aFN0YXJ0KCkpOwogICAgIGlmIChwYXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5z
dGFydHNXaXRoKGFkQ2xpY2tBdHRyaWJ1dGlvblBhdGhQcmVmaXgpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lORk9fSUYoZGVidWdNb2RlRW5hYmxlZCgpLCBBZENsaWNrQXR0cmlidXRpb24sICJD
b252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBhdGggZGlkIG5vdCBz
dGFydCB3aXRoICV7cHVibGljfXMuIiwgYWRDbGlja0F0dHJpYnV0aW9uUGF0aFByZWZpeCk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdNb2RlRW5hYmxlZCgpLCBBZENsaWNrQXR0
cmlidXRpb24sICJDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMIHBh
dGggZGlkIG5vdCBzdGFydCB3aXRoICUiIExPR0RTVFIgIi4iLCBhZENsaWNrQXR0cmlidXRpb25Q
YXRoUHJlZml4KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGZmYTk2ZTg3YzFiNzQ1MDNlM2JlOGFkMDIyMTk1
NGMzZDBkZjJhYzEuLjUwZjNlNWEwZjA3YWI5OWNiYjY0MGEzNjBhYjcxMDhjMDA2NWNjNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMTI4LDkgKzEyOCw5IEBA
IHN0YXRpYyB2b2lkIGRvUmVsZWFzZUxvZ2dpbmcocnRjOjpMb2dnaW5nU2V2ZXJpdHkgc2V2ZXJp
dHksIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCiAgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOwogI2Vs
c2UKICAgICBpZiAoc2V2ZXJpdHkgPT0gcnRjOjpMU19FUlJPUikKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoV2ViUlRDLCAiTGliV2ViUlRDIGVycm9yOiAle3B1YmxpY31zIiwgbWVzc2FnZSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkxpYldlYlJUQyBlcnJvcjogJSIg
TE9HRFNUUiwgbWVzc2FnZSk7CiAgICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhXZWJSVEMs
ICJMaWJXZWJSVEMgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1lc3NhZ2UpOworICAgICAgICBSRUxF
QVNFX0xPRyhXZWJSVEMsICJMaWJXZWJSVEMgbWVzc2FnZTogJSIgTE9HRFNUUiwgbWVzc2FnZSk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCA3NmEwM2YwNzM1
N2Q2MjJjMGY1MTVlYTBkYmU5ZmJmZTQyNjQ0MWJiLi4wMzkyYjI1YjA4NTUwNDJjZWVjMjZhZTMx
ZDdhYTkyZjY3NDc4NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtMTYwLDE0
ICsxNjAsMTQgQEAgdm9pZCBSZWdpc3RyYXRpb25EYXRhYmFzZTo6b3BlblNRTGl0ZURhdGFiYXNl
KGNvbnN0IFN0cmluZyYgZnVsbEZpbGVuYW1lKQogICAgIAogICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2UgPSBlbnN1cmVWYWxpZFJlY29yZHNUYWJsZSgpOwogICAgIGlmICghZXJyb3JNZXNzYWdlLmlz
TnVsbCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJlbnN1
cmVWYWxpZFJlY29yZHNUYWJsZSBmYWlsZWQsIHJlYXNvbjogJXtwdWJsaWN9cyIsIGVycm9yTWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdv
cmtlciwgImVuc3VyZVZhbGlkUmVjb3Jkc1RhYmxlIGZhaWxlZCwgcmVhc29uOiAlIiBMT0dEU1RS
LCBlcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIGRvUmVjb3ZlcnlBdHRlbXB0
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgZXJyb3JNZXNzYWdlID0gaW1w
b3J0UmVjb3JkcygpOwogICAgIGlmICghZXJyb3JNZXNzYWdlLmlzTnVsbCgpKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJpbXBvcnRSZWNvcmRzIGZhaWxlZCwg
cmVhc29uOiAle3B1YmxpY31zIiwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiaW1wb3J0UmVjb3JkcyBmYWlsZWQs
IHJlYXNvbjogJSIgTE9HRFNUUiwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICBkb1JlY292ZXJ5QXR0ZW1wdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXgg
MzdjNzUxY2NiYmZkMmYzNDRhY2IyY2E5MmQ3ZWJmNmM2OTM3NGUyZS4uOTdiMTNjY2RmMzVjYWE1
ZDQ0ZTMxODZlN2U4MmI0ZDk4M2JhNzJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yODYsMTcgKzI4NiwxNyBAQCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUoV2ViUmVzbwogCiAgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3Rz
KCJPYnNlcnZlZERvbWFpbnMiX3MpKSB7CiAgICAgICAgIGlmICghY3JlYXRlU2NoZW1hKCkpIHsK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVhdGVTY2hlbWEgZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAlIiBMT0dEU1RSICIsIGRhdGFiYXNlIHBhdGg6ICUiIExPR0RTVFIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICBpZiAoIW1fZGF0YWJhc2UudHVybk9u
SW5jcmVtZW50YWxBdXRvVmFjdXVtKCkpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJuT25JbmNy
ZW1lbnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJu
T25JbmNyZW1lbnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RS
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIGlmICghcHJlcGFyZVN0
YXRlbWVudHMoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0
aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRz
IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgTE9HRFNUUiAiLCBkYXRhYmFzZSBwYXRoOiAlIiBM
T0dEU1RSLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpLCBtX3N0b3JhZ2VEaXJlY3Rv
cnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVuSVRQRGF0YWJhc2UoKQogICAgICAgICBtX2lz
TmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlRmlsZSA9IGZhbHNlOwogCiAgICAgaWYg
KCFtX2RhdGFiYXNlLm9wZW4obV9zdG9yYWdlRGlyZWN0b3J5UGF0aCkpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFz
ZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9z
dG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RSICIsIGRhdGFiYXNlIHBhdGg6
ICUiIExPR0RTVFIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURp
cmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KIH0KQEAgLTMzMCwxNCArMzMwLDE0IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKCkKIHsKICAgICBTUUxpdGVT
dGF0ZW1lbnQgc3RhdGVtZW50KG1fZGF0YWJhc2UsICJTRUxFQ1QgMSBmcm9tIHNxbGl0ZV9tYXN0
ZXIgV0hFUkUgdHlwZT0ndGFibGUnIGFuZCB0YmxfbmFtZT0/Iik7CiAgICAgaWYgKHN0YXRlbWVu
dC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0NvcnJl
Y3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6
ICUiIExPR0RTVFIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgYm9vbCBoYXNBbGxUYWJsZXMgPSB0cnVlOwogICAg
IGZvciAoYXV0byB0YWJsZSA6IHRhYmxlcykgewogICAgICAgICBpZiAoc3RhdGVtZW50LmJpbmRU
ZXh0KDEsIHRhYmxlKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
c0NvcnJlY3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNz
YWdlOiAlIiBMT0dEU1RSLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBpZiAoc3RhdGVtZW50LnN0
ZXAoKSAhPSBTUUxJVEVfUk9XKSB7CkBAIC00MTgsNyArNDE4LDcgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcygpCiAgICAgICAg
IHx8ICFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lRG9tYWlucykKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNv
bW1hbmQoY3JlYXRlVW5pcXVlSW5kZXhTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQogICAg
ICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRleFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjcmVh
dGVVbmlxdWVJbmRpY2VzIGZhaWxlZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpjcmVhdGVVbmlxdWVJbmRpY2VzIGZhaWxlZCB0byBleGVjdXRlLCBlcnJvciBtZXNzYWdl
OiAlIiBMT0dEU1RSLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUyNSw3ICs1MjUsNyBA
QCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVt
ZW50cygpCiAgICAgICAgIHx8IG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudC5wcmVwYXJl
KCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZ2V0TW9zdFJlY2VudGx5VXBkYXRlZFRpbWVz
dGFtcFN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgICkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJl
LCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RSLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC04MTcsNyArODE3LDcgQEAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHk+IFJlc28KICAg
ICBpZiAobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmJpbmRJbnQoMSwgdGhpcmRQYXJ0
eURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNz
U3RhdGVtZW50LmJpbmRJbnQoMiwgdGhpcmRQYXJ0eURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmJpbmRJbnQoMywgdGhpcmRQ
YXJ0eURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUaGlyZFBh
cnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eURvbWFpbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldFRo
aXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5RG9tYWluLCBlcnJvciBtZXNzYWdlOiAl
IiBMT0dEU1RSLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQogICAgIFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5PiB0aGlyZFBhcnR5RGF0
YUZvclNwZWNpZmljRmlyc3RQYXJ0eURvbWFpbnM7CkBAIC04NDMsNyArODQzLDcgQEAgVmVjdG9y
PFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXQKICAgICBpZiAoc29ydGVkU3RhdGlzdGljcy5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNvcnRlZFN0YXRpc3RpY3MuYmluZFRleHQoMSwgIjEiKQog
ICAgICAgICB8fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDIsICIlIikgIT0gU1FMSVRFX09L
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWdncmVnYXRlZFRoaXJkUGFydHlEYXRhLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6YWdncmVnYXRlZFRoaXJkUGFydHlEYXRhLCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RS
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUxpc3Q7CiAgICAgfQpAQCAtODkyLDIx
ICs4OTIsMjEgQEAgc3RhdGljIHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzZSYKIAogICAgIC8vIFByZXBhcmUKICAg
ICBpZiAobWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dp
dGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICUiIExPR0RTVFIsIGRhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAogICAgIC8vIEJpbmQKICAgICBpZiAobWVkaWFuRGF5c1NpbmNlVUlT
dGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNlVUlT
dGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNlVUlT
dGF0ZW1lbnQuYmluZEludCgzLCAocHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlv
bkNvdW50IC8gMikgIT0gU1FMSVRFX09LKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9m
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRN
ZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3Nh
Z2U6ICUiIExPR0RTVFIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIC8vIFN0ZXAK
ICAgICBpZiAobWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2Vy
SW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNX
aXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RSLCBkYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtOTIxLDIxICs5
MjEsMjEgQEAgc3RhdGljIHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0
aFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzZSYKIAogICAgIC8vIFByZXBhcmUKICAgICBp
ZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNl
ckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgTE9HRFNUUiwgZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCiAgICAgLy8gQmluZAogICAgIGlmIChsb3dlck1lZGlhbkRheXNT
aW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFu
RGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbG93ZXJN
ZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDMsICgocHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVzZXJJbnRlcmFjdGlvbkNvdW50IC0gMSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0
aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgTE9HRFNUUiwgZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCiAgICAgLy8gU3RlcAogICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJU3Rh
dGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFu
T2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdl
dE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVz
c2FnZTogJSIgTE9HRFNUUiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKQEAgLTk0OCw3ICs5NDgsNyBAQCB1bnNpZ25lZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXMoKSBj
bwogewogICAgIGF1dG8gc3RlcFZhbHVlID0gbV9jb3VudFByZXZhbGVudFJlc291cmNlc1N0YXRl
bWVudC5zdGVwKCk7CiAgICAgaWYgKHN0ZXBWYWx1ZSAhPSBTUUxJVEVfUk9XICYmIHN0ZXBWYWx1
ZSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE51bWJlck9mUHJldmFsZW50
UmVzb3VyY2VzIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TnVtYmVyT2ZQcmV2
YWxlbnRSZXNvdXJjZXMgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICUiIExPR0RTVFIs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTgwLDcgKzk4MCw3IEBAIHVuc2lnbmVk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxlbnRSZXNv
dXJjZURheXNTaW5jZVVJCiAgICAgCiAgICAgLy8gUHJlcGFyZQogICAgIGlmICh0b3BQcmV2YWxl
bnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZh
bGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZh
bGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJSIgTE9HRFNU
UiwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC05ODgsMTQgKzk4OCwxNCBAQCB1bnNp
Z25lZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0VG9wUHJldmVsZW50
UmVzb3VyY2VEYXlzU2luY2VVSQogICAgIC8vIEJpbmQKICAgICBpZiAodG9wUHJldmFsZW50UmVz
b3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9uU3RhdGVtZW50
LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHRvcFByZXZhbGVudFJlc291
cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5i
aW5kSW50KDIsIDEpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZhbGVu
dFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRl
bWVudCBxdWVyeSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZhbGVudFJl
c291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVu
dCBxdWVyeSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgTE9HRFNUUiwgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCiAgICAgLy8gU3RlcAogICAgIGlmICh0b3BQcmV2
YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0b3BQcmV2
YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25T
dGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMi
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0b3BQcmV2YWxl
bnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICUiIExPR0RTVFIsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAg
CkBAIC0xMDE3LDcgKzEwMTcsNyBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxl
bnRSZXNvdXJjZVdpdGhvdXRVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhcwogICAgICAgICBp
ZiAoZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAg
ICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAwKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgICAgIHx8IGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDMsIChidWNrZXRTaXplIC8g
MikpICE9IFNRTElURV9PSykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYWtlTWVkaWFuV2l0aG91
dFVJUXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeSwgZXJy
b3IgbWVzc2FnZTogJSIgTE9HRFNUUiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQpAQCAtMTAzNCw3ICsxMDM0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdldE1lZGlhbk9mUHJl
dmFsZW50UmVzb3VyY2VXaXRob3V0VXNlckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXMKICAgICAg
ICAgaWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09L
CiAgICAgICAgICAgICB8fCBnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDIsIDApICE9
IFNRTElURV9PSwogICAgICAgICAgICAgfHwgZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMuYmluZElu
dCgyLCAoKGJ1Y2tldFNpemUtMSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Om1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFrZU1l
ZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RSLCBkYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC0xMDUzLDcgKzEwNTMsNyBAQCBzdGF0aWMg
dW5zaWduZWQgZ2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNJblRvcFJlc291cmNlcyhTUUxp
dGVEYXRhYmFzZSYgZGF0YQogICAgICAgICBpZiAocHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9w
LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNv
dXJjZUNvdW50SW5Ub3AuYmluZFRleHQoMiwgIiUiKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAg
IHx8IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDMsIGJ1Y2tldFNpemUpICE9
IFNRTElURV9PSykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJPZlByZXZhbGVudFJl
c291cmNlc0luVG9wUmVzb3VyY2VzLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJPZlByZXZh
bGVudFJlc291cmNlc0luVG9wUmVzb3VyY2VzLCBlcnJvciBtZXNzYWdlOiAlIiBMT0dEU1RSLCBk
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGRmMTRmNjkyNDE2MWVm
Mzg1ODQ4MzM2MTliYTM4NmI2NzIyN2QzOTUuLjRkN2ZjMmIxYzA1ZGYxY2M2ZDQxNTMyYmExM2Y4
NTFiNTZiYmY5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwCkBAIC0zMTYsMTEgKzMxNiwxMSBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiBzdQogICAgIGF1dG8mIHN1YkZyYW1lU3RhdGlzdGljID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3ViRnJhbWVEb21haW4pOwogICAgIHN3aXRjaCAoY29v
a2llQWNjZXNzKHN1YkZyYW1lU3RhdGlzdGljLCB0b3BGcmFtZURvbWFpbikpIHsKICAgICBjYXNl
IENvb2tpZUFjY2Vzczo6Q2Fubm90UmVxdWVzdDoKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19J
RihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiQ2Fubm90IGdyYW50IHN0b3JhZ2Ug
YWNjZXNzIHRvICV7cHVibGljfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIGJsb2NrZWQgaW4gdGhp
cmQtcGFydHkgY29udGV4dHMgYW5kIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlv
biBhcyBmaXJzdC1wYXJ0eS4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElU
UERlYnVnLCAiQ2Fubm90IGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICUiIExPR0RTVFIgIiBzaW5j
ZSBpdHMgY29va2llcyBhcmUgYmxvY2tlZCBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBhbmQgaXQg
aGFzIG5vdCByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uIGFzIGZpcnN0LXBhcnR5LiIsIHN1YkZy
YW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0QWNjZXNzKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgQ29va2llQWNjZXNzOjpCYXNlZE9uQ29va2llUG9saWN5OgotICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcs
ICJObyBuZWVkIHRvIGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICV7cHVibGljfXMgc2luY2UgaXRz
IGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzLiBOb3RlIHRo
YXQgdGhlIHVuZGVybHlpbmcgY29va2llIHBvbGljeSBtYXkgc3RpbGwgYmxvY2sgdGhpcyB0aGly
ZC1wYXJ0eSBmcm9tIHNldHRpbmcgY29va2llcy4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdF
bmFibGVkKCksIElUUERlYnVnLCAiTm8gbmVlZCB0byBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAl
IiBMT0dEU1RSICIgc2luY2UgaXRzIGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIGluIHRoaXJkLXBh
cnR5IGNvbnRleHRzLiBOb3RlIHRoYXQgdGhlIHVuZGVybHlpbmcgY29va2llIHBvbGljeSBtYXkg
c3RpbGwgYmxvY2sgdGhpcyB0aGlyZC1wYXJ0eSBmcm9tIHNldHRpbmcgY29va2llcy4iLCBzdWJG
cmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU3RvcmFnZUFjY2Vzc1N0YXR1czo6SGFzQWNjZXNzKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgQ29va2llQWNjZXNzOjpPbmx5SWZHcmFudGVkOgpAQCAtMzMwLDEzICszMzAsMTMg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKIAogICAgIGF1dG8gdXNlcldhc1Byb21wdGVkRWFy
bGllciA9IGhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoc3ViRnJhbWVT
dGF0aXN0aWMsIHRvcEZyYW1lRG9tYWluKTsKICAgICBpZiAodXNlcldhc1Byb21wdGVkRWFybGll
ciA9PSBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkFib3V0IHRvIGFz
ayB0aGUgdXNlciB3aGV0aGVyIHRoZXkgd2FudCB0byBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAl
e3B1YmxpY31zIHVuZGVyICV7cHVibGljfXMgb3Igbm90LiIsIHN1YkZyYW1lRG9tYWluLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQ
RGVidWcsICJBYm91dCB0byBhc2sgdGhlIHVzZXIgd2hldGhlciB0aGV5IHdhbnQgdG8gZ3JhbnQg
c3RvcmFnZSBhY2Nlc3MgdG8gJSIgTE9HRFNUUiAiIHVuZGVyICUiIExPR0RTVFIgIiBvciBub3Qu
Iiwgc3ViRnJhbWVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdG9wRnJhbWVEb21haW4u
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXM6OlJlcXVpcmVzVXNlclByb21wdCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAodXNlcldhc1Byb21wdGVkRWFybGllciA9PSBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd246OlllcykKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dp
bmdFbmFibGVkKCksIElUUERlYnVnLCAiU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQgdG8gJXtw
dWJsaWN9cyB1bmRlciAle3B1YmxpY31zLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJT
dG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZCB0byAlIiBMT0dEU1RSICIgdW5kZXIgJSIgTE9HRFNU
UiAiLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRvcEZyYW1lRG9t
YWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgc3ViRnJhbWVTdGF0aXN0aWMudGlt
ZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSsrOwogCkBAIC0zNTMs
NyArMzUzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4KICAgICBpZiAoZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiW1Rl
bXBvcmFyeSBjb21iYXRpYmlsaXR5IGZpeF0gU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQgZm9y
ICV7cHVibGljfXMgdW5kZXIgb3BlbmVyIHBhZ2UgZnJvbSAle3B1YmxpY31zLCB3aXRoIHVzZXIg
aW50ZXJhY3Rpb24gaW4gdGhlIG9wZW5lZCB3aW5kb3cuIiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9nZ2luZ0VuYWJsZWQo
KSwgSVRQRGVidWcsICJbVGVtcG9yYXJ5IGNvbWJhdGliaWxpdHkgZml4XSBTdG9yYWdlIGFjY2Vz
cyB3YXMgZ3JhbnRlZCBmb3IgJSIgTE9HRFNUUiAiIHVuZGVyIG9wZW5lciBwYWdlIGZyb20gJSIg
TE9HRFNUUiAiLCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gaW4gdGhlIG9wZW5lZCB3aW5kb3cuIiwg
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9wZW5l
ckRvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJ
bnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3Bl
bmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwogfQogCkBA
IC00MjIsNyArNDIyLDcgQEAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6OmVuc3VyZVByZXZhbGVudFJlc28KICAgICAgICAgYXV0byYg
bWFudWFsUmVzb3VyY2VTdGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdp
c3RyYWJsZURvbWFpbihkZWJ1Z01hbnVhbFByZXZhbGVudFJlc291cmNlKCkpOwogICAgICAgICBz
ZXRQcmV2YWxlbnRSZXNvdXJjZShtYW51YWxSZXNvdXJjZVN0YXRpc3RpYywgUmVzb3VyY2VMb2Fk
UHJldmFsZW5jZTo6SGlnaCk7CiAgICAgICAgIGRvbWFpbnNUb0Jsb2NrLnVuY2hlY2tlZEFwcGVu
ZChkZWJ1Z01hbnVhbFByZXZhbGVudFJlc291cmNlKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19J
TkZPKElUUERlYnVnLCAiRGlkIHNldCAle3B1YmxpY31zIGFzIHByZXZhbGVudCByZXNvdXJjZSBm
b3IgdGhlIHB1cnBvc2VzIG9mIElUUCBEZWJ1ZyBNb2RlLiIsIGRlYnVnTWFudWFsUHJldmFsZW50
UmVzb3VyY2UoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhJVFBEZWJ1ZywgIkRpZCBzZXQgJSIgTE9HRFNUUiAiIGFzIHByZXZhbGVudCByZXNvdXJj
ZSBmb3IgdGhlIHB1cnBvc2VzIG9mIElUUCBEZWJ1ZyBNb2RlLiIsIGRlYnVnTWFudWFsUHJldmFs
ZW50UmVzb3VyY2UoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAgICAgCiAgICAg
cmV0dXJuIGRvbWFpbnNUb0Jsb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAppbmRleCAyMDgyMjRhM2UyNmMxMjU2MmU3NWEwN2FlNTNlNTQxN2E1YzBmMmVi
Li5jMzA3OTI2NjRhYjZkYzZjNjBmZTZhODRmN2E1NTk4ZGYyZTk4M2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVB
U0VfTE9HX0lORk9fSUYobV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBJVFBEZWJ1ZywgIkFib3V0IHRv
IHJlbW92ZSBkYXRhIHJlY29yZHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvU3RyaW5nKGRv
bWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNF
X0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5hYmxlZCwgSVRQRGVidWcsICJBYm91dCB0byBy
ZW1vdmUgZGF0YSByZWNvcmRzIGZvciAlIiBMT0dEU1RSICIuIiwgZG9tYWluc1RvU3RyaW5nKGRv
bWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIHNldERh
dGFSZWNvcmRzQmVpbmdSZW1vdmVkKHRydWUpOwogCkBAIC02MDEsNyArNjAxLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRlYnVnTG9nRG9tYWluc0luQmF0Y2hlcyhjb25z
dCBjaGFyKiBhY3Rpb24sIGMKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChkb21haW5z
LnNpemUoKSA8PSBtYXhOdW1iZXJPZkRvbWFpbnNJbk9uZUxvZ1N0YXRlbWVudCkgewotICAgICAg
ICBSRUxFQVNFX0xPR19JTkZPKElUUERlYnVnLCAiQWJvdXQgdG8gJXtwdWJsaWN9cyBjb29raWVz
IGluIHRoaXJkLXBhcnR5IGNvbnRleHRzIGZvcjogJXtwdWJsaWN9cy4iLCBhY3Rpb24sIGRvbWFp
bnNUb1N0cmluZyhkb21haW5zKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICUiIExPR0RTVFIgIiBjb29raWVzIGluIHRoaXJkLXBh
cnR5IGNvbnRleHRzIGZvcjogJSIgTE9HRFNUUiAiLiIsIGFjdGlvbiwgZG9tYWluc1RvU3RyaW5n
KGRvbWFpbnMpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApA
QCAtNjEyLDE0ICs2MTIsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRl
YnVnTG9nRG9tYWluc0luQmF0Y2hlcyhjb25zdCBjaGFyKiBhY3Rpb24sIGMKICAgICAKICAgICBm
b3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMpIHsKICAgICAgICAgaWYgKGJhdGNoLnNpemUoKSA9
PSBtYXhOdW1iZXJPZkRvbWFpbnNJbk9uZUxvZ1N0YXRlbWVudCkgewotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICV7cHVibGljfXMgY29va2llcyBpbiB0
aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgKCV7cHVibGljfWQgb2YgJXUpOiAle3B1YmxpY31zLiIs
IGFjdGlvbiwgYmF0Y2hOdW1iZXIsIG51bWJlck9mQmF0Y2hlcywgZG9tYWluc1RvU3RyaW5nKGJh
dGNoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oSVRQRGVi
dWcsICJBYm91dCB0byAlIiBMT0dEU1RSICIgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0
cyBmb3IgKCV7cHVibGljfWQgb2YgJXUpOiAlIiBMT0dEU1RSICIuIiwgYWN0aW9uLCBiYXRjaE51
bWJlciwgbnVtYmVyT2ZCYXRjaGVzLCBkb21haW5zVG9TdHJpbmcoYmF0Y2gpLnV0ZjgoKS5kYXRh
KCkpOwogICAgICAgICAgICAgYmF0Y2guc2hyaW5rKDApOwogICAgICAgICAgICAgKytiYXRjaE51
bWJlcjsKICAgICAgICAgfQogICAgICAgICBiYXRjaC5hcHBlbmQoZG9tYWluKTsKICAgICB9CiAg
ICAgaWYgKCFiYXRjaC5pc0VtcHR5KCkpCi0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oSVRQRGVi
dWcsICJBYm91dCB0byAle3B1YmxpY31zIGNvb2tpZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMg
Zm9yICgle3B1YmxpY31kIG9mICV1KTogJXtwdWJsaWN9cy4iLCBhY3Rpb24sIGJhdGNoTnVtYmVy
LCBudW1iZXJPZkJhdGNoZXMsIGRvbWFpbnNUb1N0cmluZyhiYXRjaCkudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8oSVRQRGVidWcsICJBYm91dCB0byAlIiBMT0dEU1RS
ICIgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgKCV7cHVibGljfWQgb2YgJXUp
OiAlIiBMT0dEU1RSICIuIiwgYWN0aW9uLCBiYXRjaE51bWJlciwgbnVtYmVyT2ZCYXRjaGVzLCBk
b21haW5zVG9TdHJpbmcoYmF0Y2gpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA1ODZkOTBkYzM4NDE0OTc4N2VhMjM5Mjk4YjdhZDIw
ZTg5MGFjODA4Li5mZTUyY2Y5NjM5YTkwOTUwZjBkN2RiYzA1NDY1OGNlZjRiMjkyYTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnN0YXJ0KCkKIAogICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsCiAgICAgICAgICAg
ICAgICAgW3RoaXNdIChSZXNvdXJjZUVycm9yJiBlcnJvcikgewotICAgICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogTmV0d29ya0xvYWRDaGVja2VyOjpjaGVj
ayByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSV7cHVibGljfXMsIGVycm9yLmNvZGU9
JWQsIGlzQ2FuY2VsbGF0aW9uPSVkKSIsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVy
cm9yLmVycm9yQ29kZSgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpKTsKKyAgICAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6
Y2hlY2sgcmV0dXJuZWQgYW4gZXJyb3IgKGVycm9yLmRvbWFpbj0lIiBMT0dEU1RSICIsIGVycm9y
LmNvZGU9JWQsIGlzQ2FuY2VsbGF0aW9uPSVkKSIsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpKTsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFlcnJvci5pc0NhbmNlbGxhdGlvbigpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOwogICAgICAgICAgICAgICAgIH0s
CkBAIC0zMzAsNyArMzMwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0
d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBwYXJhbWV0
ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIG1fbmV0d29ya0xvYWQgPSBtYWtl
VW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgJm5ldHdvcmtTZXNzaW9uLT5ibG9iUmVnaXN0cnko
KSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKm5ldHdvcmtTZXNzaW9uKTsKIAotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEdvaW5nIHRvIHRoZSBuZXR3b3JrIChk
ZXNjcmlwdGlvbj0le3B1YmxpY31zKSIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9h
ZDogR29pbmcgdG8gdGhlIG5ldHdvcmsgKGRlc2NyaXB0aW9uPSUiIExPR0RTVFIgIikiLCBtX25l
dHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiBSZXNvdXJjZUxv
YWRJbmZvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VMb2FkSW5mbygpCkBAIC00ODcs
NyArNDg3LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVwdExv
YWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAogdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRS
ZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKGh0dHBT
dGF0dXNDb2RlPSVkLCBNSU1FVHlwZT0le3B1YmxpY31zLCBleHBlY3RlZENvbnRlbnRMZW5ndGg9
JSIgUFJJZDY0ICIsIGhhc0NhY2hlZEVudHJ5Rm9yVmFsaWRhdGlvbj0lZCwgaGFzTmV0d29ya0xv
YWRDaGVja2VyPSVkKSIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2
ZWRSZXNwb25zZS5taW1lVHlwZSgpLnV0ZjgoKS5kYXRhKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCksICEhbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbiwgISFtX25l
dHdvcmtMb2FkQ2hlY2tlcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2
ZVJlc3BvbnNlOiAoaHR0cFN0YXR1c0NvZGU9JWQsIE1JTUVUeXBlPSUiIExPR0RTVFIgIiwgZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoPSUiIFBSSWQ2NCAiLCBoYXNDYWNoZWRFbnRyeUZvclZhbGlkYXRp
b249JWQsIGhhc05ldHdvcmtMb2FkQ2hlY2tlcj0lZCkiLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UubWltZVR5cGUoKS51dGY4KCkuZGF0YSgpLCBy
ZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpLCAhIW1fY2FjaGVFbnRyeUZv
clZhbGlkYXRpb24sICEhbV9uZXR3b3JrTG9hZENoZWNrZXIpOwogCiAgICAgaWYgKGlzTWFpblJl
c291cmNlKCkpCiAgICAgICAgIGRpZFJlY2VpdmVNYWluUmVzb3VyY2VSZXNwb25zZShyZWNlaXZl
ZFJlc3BvbnNlKTsKQEAgLTUzMSw3ICs1MzEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3Bvbgog
ICAgIGlmIChtX25ldHdvcmtMb2FkQ2hlY2tlcikgewogICAgICAgICBhdXRvIGVycm9yID0gbV9u
ZXR3b3JrTG9hZENoZWNrZXItPnZhbGlkYXRlUmVzcG9uc2UobV9uZXR3b3JrTG9hZCA/IG1fbmV0
d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkgOiBvcmlnaW5hbFJlcXVlc3QoKSwgbV9yZXNwb25z
ZSk7CiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogTmV0d29ya0xvYWRDaGVj
a2VyOjp2YWxpZGF0ZVJlc3BvbnNlIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JXtw
dWJsaWN9cywgZXJyb3IuY29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBl
cnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNw
b25zZSByZXR1cm5lZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSUiIExPR0RTVFIgIiwgZXJyb3Iu
Y29kZT0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZNb3ZlKGVycm9yKV0gewogICAgICAgICAgICAg
ICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX25ldHdvcmtMb2FkKQogICAgICAgICAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5kaWRGYWlsTG9hZGluZyhlcnJvcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5jcHAKaW5kZXggMThjNzE5NGZhNDU3NTQ4MjZiMzAwYmFhMjUy
MjI4N2ExZTcxYzc3My4uYTY4N2FjNzQzYTRkMDk5YTJjNmJlNzhlY2E0ZGFhMGU5MGUyYjk4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMTQwLDcgKzE0
MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgYm9vCiAgICAgaWYgKG1faXNEb25lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IChodHRwU3RhdHVzQ29kZT0lZCwgTUlNRVR5cGU9JXtwdWJsaWN9cywgZXhwZWN0ZWRDb250
ZW50TGVuZ3RoPSUiIFBSSWQ2NCAiLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVz
c2FnZT0lZCwgc291cmNlPSV1KSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlc3BvbnNl
Lm1pbWVUeXBlKCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
KCksIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmVzcG9uc2Uuc291cmNlKCkpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IChodHRwU3RhdHVzQ29kZT0lZCwgTUlNRVR5cGU9JSIgTE9H
RFNUUiAiLCBleHBlY3RlZENvbnRlbnRMZW5ndGg9JSIgUFJJZDY0ICIsIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlPSVkLCBzb3VyY2U9JXUpIiwgcmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSwgcmVzcG9uc2UubWltZVR5cGUoKS51dGY4KCkuZGF0YSgpLCByZXNwb25zZS5l
eHBlY3RlZENvbnRlbnRMZW5ndGgoKSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1l
c3NhZ2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXNwb25zZS5zb3VyY2UoKSkpOwogICAgIG1f
d2FzSGFuZGxlZCA9IHRydWU7CiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwogICAgIHNvZnRV
cGRhdGVJZk5lZWRlZCgpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZl
dGNoVGFzazo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgbV90
aW1lb3V0VGltZXIuc3RvcCgpOwogICAgICAgICBzb2Z0VXBkYXRlSWZOZWVkZWQoKTsKICAgICB9
Ci0gICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbDogKGVycm9yLmRvbWFp
bj0le3B1YmxpY31zLCBlcnJvci5jb2RlPSVkKSIsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KCJkaWRGYWlsOiAoZXJyb3IuZG9tYWluPSUiIExPR0RTVFIgIiwgZXJyb3IuY29kZT0lZCkiLCBl
cnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgbV9s
b2FkZXIuZGlkRmFpbExvYWRpbmcoZXJyb3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjY2E3YzBhYzIwNTBhNmYw
YzBiMWVlZWZkMDNmZDM1MmI3NzA4NjJkLi42MWIzMjE1NTc3OWNkN2QzZjg5ZDZlZjc0M2YxM2Jh
ZjJhMDgyN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVBy
b2Nlc3NQcm94eS5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQ
cm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpCiAKIHZvaWQgQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogewotICAgIFJFTEVBU0VfTE9HX0ZBVUxUKElQQywg
IlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSAnJXtwdWJsaWN9czo6JXtwdWJsaWN9cycgZnJv
bSB0aGUgJXtwdWJsaWN9cyBwcm9jZXNzLiIsIG1lc3NhZ2VSZWNlaXZlck5hbWUudG9TdHJpbmco
KS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5nKCkuZGF0YSgpLCBwcm9jZXNzTmFtZSgpLmNo
YXJhY3RlcnMoKSk7CisgICAgUkVMRUFTRV9MT0dfRkFVTFQoSVBDLCAiUmVjZWl2ZWQgYW4gaW52
YWxpZCBtZXNzYWdlICclIiBMT0dEU1RSICI6OiUiIExPR0RTVFIgIicgZnJvbSB0aGUgJSIgTE9H
RFNUUiAiIHByb2Nlc3MuIiwgbWVzc2FnZVJlY2VpdmVyTmFtZS50b1N0cmluZygpLmRhdGEoKSwg
bWVzc2FnZU5hbWUudG9TdHJpbmcoKS5kYXRhKCksIHByb2Nlc3NOYW1lKCkuY2hhcmFjdGVycygp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggYTYzODBlMjA3NmFjNjE3OWY3MTM3NzJiZGRhMjcyZTBi
OGE0YWUyYy4uYTk1OTkzMDAwMGUxM2JkOTBjYTY4NTg5YjgyNThkNzk3YTkxMDU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAsIG1fbmFtZShuYW1lKQogICAgICAgICB7CiAgICAgICAg
ICAgICB0aHJvdHRsZXIuYWRkQWN0aXZpdHkoKnRoaXMpOwotICAgICAgICAgICAgUFJPQ0VTU1RI
Uk9UVExFUl9BQ1RJVklUWV9SRUxFQVNFX0xPRygiQWN0aXZpdHk6IFN0YXJ0aW5nICV7cHVibGlj
fXMgYWN0aXZpdHkgLyAnJXtwdWJsaWN9cyciLAorICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExF
Ul9BQ1RJVklUWV9SRUxFQVNFX0xPRygiQWN0aXZpdHk6IFN0YXJ0aW5nICUiIExPR0RTVFIgIiBh
Y3Rpdml0eSAvICclIiBMT0dEU1RSICInIiwKICAgICAgICAgICAgICAgICB0eXBlID09IEFjdGl2
aXR5VHlwZTo6Rm9yZWdyb3VuZCA/ICJmb3JlZ3JvdW5kIiA6ICJiYWNrZ3JvdW5kIiwgbV9uYW1l
LmNoYXJhY3RlcnMoKSk7CiAgICAgICAgIH0KIApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHZvaWQgaW52YWxpZGF0ZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChp
c1ZhbGlkKCkpOwotICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9BQ1RJVklUWV9SRUxFQVNF
X0xPRygiaW52YWxpZGF0ZTogRW5kaW5nICV7cHVibGljfXMgYWN0aXZpdHkgLyAnJXtwdWJsaWN9
cyciLAorICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9BQ1RJVklUWV9SRUxFQVNFX0xPRygi
aW52YWxpZGF0ZTogRW5kaW5nICUiIExPR0RTVFIgIiBhY3Rpdml0eSAvICclIiBMT0dEU1RSICIn
IiwKICAgICAgICAgICAgICAgICB0eXBlID09IEFjdGl2aXR5VHlwZTo6Rm9yZWdyb3VuZCA/ICJm
b3JlZ3JvdW5kIiA6ICJiYWNrZ3JvdW5kIiwgbV9uYW1lLmNoYXJhY3RlcnMoKSk7CiAgICAgICAg
ICAgICBtX3Rocm90dGxlci0+cmVtb3ZlQWN0aXZpdHkoKnRoaXMpOwogICAgICAgICAgICAgbV90
aHJvdHRsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggNmJhNGE4MmFkMWEyZDQzY2Y2NzgxODYxYjEwOWQ0ZWE1Y2Q2ZjViYy4uOWVhNTI5
Zjg4MjViZjg0ZjJhZDdmZTYzNTllMTE3YjhjZWZjYmM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMTIyLDEwICszMTIyLDEwIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBCiAgICAgICAgIGJvb2wgc2hvdWxkUHJvY2Vzc1N3YXAgPSBwcm9jZXNzRm9y
TmF2aWdhdGlvbi5wdHIoKSAhPSBzb3VyY2VQcm9jZXNzLnB0cigpOwogICAgICAgICBpZiAoc2hv
dWxkUHJvY2Vzc1N3YXApIHsKICAgICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlv
bjo6U3RvcEFsbExvYWRzOwotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9j
ZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBzd2FwcGluZyBw
cm9jZXNzICVpIHdpdGggcHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1Ymxp
Y31zIiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvY2Vzc0Zvck5hdmlnYXRpb24tPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiwgc3dhcHBpbmcgcHJvY2VzcyAlaSB3aXRoIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRp
b24sIHJlYXNvbjogJSIgTE9HRFNUUiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvY2Vzc0Zvck5h
dmlnYXRpb24tPnByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICIoUHJvY2Vzc1N3YXBwaW5nKSBTd2l0Y2hp
bmcgZnJvbSBwcm9jZXNzICVpIHRvIG5ldyBwcm9jZXNzICglaSkgZm9yIG5hdmlnYXRpb24gJSIg
UFJJdTY0ICIgJyVzJyIsIHByb2Nlc3NJZGVudGlmaWVyKCksIHByb2Nlc3NGb3JOYXZpZ2F0aW9u
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdh
dGlvbi0+bG9nZ2luZ1N0cmluZygpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246IGtlZXAgdXNpbmcgcHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29u
OiAle3B1YmxpY31zIiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBrZWVwIHVzaW5nIHByb2Nlc3MgJWkgZm9y
IG5hdmlnYXRpb24sIHJlYXNvbjogJSIgTE9HRFNUUiwgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVh
c29uLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIGlmIChzaG91bGRQcm9jZXNzU3dhcCkgewog
ICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwcm9jZXNzIHRvIGJlIHVzZWQgZm9yIHRoZSBu
YXZpZ2F0aW9uIGRvZXMgbm90IGdldCBzaHV0RG93biBub3cgZHVlIHRvIGRlc3Ryb3lpbmcgU3Vz
cGVuZGVkUGFnZVByb3h5IG9yIFByb3Zpc2lvbmFsUGFnZVByb3h5IG9iamVjdHMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390505</attachid>
            <date>2020-02-12 03:49:26 -0800</date>
            <delta_ts>2020-02-17 10:48:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207478-20200212124924.patch</filename>
            <type>text/plain</type>
            <size>45227</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVlNTRjZDQyNDlkZTJhYTAzMzQ0NzQy
OTgzZmRmY2I1NzkwNjA2ZTcuLmYyY2U5MjkyYmU4ZmM5MTI5MGE4MWNjNWRmNzk4OTBhYTM2NDU1
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMTAgIFbDrWN0b3IgTWFudWVsIErDoXF1
ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBhIGxvdCBnY2Mgd2Fybmlu
Z3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBzcGVjaWZpZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQ3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBQVUJMSUNfTE9HX1NUUklORyBt
YWNybyB3aGljaCBpcyBkZWZpbmVkIGRlcGVuZGluZyBvbiBpZgorICAgICAgICBvc19sb2coKVsx
XSBpcyB1c2VkIG9yIHJhdGhlciBvbGQgcHJpbnRmKCkuCisKKyAgICAgICAgT1MgTG9nZ2luZyBw
cm9jZXNzZXMgZm9ybWF0IHNwZWNpZmllcnMgZm9yIHByaXZhY3kgbWF0dGVycywgZm9yCisgICAg
ICAgIGV4YW1wbGUgZHluYW1pYyBzdHJpbmdzLCB3aGljaCBkZW1hbmRzICV7cHVibGljfXMuIEJ1
dCB0aGVzZQorICAgICAgICBzcGVjaWZpZXJzIGFyZSBub3QgdmFsaWQgZm9yIHByaW50ZigpLgor
CisgICAgICAgIENhbGxzIHRvIGxvZ2dpbmcgd2l0aCB0aGlzIHNwZWNpZmllciwgaWYgdGhleSBh
cmUgbm90IE1hYy9EYXJ3aW5nCisgICAgICAgIGV4Y2x1c2l2ZSwgdXNlIHRoaXMgbmV3IG1hY3Jv
IHRvIGF2b2lkIGdjYyB3YXJuaW5ncy4KKworICAgICAgICAxLiBodHRwczovL2RldmVsb3Blci5h
cHBsZS5jb20vZG9jdW1lbnRhdGlvbi9vcy9sb2dnaW5nP2xhbmd1YWdlPW9iamMKKworICAgICAg
ICAqIHd0Zi9Bc3NlcnRpb25zLmg6CisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHA6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2Vy
Ojpsb2dNZW1vcnlVc2FnZUNoYW5nZSk6CisKIDIwMjAtMDItMTEgIEZ1amlpIEhpcm9ub3JpICA8
SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgRml4IGRlY2xhcmF0aW9ucyBtYXJr
ZWQgYnkgd3JvbmcgZXhwb3J0IG1hY3JvcyAoV0VCQ09SRV9FWFBPUlQgYW5kIFdURl9FWFBPUlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYmRiMGYyNTFmMGNiZmQ1ODlkMmM1YjU3ZmVjNWMyNDE4MTFjYmUwMS4u
OGE3NWQ2YTRiYmE1Y2Q0NzM2NjU1MzA1MzVmZDY4ZmFhMDM1NDE3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMxIEBACisyMDIwLTAyLTEwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2
amFxdWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgYSBsb3QgZ2NjIHdhcm5pbmdzIGJlY2F1c2Ug
b2YgJXtwdWJsaWN9cyBmb3JtYXQgc3BlY2lmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgUFVCTElDX0xPR19TVFJJTkcgbWFjcm8gd2hpY2gg
aXMgZGVmaW5lZCBkZXBlbmRpbmcgb24gaWYKKyAgICAgICAgb3NfbG9nKClbMV0gaXMgdXNlZCBv
ciByYXRoZXIgb2xkIHByaW50ZigpLgorCisgICAgICAgIE9TIExvZ2dpbmcgcHJvY2Vzc2VzIGZv
cm1hdCBzcGVjaWZpZXJzIGZvciBwcml2YWN5IG1hdHRlcnMsIGZvcgorICAgICAgICBleGFtcGxl
IGR5bmFtaWMgc3RyaW5ncywgd2hpY2ggZGVtYW5kcyAle3B1YmxpY31zLiBCdXQgdGhlc2UKKyAg
ICAgICAgc3BlY2lmaWVycyBhcmUgbm90IHZhbGlkIGZvciBwcmludGYoKS4KKworICAgICAgICBD
YWxscyB0byBsb2dnaW5nIHdpdGggdGhpcyBzcGVjaWZpZXIsIGlmIHRoZXkgYXJlIG5vdCBNYWMv
RGFyd2luZworICAgICAgICBleGNsdXNpdmUsIHVzZSB0aGlzIG5ldyBtYWNybyB0byBhdm9pZCBn
Y2Mgd2FybmluZ3MuCisKKyAgICAgICAgMS4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2Rv
Y3VtZW50YXRpb24vb3MvbG9nZ2luZz9sYW5ndWFnZT1vYmpjCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0FkQ2xp
Y2tBdHRyaWJ1dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBZENsaWNrQXR0cmlidXRpb246
OnBhcnNlQ29udmVyc2lvblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb1Jl
bGVhc2VMb2dnaW5nKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJh
dGlvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNl
OjpvcGVuU1FMaXRlRGF0YWJhc2UpOgorCiAyMDIwLTAyLTEyICBWw61jdG9yIE1hbnVlbCBKw6Fx
dWV6IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMXSBSZW1vdmUgdW51
c2VkIG1ldGhvZHMgaW4gR0xDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJiYTY3ZDZmMmI1ZWUxNDA0NDIx
OWYwODcxYjE5YjdjOTQwMzE1NDUuLjYxNWFjYWEyZTdlNTZlZGRmOGZhZjBiODhmNmIyMjlhZGFl
NWE1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAtMDItMTAgIFbDrWN0b3IgTWFu
dWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBhIGxvdCBn
Y2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBzcGVjaWZpZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQ3OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBQVUJMSUNfTE9H
X1NUUklORyBtYWNybyB3aGljaCBpcyBkZWZpbmVkIGRlcGVuZGluZyBvbiBpZgorICAgICAgICBv
c19sb2coKVsxXSBpcyB1c2VkIG9yIHJhdGhlciBvbGQgcHJpbnRmKCkuCisKKyAgICAgICAgT1Mg
TG9nZ2luZyBwcm9jZXNzZXMgZm9ybWF0IHNwZWNpZmllcnMgZm9yIHByaXZhY3kgbWF0dGVycywg
Zm9yCisgICAgICAgIGV4YW1wbGUgZHluYW1pYyBzdHJpbmdzLCB3aGljaCBkZW1hbmRzICV7cHVi
bGljfXMuIEJ1dCB0aGVzZQorICAgICAgICBzcGVjaWZpZXJzIGFyZSBub3QgdmFsaWQgZm9yIHBy
aW50ZigpLgorCisgICAgICAgIENhbGxzIHRvIGxvZ2dpbmcgd2l0aCB0aGlzIHNwZWNpZmllciwg
aWYgdGhleSBhcmUgbm90IE1hYy9EYXJ3aW5nCisgICAgICAgIGV4Y2x1c2l2ZSwgdXNlIHRoaXMg
bmV3IG1hY3JvIHRvIGF2b2lkIGdjYyB3YXJuaW5ncy4KKworICAgICAgICAxLiBodHRwczovL2Rl
dmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9vcy9sb2dnaW5nP2xhbmd1YWdlPW9iamMK
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
b3BlbklUUERhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVi
dWdNb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRlYnVnTG9nRG9tYWluc0luQmF0Y2hlcyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZhbGlkTWVzc2FnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UHJv
Y2Vzc1Rocm90dGxlcjo6QWN0aXZpdHk6OkFjdGl2aXR5KToKKyAgICAgICAgKFdlYktpdDo6UHJv
Y2Vzc1Rocm90dGxlcjo6QWN0aXZpdHk6OmludmFsaWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2Vp
dmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKwogMjAyMC0wMi0xMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBNYWMgRGVidWcgd2syIF0gQVNTRVJU
SU9OIEZBSUxFRDogbV93YXNDb25zdHJ1Y3RlZE9uTWFpblRocmVhZCA9PSBpc01haW5UaHJlYWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXNzZXJ0aW9ucy5oIGIvU291cmNlL1dURi93
dGYvQXNzZXJ0aW9ucy5oCmluZGV4IGJlYjA4NTM3ZThhNTQ2OWM2YTFmZjQ3ZmRjNWQyM2E5ODUz
ODY3OTIuLmIxYTczZjBkMzU3MGI5ZmMxMWUxYjkxNjkyNDI4ZjA2ZGU4YWM0MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0Fzc2VydGlvbnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Bc3Nl
cnRpb25zLmgKQEAgLTQ4NCw2ICs0ODQsNyBAQCBjb25zdGV4cHIgYm9vbCBhc3NlcnRpb25GYWls
dXJlRHVlVG9VbnJlYWNoYWJsZUNvZGUgPSBmYWxzZTsKIC8qIFJFTEVBU0VfTE9HICovCiAKICNp
ZiBSRUxFQVNFX0xPR19ESVNBQkxFRAorI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAicyIKICNk
ZWZpbmUgUkVMRUFTRV9MT0coY2hhbm5lbCwgLi4uKSAoKHZvaWQpMCkKICNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1IoY2hhbm5lbCwgLi4uKSBMT0dfRVJST1IoX19WQV9BUkdTX18pCiAjZGVmaW5l
IFJFTEVBU0VfTE9HX0ZBVUxUKGNoYW5uZWwsIC4uLikgTE9HX0VSUk9SKF9fVkFfQVJHU19fKQpA
QCAtNDk4LDYgKzQ5OSw3IEBAIGNvbnN0ZXhwciBib29sIGFzc2VydGlvbkZhaWx1cmVEdWVUb1Vu
cmVhY2hhYmxlQ29kZSA9IGZhbHNlOwogCiAjZGVmaW5lIFJFTEVBU0VfTE9HX1NUQUNLVFJBQ0Uo
Y2hhbm5lbCkgKCh2b2lkKTApCiAjZWxzZQorI2RlZmluZSBQVUJMSUNfTE9HX1NUUklORyAie3B1
YmxpY31zIgogI2RlZmluZSBSRUxFQVNFX0xPRyhjaGFubmVsLCAuLi4pIG9zX2xvZyhMT0dfQ0hB
Tk5FTChjaGFubmVsKS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNF
X0xPR19FUlJPUihjaGFubmVsLCAuLi4pIG9zX2xvZ19lcnJvcihMT0dfQ0hBTk5FTChjaGFubmVs
KS5vc0xvZ0NoYW5uZWwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBSRUxFQVNFX0xPR19GQVVMVChj
aGFubmVsLCAuLi4pIG9zX2xvZ19mYXVsdChMT0dfQ0hBTk5FTChjaGFubmVsKS5vc0xvZ0NoYW5u
ZWwsIF9fVkFfQVJHU19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAK
aW5kZXggNTM3OWMwYTRkNWM4YzZmMzY3ZDkxNjk2ZTBkNmExOGM1ZDlmZWMwZi4uMTM1NzU2ZDg5
N2VjNjgyODM4MTJhMTc1YTM3ZjU5OTdhZDY1ZDQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0yNzUsMjMgKzI3NSwyMSBAQCB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6bWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKCkKIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OmxvZ01lbW9yeVVzYWdlQ2hhbmdlKCkKIHsKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSNkZWZpbmUgU1RSSU5HX1NQRUNJRklDQVRJT04gIiV7
cHVibGljfXMiCiAjZGVmaW5lIE1FTU9SWVBSRVNTVVJFX0xPRyguLi4pIFJFTEVBU0VfTE9HKE1l
bW9yeVByZXNzdXJlLCBfX1ZBX0FSR1NfXykKICNlbHNlCi0jZGVmaW5lIFNUUklOR19TUEVDSUZJ
Q0FUSU9OICIlcyIKICNkZWZpbmUgTUVNT1JZUFJFU1NVUkVfTE9HKC4uLikgV1RGTG9nQWx3YXlz
KF9fVkFfQVJHU19fKQogI2VuZGlmCiAKICAgICBhdXRvIGN1cnJlbnRNZW1vcnkgPSBwbGF0Zm9y
bU1lbW9yeVVzYWdlKCk7CiAgICAgaWYgKCFjdXJyZW50TWVtb3J5IHx8ICFtX2luaXRpYWxNZW1v
cnkpIHsKLSAgICAgICAgTUVNT1JZUFJFU1NVUkVfTE9HKCJNZW1vcnkgcHJlc3N1cmUgcmVsaWVm
OiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OICI6IChVbmFibGUgdG8gZ2V0IGRpcnR5IG1lbW9yeSBp
bmZvcm1hdGlvbiBmb3IgcHJvY2VzcykiLCBtX2xvZ1N0cmluZyk7CisgICAgICAgIE1FTU9SWVBS
RVNTVVJFX0xPRygiTWVtb3J5IHByZXNzdXJlIHJlbGllZjogJSIgUFVCTElDX0xPR19TVFJJTkcg
IjogKFVuYWJsZSB0byBnZXQgZGlydHkgbWVtb3J5IGluZm9ybWF0aW9uIGZvciBwcm9jZXNzKSIs
IG1fbG9nU3RyaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGxvbmcgcmVzaWRl
bnREaWZmID0gY3VycmVudE1lbW9yeS0+cmVzaWRlbnQgLSBtX2luaXRpYWxNZW1vcnktPnJlc2lk
ZW50OwogICAgIGxvbmcgcGh5c2ljYWxEaWZmID0gY3VycmVudE1lbW9yeS0+cGh5c2ljYWwgLSBt
X2luaXRpYWxNZW1vcnktPnBoeXNpY2FsOwogCi0gICAgTUVNT1JZUFJFU1NVUkVfTE9HKCJNZW1v
cnkgcHJlc3N1cmUgcmVsaWVmOiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OICI6IHJlcyA9ICV6dS8l
enUvJWxkLCByZXMrc3dhcCA9ICV6dS8lenUvJWxkIiwKKyAgICBNRU1PUllQUkVTU1VSRV9MT0co
Ik1lbW9yeSBwcmVzc3VyZSByZWxpZWY6ICUiIFBVQkxJQ19MT0dfU1RSSU5HICI6IHJlcyA9ICV6
dS8lenUvJWxkLCByZXMrc3dhcCA9ICV6dS8lenUvJWxkIiwKICAgICAgICAgbV9sb2dTdHJpbmcs
CiAgICAgICAgIG1faW5pdGlhbE1lbW9yeS0+cmVzaWRlbnQsIGN1cnJlbnRNZW1vcnktPnJlc2lk
ZW50LCByZXNpZGVudERpZmYsCiAgICAgICAgIG1faW5pdGlhbE1lbW9yeS0+cGh5c2ljYWwsIGN1
cnJlbnRNZW1vcnktPnBoeXNpY2FsLCBwaHlzaWNhbERpZmYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcAppbmRleCAzN2Q2YWQzYTA4NjVlMTBiOWZhZDRl
M2QxYTFlMDc2OWQzZTBjYjFiLi45ZDIxMDU5NmMyOTllY2ViNjBiZGNjZTJhNDhhZDc5MDk1NmU4
MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmNwcApA
QCAtNTksNyArNTksNyBAQCBPcHRpb25hbDxBZENsaWNrQXR0cmlidXRpb246OkNvbnZlcnNpb24+
IEFkQ2xpY2tBdHRyaWJ1dGlvbjo6cGFyc2VDb252ZXJzaW9uUmVxdQogCiAgICAgYXV0byBwYXRo
ID0gU3RyaW5nVmlldyhyZWRpcmVjdFVSTC5zdHJpbmcoKSkuc3Vic3RyaW5nKHJlZGlyZWN0VVJM
LnBhdGhTdGFydCgpLCByZWRpcmVjdFVSTC5wYXRoRW5kKCkgLSByZWRpcmVjdFVSTC5wYXRoU3Rh
cnQoKSk7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8ICFwYXRoLnN0YXJ0c1dpdGgoYWRDbGlj
a0F0dHJpYnV0aW9uUGF0aFByZWZpeCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihk
ZWJ1Z01vZGVFbmFibGVkKCksIEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZlcnNpb24gd2FzIG5v
dCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBkaWQgbm90IHN0YXJ0IHdpdGggJXtwdWJs
aWN9cy4iLCBhZENsaWNrQXR0cmlidXRpb25QYXRoUHJlZml4KTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSU5GT19JRihkZWJ1Z01vZGVFbmFibGVkKCksIEFkQ2xpY2tBdHRyaWJ1dGlvbiwgIkNvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBkaWQgbm90IHN0YXJ0
IHdpdGggJSIgUFVCTElDX0xPR19TVFJJTkcgIi4iLCBhZENsaWNrQXR0cmlidXRpb25QYXRoUHJl
Zml4KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwCmluZGV4IGZmYTk2ZTg3YzFiNzQ1MDNlM2JlOGFkMDIyMTk1NGMzZDBk
ZjJhYzEuLmY3ZGEzZjdmNDAyZGE4OTM4ZDdhZGRmYTdhMDE1YTI0OGIyNmE5MTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMTI4LDkgKzEyOCw5IEBAIHN0YXRp
YyB2b2lkIGRvUmVsZWFzZUxvZ2dpbmcocnRjOjpMb2dnaW5nU2V2ZXJpdHkgc2V2ZXJpdHksIGNv
bnN0IGNoYXIqIG1lc3NhZ2UpCiAgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOwogI2Vsc2UKICAg
ICBpZiAoc2V2ZXJpdHkgPT0gcnRjOjpMU19FUlJPUikKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoV2ViUlRDLCAiTGliV2ViUlRDIGVycm9yOiAle3B1YmxpY31zIiwgbWVzc2FnZSk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkxpYldlYlJUQyBlcnJvcjogJSIgUFVCTElD
X0xPR19TVFJJTkcsIG1lc3NhZ2UpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0coV2Vi
UlRDLCAiTGliV2ViUlRDIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtZXNzYWdlKTsKKyAgICAgICAg
UkVMRUFTRV9MT0coV2ViUlRDLCAiTGliV2ViUlRDIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RS
SU5HLCBtZXNzYWdlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCmlu
ZGV4IDc2YTAzZjA3MzU3ZDYyMmMwZjUxNWVhMGRiZTlmYmZlNDI2NDQxYmIuLjg2YWIyZTJjNjI3
ZmFlZjFhMTgyYzlmNDdiYTViYTIyOWY4NzJkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwCkBAIC0xNjAsMTQgKzE2MCwxNCBAQCB2b2lkIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpvcGVu
U1FMaXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBmdWxsRmlsZW5hbWUpCiAgICAgCiAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZSA9IGVuc3VyZVZhbGlkUmVjb3Jkc1RhYmxlKCk7CiAgICAgaWYgKCFl
cnJvck1lc3NhZ2UuaXNOdWxsKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2Vydmlj
ZVdvcmtlciwgImVuc3VyZVZhbGlkUmVjb3Jkc1RhYmxlIGZhaWxlZCwgcmVhc29uOiAle3B1Ymxp
Y31zIiwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihTZXJ2aWNlV29ya2VyLCAiZW5zdXJlVmFsaWRSZWNvcmRzVGFibGUgZmFpbGVkLCByZWFz
b246ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBlcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIGRvUmVjb3ZlcnlBdHRlbXB0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
CiAgICAgZXJyb3JNZXNzYWdlID0gaW1wb3J0UmVjb3JkcygpOwogICAgIGlmICghZXJyb3JNZXNz
YWdlLmlzTnVsbCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIs
ICJpbXBvcnRSZWNvcmRzIGZhaWxlZCwgcmVhc29uOiAle3B1YmxpY31zIiwgZXJyb3JNZXNzYWdl
LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2Vy
LCAiaW1wb3J0UmVjb3JkcyBmYWlsZWQsIHJlYXNvbjogJSIgUFVCTElDX0xPR19TVFJJTkcsIGVy
cm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgZG9SZWNvdmVyeUF0dGVtcHQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDM3Yzc1MWNjYmJmZDJmMzQ0YWNiMmNh
OTJkN2ViZjZjNjkzNzRlMmUuLjVkODUzZmRkNGY5OGJkZDMzZmE4MjE5M2I0MzM1YWJlNjliODAw
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcApAQCAtMjg2LDE3ICsyODYsMTcgQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28K
IAogICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT2JzZXJ2ZWREb21haW5zIl9zKSkg
ewogICAgICAgICBpZiAoIWNyZWF0ZVNjaGVtYSgpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJh
c2UgcGF0aDogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1f
c3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Y3JlYXRlU2NoZW1hIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19T
VFJJTkcgIiwgZGF0YWJhc2UgcGF0aDogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEo
KSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICBpZiAoIW1fZGF0YWJhc2UudHVybk9uSW5j
cmVtZW50YWxBdXRvVmFjdXVtKCkpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJuT25JbmNyZW1l
bnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0dXJuT25J
bmNyZW1lbnRhbEF1dG9WYWN1dW0gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9H
X1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAKICAgICBpZiAoIXBy
ZXBhcmVTdGF0ZW1lbnRzKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1l
bnRzIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cywgZGF0YWJhc2UgcGF0aDogJXtw
dWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCksIG1fc3RvcmFnZURpcmVj
dG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3Rh
dGVtZW50cyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGRh
dGFiYXNlIHBhdGg6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpLCBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMxNSw3
ICszMTUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVu
SVRQRGF0YWJhc2UoKQogICAgICAgICBtX2lzTmV3UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlRmlsZSA9IGZhbHNlOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlLm9wZW4obV9zdG9yYWdlRGly
ZWN0b3J5UGF0aCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zLCBkYXRhYmFzZSBwYXRoOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAl
IiBQVUJMSUNfTE9HX1NUUklORyAiLCBkYXRhYmFzZSBwYXRoOiAlIiBQVUJMSUNfTE9HX1NUUklO
RywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0
aC51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQog
fQpAQCAtMzMwLDE0ICszMzAsMTQgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aXNDb3JyZWN0VGFibGVTY2hlbWEoKQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBz
dGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCAxIGZyb20gc3FsaXRlX21hc3RlciBXSEVSRSB0
eXBlPSd0YWJsZScgYW5kIHRibF9uYW1lPT8iKTsKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUo
KSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2No
ZW1hIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppc0NvcnJl
Y3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElD
X0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgYm9vbCBoYXNBbGxUYWJsZXMgPSB0cnVlOwogICAg
IGZvciAoYXV0byB0YWJsZSA6IHRhYmxlcykgewogICAgICAgICBpZiAoc3RhdGVtZW50LmJpbmRU
ZXh0KDEsIHRhYmxlKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpp
c0NvcnJlY3RUYWJsZVNjaGVtYSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJs
aWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmlzQ29ycmVjdFRhYmxlU2NoZW1hIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNz
YWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0
YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewpAQCAtNDE4LDcgKzQxOCw3IEBAIGJvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNyZWF0ZVVuaXF1ZUluZGljZXMo
KQogICAgICAgICB8fCAhbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZChjcmVhdGVVbmlxdWVJbmRl
eFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCiAgICAgICAgIHx8ICFtX2RhdGFiYXNl
LmV4ZWN1dGVDb21tYW5kKGNyZWF0ZVVuaXF1ZUluZGV4U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dHNUbykKICAgICAgICAgfHwgIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoY3JlYXRlVW5pcXVl
SW5kZXhTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKSkgewotICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2Fn
ZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y3JlYXRlVW5pcXVlSW5kaWNlcyBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJy
b3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVl
OwpAQCAtNTI1LDcgKzUyNSw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKCkKICAgICAgICAgfHwgbV9zdG9yYWdlQWNjZXNzRXhp
c3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9nZXRNb3N0
UmVjZW50bHlVcGRhdGVkVGltZXN0YW1wU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWls
ZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVu
dHMgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5H
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC04MTcsNyArODE3LDcg
QEAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGFG
b3JTcGVjaWZpY0ZpcnN0UGFydHk+IFJlc28KICAgICBpZiAobV9nZXRBbGxTdWJTdGF0aXN0aWNz
U3RhdGVtZW50LmJpbmRJbnQoMSwgdGhpcmRQYXJ0eURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAg
ICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmJpbmRJbnQoMiwgdGhpcmRQ
YXJ0eURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0
aWNzU3RhdGVtZW50LmJpbmRJbnQoMywgdGhpcmRQYXJ0eURvbWFpbklEKSAhPSBTUUxJVEVfT0sp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0
eURvbWFpbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJz
dFBhcnR5RG9tYWluLCBlcnJvciBtZXNzYWdlOiAlIiBQVUJMSUNfTE9HX1NUUklORywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KICAgICBWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5
RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gdGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0
UGFydHlEb21haW5zOwpAQCAtODQzLDcgKzg0Myw3IEBAIFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
CiAgICAgaWYgKHNvcnRlZFN0YXRpc3RpY3MucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDEsICIxIikKICAgICAgICAgfHwgc29ydGVk
U3RhdGlzdGljcy5iaW5kVGV4dCgyLCAiJSIpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFnZ3JlZ2F0ZWRU
aGlyZFBhcnR5RGF0YSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKICAgICB9CkBAIC04OTIsMjEgKzg5Miwy
MSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNl
ckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXNlJgogCiAgICAgLy8gUHJlcGFyZQogICAgIGlmICht
ZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0
aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIGRhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIAogICAgIC8vIEJpbmQKICAgICBpZiAobWVkaWFuRGF5c1NpbmNl
VUlTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNl
VUlTdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNl
VUlTdGF0ZW1lbnQuYmluZEludCgzLCAocHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFj
dGlvbkNvdW50IC8gMikgIT0gU1FMSVRFX09LKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlh
bk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpn
ZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1l
c3NhZ2U6ICUiIFBVQkxJQ19MT0dfU1RSSU5HLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
ICAgICAvLyBTdGVwCiAgICAgaWYgKG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LnN0ZXAoKSAh
PSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNv
dXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElD
X0xPR19TVFJJTkcsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCkBAIC05MjEsMjEgKzkyMSwyMSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFu
T2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXNlJgog
CiAgICAgLy8gUHJlcGFyZQogICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0
d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlBy
ZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVk
aWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdl
OiAlIiBQVUJMSUNfTE9HX1NUUklORywgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAg
Ly8gQmluZAogICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQo
MSwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmlu
ZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVu
dC5iaW5kSW50KDMsICgocHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbkNvdW50
IC0gMSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5l
dHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQ
cmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1
YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1l
ZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAg
IC8vIFN0ZXAKICAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVz
b3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlByZXZh
bGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJ
Q19MT0dfU1RSSU5HLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIApAQCAtOTQ4LDcgKzk0OCw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJPZlByZXZhbGVudFJlc291cmNlcygpIGNvCiB7
CiAgICAgYXV0byBzdGVwVmFsdWUgPSBtX2NvdW50UHJldmFsZW50UmVzb3VyY2VzU3RhdGVtZW50
LnN0ZXAoKTsKICAgICBpZiAoc3RlcFZhbHVlICE9IFNRTElURV9ST1cgJiYgc3RlcFZhbHVlICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNv
dXJjZXMgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJPZlByZXZhbGVu
dFJlc291cmNlcyBmYWlsZWQgdG8gc3RlcCwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19T
VFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTgwLDcgKzk4MCw3IEBAIHVu
c2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxl
bnRSZXNvdXJjZURheXNTaW5jZVVJCiAgICAgCiAgICAgLy8gUHJlcGFyZQogICAgIGlmICh0b3BQ
cmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRv
cFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFj
dGlvblN0YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRv
cFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFj
dGlvblN0YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJSIg
UFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTg4LDE0
ICs5ODgsMTQgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdldFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkKICAgICAvLyBCaW5kCiAgICAgaWYg
KHRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRl
cmFjdGlvblN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSwogICAgICAgICB8fCB0
b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJh
Y3Rpb25TdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjp0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2Vy
SW50ZXJhY3Rpb25TdGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojp0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50
ZXJhY3Rpb25TdGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUi
IFBVQkxJQ19MT0dfU1RSSU5HLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICAKICAg
ICAvLyBTdGVwCiAgICAgaWYgKHRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlv
bkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlv
bkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gc3RlcCwg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRh
eXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gc3RlcCwgZXJy
b3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCkBAIC0xMDE3LDcgKzEwMTcsNyBA
QCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZVdpdGhvdXRVc2Vy
SW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhcwogICAgICAgICBpZiAoZ2V0TWVkaWFuU3RhdGlzdGlj
LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0
aXN0aWMuYmluZEludCgyLCAwKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IGdldE1lZGlh
blN0YXRpc3RpYy5iaW5kSW50KDMsIChidWNrZXRTaXplIC8gMikpICE9IFNRTElURV9PSykgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjptYWtlTWVkaWFuV2l0aG91dFVJUXVlcnksIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Om1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElD
X0xPR19TVFJJTkcsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTEw
MzQsNyArMTAzNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291
cmNlV2l0aG91dFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzCiAgICAgICAgIGlmIChnZXRM
b3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSwogICAgICAgICAg
ICAgfHwgZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAwKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgICAgIHx8IGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgKChidWNr
ZXRTaXplLTEpIC8gMikpICE9IFNRTElURV9PSykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYWtl
TWVkaWFuV2l0aG91dFVJUXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1ha2VNZWRpYW5XaXRob3V0
VUlRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFVCTElDX0xPR19TVFJJTkcsIGRhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTEwNTMsNyArMTA1Myw3IEBAIHN0YXRpYyB1
bnNpZ25lZCBnZXROdW1iZXJPZlByZXZhbGVudFJlc291cmNlc0luVG9wUmVzb3VyY2VzKFNRTGl0
ZURhdGFiYXNlJiBkYXRhCiAgICAgICAgIGlmIChwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3Au
YmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHByZXZhbGVudFJlc291
cmNlQ291bnRJblRvcC5iaW5kVGV4dCgyLCAiJSIpICE9IFNRTElURV9PSwogICAgICAgICAgICAg
fHwgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRJbnQoMywgYnVja2V0U2l6ZSkgIT0g
U1FMSVRFX09LKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE51bWJlck9mUHJldmFsZW50UmVz
b3VyY2VzSW5Ub3BSZXNvdXJjZXMsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE51bWJlck9mUHJldmFs
ZW50UmVzb3VyY2VzSW5Ub3BSZXNvdXJjZXMsIGVycm9yIG1lc3NhZ2U6ICUiIFBVQkxJQ19MT0df
U1RSSU5HLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGRmMTRm
NjkyNDE2MWVmMzg1ODQ4MzM2MTliYTM4NmI2NzIyN2QzOTUuLjdhODRjMGNkOWJiNjQzNmYyZWM3
NGY1OWY5OTdhNjdhMzJhOWIwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC0zMTYsMTEgKzMxNiwxMSBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJh
bWVEb21haW4mJiBzdQogICAgIGF1dG8mIHN1YkZyYW1lU3RhdGlzdGljID0gZW5zdXJlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3ViRnJhbWVEb21haW4pOwogICAgIHN3
aXRjaCAoY29va2llQWNjZXNzKHN1YkZyYW1lU3RhdGlzdGljLCB0b3BGcmFtZURvbWFpbikpIHsK
ICAgICBjYXNlIENvb2tpZUFjY2Vzczo6Q2Fubm90UmVxdWVzdDoKLSAgICAgICAgUkVMRUFTRV9M
T0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiQ2Fubm90IGdyYW50
IHN0b3JhZ2UgYWNjZXNzIHRvICV7cHVibGljfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIGJsb2Nr
ZWQgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgYW5kIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBp
bnRlcmFjdGlvbiBhcyBmaXJzdC1wYXJ0eS4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFi
bGVkKCksIElUUERlYnVnLCAiQ2Fubm90IGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICUiIFBVQkxJ
Q19MT0dfU1RSSU5HICIgc2luY2UgaXRzIGNvb2tpZXMgYXJlIGJsb2NrZWQgaW4gdGhpcmQtcGFy
dHkgY29udGV4dHMgYW5kIGl0IGhhcyBub3QgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbiBhcyBm
aXJzdC1wYXJ0eS4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVz
dEFjY2Vzcyk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIENvb2tpZUFjY2Vzczo6QmFzZWRP
bkNvb2tpZVBvbGljeToKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdF
bmFibGVkKCksIElUUERlYnVnLCAiTm8gbmVlZCB0byBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAl
e3B1YmxpY31zIHNpbmNlIGl0cyBjb29raWVzIGFyZSBub3QgYmxvY2tlZCBpbiB0aGlyZC1wYXJ0
eSBjb250ZXh0cy4gTm90ZSB0aGF0IHRoZSB1bmRlcmx5aW5nIGNvb2tpZSBwb2xpY3kgbWF5IHN0
aWxsIGJsb2NrIHRoaXMgdGhpcmQtcGFydHkgZnJvbSBzZXR0aW5nIGNvb2tpZXMuIiwgc3ViRnJh
bWVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lO
Rk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQg
c3RvcmFnZSBhY2Nlc3MgdG8gJSIgUFVCTElDX0xPR19TVFJJTkcgIiBzaW5jZSBpdHMgY29va2ll
cyBhcmUgbm90IGJsb2NrZWQgaW4gdGhpcmQtcGFydHkgY29udGV4dHMuIE5vdGUgdGhhdCB0aGUg
dW5kZXJseWluZyBjb29raWUgcG9saWN5IG1heSBzdGlsbCBibG9jayB0aGlzIHRoaXJkLXBhcnR5
IGZyb20gc2V0dGluZyBjb29raWVzLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpI
YXNBY2Nlc3MpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDb29raWVBY2Nlc3M6Ok9ubHlJ
ZkdyYW50ZWQ6CkBAIC0zMzAsMTMgKzMzMCwxMyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdQog
CiAgICAgYXV0byB1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyID0gaGFzVXNlckdyYW50ZWRTdG9yYWdl
QWNjZXNzVGhyb3VnaFByb21wdChzdWJGcmFtZVN0YXRpc3RpYywgdG9wRnJhbWVEb21haW4pOwog
ICAgIGlmICh1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyID09IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bjo6Tm8pIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFi
bGVkKCksIElUUERlYnVnLCAiQWJvdXQgdG8gYXNrIHRoZSB1c2VyIHdoZXRoZXIgdGhleSB3YW50
IHRvIGdyYW50IHN0b3JhZ2UgYWNjZXNzIHRvICV7cHVibGljfXMgdW5kZXIgJXtwdWJsaWN9cyBv
ciBub3QuIiwgc3ViRnJhbWVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdG9wRnJhbWVE
b21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk9f
SUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkFib3V0IHRvIGFzayB0aGUgdXNl
ciB3aGV0aGVyIHRoZXkgd2FudCB0byBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAlIiBQVUJMSUNf
TE9HX1NUUklORyAiIHVuZGVyICUiIFBVQkxJQ19MT0dfU1RSSU5HICIgb3Igbm90LiIsIHN1YkZy
YW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRvcEZyYW1lRG9tYWluLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNz
U3RhdHVzOjpSZXF1aXJlc1VzZXJQcm9tcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKHVzZXJXYXNQcm9tcHRlZEVhcmxpZXIgPT0gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duOjpZZXMpCi0gICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxl
ZCgpLCBJVFBEZWJ1ZywgIlN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkIHRvICV7cHVibGljfXMg
dW5kZXIgJXtwdWJsaWN9cy4iLCBzdWJGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCB0b3BGcmFtZURvbWFpbi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiU3RvcmFnZSBh
Y2Nlc3Mgd2FzIGdyYW50ZWQgdG8gJSIgUFVCTElDX0xPR19TVFJJTkcgIiB1bmRlciAlIiBQVUJM
SUNfTE9HX1NUUklORyAiLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IHRvcEZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgc3ViRnJhbWVT
dGF0aXN0aWMudGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvU3RvcmFnZUFjY2Vzc0FQSSsr
OwogCkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4KICAgICBpZiAo
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElU
UERlYnVnLCAiW1RlbXBvcmFyeSBjb21iYXRpYmlsaXR5IGZpeF0gU3RvcmFnZSBhY2Nlc3Mgd2Fz
IGdyYW50ZWQgZm9yICV7cHVibGljfXMgdW5kZXIgb3BlbmVyIHBhZ2UgZnJvbSAle3B1YmxpY31z
LCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gaW4gdGhlIG9wZW5lZCB3aW5kb3cuIiwgZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKGRlYnVnTG9n
Z2luZ0VuYWJsZWQoKSwgSVRQRGVidWcsICJbVGVtcG9yYXJ5IGNvbWJhdGliaWxpdHkgZml4XSBT
dG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZCBmb3IgJSIgUFVCTElDX0xPR19TVFJJTkcgIiB1bmRl
ciBvcGVuZXIgcGFnZSBmcm9tICUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIHdpdGggdXNlciBpbnRl
cmFjdGlvbiBpbiB0aGUgb3BlbmVkIHdpbmRvdy4iLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nl
c3Muc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb3BlbmVyRG9tYWluLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQs
IG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKQEAgLTQyMiw3ICs0MjIsNyBAQCBWZWN0b3I8
UmVnaXN0cmFibGVEb21haW4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZW5z
dXJlUHJldmFsZW50UmVzbwogICAgICAgICBhdXRvJiBtYW51YWxSZXNvdXJjZVN0YXRpc3RpYyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRlYnVnTWFudWFs
UHJldmFsZW50UmVzb3VyY2UoKSk7CiAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKG1hbnVh
bFJlc291cmNlU3RhdGlzdGljLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlOjpIaWdoKTsKICAgICAg
ICAgZG9tYWluc1RvQmxvY2sudW5jaGVja2VkQXBwZW5kKGRlYnVnTWFudWFsUHJldmFsZW50UmVz
b3VyY2UoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lORk8oSVRQRGVidWcsICJEaWQgc2V0ICV7
cHVibGljfXMgYXMgcHJldmFsZW50IHJlc291cmNlIGZvciB0aGUgcHVycG9zZXMgb2YgSVRQIERl
YnVnIE1vZGUuIiwgZGVidWdNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JTkZPKElUUERlYnVnLCAiRGlkIHNldCAl
IiBQVUJMSUNfTE9HX1NUUklORyAiIGFzIHByZXZhbGVudCByZXNvdXJjZSBmb3IgdGhlIHB1cnBv
c2VzIG9mIElUUCBEZWJ1ZyBNb2RlLiIsIGRlYnVnTWFudWFsUHJldmFsZW50UmVzb3VyY2UoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIGRvbWFpbnNU
b0Jsb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRl
eCAyMDgyMjRhM2UyNmMxMjU2MmU3NWEwN2FlNTNlNTQxN2E1YzBmMmViLi5iN2JjNWY4N2M4YmZh
ZDAwZWQ0MzJiMDIwZTIzMGNmN2JhZjY5MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0lORk9fSUYo
bV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBJVFBEZWJ1ZywgIkFib3V0IHRvIHJlbW92ZSBkYXRhIHJl
Y29yZHMgZm9yICV7cHVibGljfXMuIiwgZG9tYWluc1RvU3RyaW5nKGRvbWFpbnNUb1JlbW92ZVdl
YnNpdGVEYXRhRm9yKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKG1f
ZGVidWdMb2dnaW5nRW5hYmxlZCwgSVRQRGVidWcsICJBYm91dCB0byByZW1vdmUgZGF0YSByZWNv
cmRzIGZvciAlIiBQVUJMSUNfTE9HX1NUUklORyAiLiIsIGRvbWFpbnNUb1N0cmluZyhkb21haW5z
VG9SZW1vdmVXZWJzaXRlRGF0YUZvcikudXRmOCgpLmRhdGEoKSk7CiAKICAgICBzZXREYXRhUmVj
b3Jkc0JlaW5nUmVtb3ZlZCh0cnVlKTsKIApAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkZWJ1Z0xvZ0RvbWFpbnNJbkJhdGNoZXMoY29uc3QgY2hh
ciogYWN0aW9uLCBjCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoZG9tYWlucy5zaXpl
KCkgPD0gbWF4TnVtYmVyT2ZEb21haW5zSW5PbmVMb2dTdGF0ZW1lbnQpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICV7cHVibGljfXMgY29va2llcyBpbiB0
aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3I6ICV7cHVibGljfXMuIiwgYWN0aW9uLCBkb21haW5zVG9T
dHJpbmcoZG9tYWlucykudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lORk8o
SVRQRGVidWcsICJBYm91dCB0byAlIiBQVUJMSUNfTE9HX1NUUklORyAiIGNvb2tpZXMgaW4gdGhp
cmQtcGFydHkgY29udGV4dHMgZm9yOiAlIiBQVUJMSUNfTE9HX1NUUklORyAiLiIsIGFjdGlvbiwg
ZG9tYWluc1RvU3RyaW5nKGRvbWFpbnMpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIApAQCAtNjEyLDE0ICs2MTIsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmRlYnVnTG9nRG9tYWluc0luQmF0Y2hlcyhjb25zdCBjaGFyKiBhY3Rpb24s
IGMKICAgICAKICAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMpIHsKICAgICAgICAgaWYg
KGJhdGNoLnNpemUoKSA9PSBtYXhOdW1iZXJPZkRvbWFpbnNJbk9uZUxvZ1N0YXRlbWVudCkgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICV7cHVibGlj
fXMgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgKCV7cHVibGljfWQgb2YgJXUp
OiAle3B1YmxpY31zLiIsIGFjdGlvbiwgYmF0Y2hOdW1iZXIsIG51bWJlck9mQmF0Y2hlcywgZG9t
YWluc1RvU3RyaW5nKGJhdGNoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lORk8oSVRQRGVidWcsICJBYm91dCB0byAlIiBQVUJMSUNfTE9HX1NUUklORyAiIGNvb2tp
ZXMgaW4gdGhpcmQtcGFydHkgY29udGV4dHMgZm9yICgle3B1YmxpY31kIG9mICV1KTogJSIgUFVC
TElDX0xPR19TVFJJTkcgIi4iLCBhY3Rpb24sIGJhdGNoTnVtYmVyLCBudW1iZXJPZkJhdGNoZXMs
IGRvbWFpbnNUb1N0cmluZyhiYXRjaCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBiYXRj
aC5zaHJpbmsoMCk7CiAgICAgICAgICAgICArK2JhdGNoTnVtYmVyOwogICAgICAgICB9CiAgICAg
ICAgIGJhdGNoLmFwcGVuZChkb21haW4pOwogICAgIH0KICAgICBpZiAoIWJhdGNoLmlzRW1wdHko
KSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICV7cHVibGlj
fXMgY29va2llcyBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgKCV7cHVibGljfWQgb2YgJXUp
OiAle3B1YmxpY31zLiIsIGFjdGlvbiwgYmF0Y2hOdW1iZXIsIG51bWJlck9mQmF0Y2hlcywgZG9t
YWluc1RvU3RyaW5nKGJhdGNoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SU5GTyhJVFBEZWJ1ZywgIkFib3V0IHRvICUiIFBVQkxJQ19MT0dfU1RSSU5HICIgY29va2llcyBp
biB0aGlyZC1wYXJ0eSBjb250ZXh0cyBmb3IgKCV7cHVibGljfWQgb2YgJXUpOiAlIiBQVUJMSUNf
TE9HX1NUUklORyAiLiIsIGFjdGlvbiwgYmF0Y2hOdW1iZXIsIG51bWJlck9mQmF0Y2hlcywgZG9t
YWluc1RvU3RyaW5nKGJhdGNoKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNTg2ZDkwZGMzODQxNDk3ODdlYTIzOTI5OGI3YWQyMGU4
OTBhYzgwOC4uYWE0MjdjZjhlMzE3MGJkMzU2OWI3NjQxMGJlMDAyYTRmMDYwOTdjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydCgpCiAKICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LAogICAgICAgICAgICAg
ICAgIFt0aGlzXSAoUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2sg
cmV0dXJuZWQgYW4gZXJyb3IgKGVycm9yLmRvbWFpbj0le3B1YmxpY31zLCBlcnJvci5jb2RlPSVk
LCBpc0NhbmNlbGxhdGlvbj0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSk7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNo
ZWNrIHJldHVybmVkIGFuIGVycm9yIChlcnJvci5kb21haW49JSIgUFVCTElDX0xPR19TVFJJTkcg
IiwgZXJyb3IuY29kZT0lZCwgaXNDYW5jZWxsYXRpb249JWQpIiwgZXJyb3IuZG9tYWluKCkudXRm
OCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzLT5kaWRGYWlsTG9hZGluZyhlcnJvcik7CiAgICAgICAgICAg
ICAgICAgfSwKQEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAg
IHBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9h
ZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJsb2JS
ZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogR29pbmcgdG8gdGhlIG5l
dHdvcmsgKGRlc2NyaXB0aW9uPSV7cHVibGljfXMpIiwgbV9uZXR3b3JrTG9hZC0+ZGVzY3JpcHRp
b24oKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5l
dHdvcmtMb2FkOiBHb2luZyB0byB0aGUgbmV0d29yayAoZGVzY3JpcHRpb249JSIgUFVCTElDX0xP
R19TVFJJTkcgIikiLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkp
OwogfQogCiBSZXNvdXJjZUxvYWRJbmZvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VM
b2FkSW5mbygpCkBAIC00ODcsNyArNDg3LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVjZWl2ZWRSZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2Vp
dmVSZXNwb25zZTogKGh0dHBTdGF0dXNDb2RlPSVkLCBNSU1FVHlwZT0le3B1YmxpY31zLCBleHBl
Y3RlZENvbnRlbnRMZW5ndGg9JSIgUFJJZDY0ICIsIGhhc0NhY2hlZEVudHJ5Rm9yVmFsaWRhdGlv
bj0lZCwgaGFzTmV0d29ya0xvYWRDaGVja2VyPSVkKSIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5taW1lVHlwZSgpLnV0ZjgoKS5kYXRhKCksIHJl
Y2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCksICEhbV9jYWNoZUVudHJ5Rm9y
VmFsaWRhdGlvbiwgISFtX25ldHdvcmtMb2FkQ2hlY2tlcik7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAoaHR0cFN0YXR1c0NvZGU9JWQsIE1JTUVUeXBl
PSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGV4cGVjdGVkQ29udGVudExlbmd0aD0lIiBQUklkNjQg
IiwgaGFzQ2FjaGVkRW50cnlGb3JWYWxpZGF0aW9uPSVkLCBoYXNOZXR3b3JrTG9hZENoZWNrZXI9
JWQpIiwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZlZFJlc3BvbnNl
Lm1pbWVUeXBlKCkudXRmOCgpLmRhdGEoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRl
bnRMZW5ndGgoKSwgISFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uLCAhIW1fbmV0d29ya0xvYWRD
aGVja2VyKTsKIAogICAgIGlmIChpc01haW5SZXNvdXJjZSgpKQogICAgICAgICBkaWRSZWNlaXZl
TWFpblJlc291cmNlUmVzcG9uc2UocmVjZWl2ZWRSZXNwb25zZSk7CkBAIC01MzEsNyArNTMxLDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIp
IHsKICAgICAgICAgYXV0byBlcnJvciA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJl
c3BvbnNlKG1fbmV0d29ya0xvYWQgPyBtX25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDog
b3JpZ2luYWxSZXF1ZXN0KCksIG1fcmVzcG9uc2UpOwogICAgICAgICBpZiAoIWVycm9yLmlzTnVs
bCgpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5l
ZCBhbiBlcnJvciAoZXJyb3IuZG9tYWluPSV7cHVibGljfXMsIGVycm9yLmNvZGU9JWQpIiwgZXJy
b3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBOZXR3
b3JrTG9hZENoZWNrZXI6OnZhbGlkYXRlUmVzcG9uc2UgcmV0dXJuZWQgYW4gZXJyb3IgKGVycm9y
LmRvbWFpbj0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBlcnJvci5jb2RlPSVkKSIsIGVycm9yLmRv
bWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBl
cnJvciA9IFdURk1vdmUoZXJyb3IpXSB7CiAgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRo
aXMtPm1fbmV0d29ya0xvYWQpCiAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRp
ZEZhaWxMb2FkaW5nKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcAppbmRleCAxOGM3MTk0ZmE0NTc1NDgyNmIzMDBiYWEyNTIyMjg3YTFlNzFjNzczLi42NzJi
ZWM0OGVhNzljNjgyYzEyNDVlNTI2ZjA0ODhjNjc5OTY4MGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJl
c3BvbnNlLCBib28KICAgICBpZiAobV9pc0RvbmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKGh0dHBTdGF0dXNDb2Rl
PSVkLCBNSU1FVHlwZT0le3B1YmxpY31zLCBleHBlY3RlZENvbnRlbnRMZW5ndGg9JSIgUFJJZDY0
ICIsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlPSVkLCBzb3VyY2U9JXUp
IiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVzcG9uc2UubWltZVR5cGUoKS51dGY4KCku
ZGF0YSgpLCByZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSwgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXNwb25zZS5z
b3VyY2UoKSkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25z
ZTogKGh0dHBTdGF0dXNDb2RlPSVkLCBNSU1FVHlwZT0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBl
eHBlY3RlZENvbnRlbnRMZW5ndGg9JSIgUFJJZDY0ICIsIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlPSVkLCBzb3VyY2U9JXUpIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUo
KSwgcmVzcG9uc2UubWltZVR5cGUoKS51dGY4KCkuZGF0YSgpLCByZXNwb25zZS5leHBlY3RlZENv
bnRlbnRMZW5ndGgoKSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihyZXNwb25zZS5zb3VyY2UoKSkpOwogICAgIG1fd2FzSGFuZGxl
ZCA9IHRydWU7CiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwogICAgIHNvZnRVcGRhdGVJZk5l
ZWRlZCgpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6
ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgbV90aW1lb3V0VGlt
ZXIuc3RvcCgpOwogICAgICAgICBzb2Z0VXBkYXRlSWZOZWVkZWQoKTsKICAgICB9Ci0gICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbDogKGVycm9yLmRvbWFpbj0le3B1Ymxp
Y31zLCBlcnJvci5jb2RlPSVkKSIsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9y
LmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRGYWls
OiAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9JWQpIiwg
ZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogICAgIG1f
bG9hZGVyLmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKaW5kZXggY2NhN2MwYWMyMDUwYTZm
MGMwYjFlZWVmZDAzZmQzNTJiNzcwODYyZC4uODZlNDg5MzFiYTNjOWRlYjI4YjI1ZmU5MmIyNTg5
NTlhYzEwZjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQ
cm9jZXNzUHJveHkuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNz
UHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQogCiB2b2lkIEF1eGls
aWFyeVByb2Nlc3NQcm94eTo6bG9nSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKIHsKLSAgICBSRUxFQVNFX0xPR19GQVVMVChJUEMs
ICJSZWNlaXZlZCBhbiBpbnZhbGlkIG1lc3NhZ2UgJyV7cHVibGljfXM6OiV7cHVibGljfXMnIGZy
b20gdGhlICV7cHVibGljfXMgcHJvY2Vzcy4iLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLnRvU3RyaW5n
KCkuZGF0YSgpLCBtZXNzYWdlTmFtZS50b1N0cmluZygpLmRhdGEoKSwgcHJvY2Vzc05hbWUoKS5j
aGFyYWN0ZXJzKCkpOworICAgIFJFTEVBU0VfTE9HX0ZBVUxUKElQQywgIlJlY2VpdmVkIGFuIGlu
dmFsaWQgbWVzc2FnZSAnJSIgUFVCTElDX0xPR19TVFJJTkcgIjo6JSIgUFVCTElDX0xPR19TVFJJ
TkcgIicgZnJvbSB0aGUgJSIgUFVCTElDX0xPR19TVFJJTkcgIiBwcm9jZXNzLiIsIG1lc3NhZ2VS
ZWNlaXZlck5hbWUudG9TdHJpbmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5nKCkuZGF0
YSgpLCBwcm9jZXNzTmFtZSgpLmNoYXJhY3RlcnMoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCmluZGV4IGE2
MzgwZTIwNzZhYzYxNzlmNzEzNzcyYmRkYTI3MmUwYjhhNGFlMmMuLjEzNjI0ZTE1NWM2ZjA3NDRl
ZWMxOTFhZjE2M2QwNDJiZWJhZTIyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgLCBt
X25hbWUobmFtZSkKICAgICAgICAgewogICAgICAgICAgICAgdGhyb3R0bGVyLmFkZEFjdGl2aXR5
KCp0aGlzKTsKLSAgICAgICAgICAgIFBST0NFU1NUSFJPVFRMRVJfQUNUSVZJVFlfUkVMRUFTRV9M
T0coIkFjdGl2aXR5OiBTdGFydGluZyAle3B1YmxpY31zIGFjdGl2aXR5IC8gJyV7cHVibGljfXMn
IiwKKyAgICAgICAgICAgIFBST0NFU1NUSFJPVFRMRVJfQUNUSVZJVFlfUkVMRUFTRV9MT0coIkFj
dGl2aXR5OiBTdGFydGluZyAlIiBQVUJMSUNfTE9HX1NUUklORyAiIGFjdGl2aXR5IC8gJyUiIFBV
QkxJQ19MT0dfU1RSSU5HICInIiwKICAgICAgICAgICAgICAgICB0eXBlID09IEFjdGl2aXR5VHlw
ZTo6Rm9yZWdyb3VuZCA/ICJmb3JlZ3JvdW5kIiA6ICJiYWNrZ3JvdW5kIiwgbV9uYW1lLmNoYXJh
Y3RlcnMoKSk7CiAgICAgICAgIH0KIApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZvaWQgaW52YWxpZGF0ZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlk
KCkpOwotICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9BQ1RJVklUWV9SRUxFQVNFX0xPRygi
aW52YWxpZGF0ZTogRW5kaW5nICV7cHVibGljfXMgYWN0aXZpdHkgLyAnJXtwdWJsaWN9cyciLAor
ICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9BQ1RJVklUWV9SRUxFQVNFX0xPRygiaW52YWxp
ZGF0ZTogRW5kaW5nICUiIFBVQkxJQ19MT0dfU1RSSU5HICIgYWN0aXZpdHkgLyAnJSIgUFVCTElD
X0xPR19TVFJJTkcgIiciLAogICAgICAgICAgICAgICAgIHR5cGUgPT0gQWN0aXZpdHlUeXBlOjpG
b3JlZ3JvdW5kID8gImZvcmVncm91bmQiIDogImJhY2tncm91bmQiLCBtX25hbWUuY2hhcmFjdGVy
cygpKTsKICAgICAgICAgICAgIG1fdGhyb3R0bGVyLT5yZW1vdmVBY3Rpdml0eSgqdGhpcyk7CiAg
ICAgICAgICAgICBtX3Rocm90dGxlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA3NTIyZWYxNmZlYWViM2E4ZWEzYjI4YWEzODZjNWJmOWFm
Yzk4N2VhLi4wNGQ1ZTBlNzg5MWIyNTY3MzYyM2U0MWM1ZDBjOGM3MzM5OWRkN2ExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMxMjIsMTAgKzMxMjIsMTAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgYm9vbCBzaG91bGRQcm9jZXNzU3dh
cCA9IHByb2Nlc3NGb3JOYXZpZ2F0aW9uLnB0cigpICE9IHNvdXJjZVByb2Nlc3MucHRyKCk7CiAg
ICAgICAgIGlmIChzaG91bGRQcm9jZXNzU3dhcCkgewogICAgICAgICAgICAgcG9saWN5QWN0aW9u
ID0gUG9saWN5QWN0aW9uOjpTdG9wQWxsTG9hZHM7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24sIHN3YXBwaW5nIHByb2Nlc3MgJWkgd2l0aCBwcm9jZXNzICVpIGZvciBuYXZpZ2F0aW9uLCBy
ZWFzb246ICV7cHVibGljfXMiLCBwcm9jZXNzSWRlbnRpZmllcigpLCBwcm9jZXNzRm9yTmF2aWdh
dGlvbi0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBzd2FwcGluZyBwcm9jZXNzICVpIHdpdGggcHJvY2VzcyAl
aSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAlIiBQVUJMSUNfTE9HX1NUUklORywgcHJvY2Vzc0lk
ZW50aWZpZXIoKSwgcHJvY2Vzc0Zvck5hdmlnYXRpb24tPnByb2Nlc3NJZGVudGlmaWVyKCksIHJl
YXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIExPRyhQcm9jZXNzU3dhcHBpbmcsICIo
UHJvY2Vzc1N3YXBwaW5nKSBTd2l0Y2hpbmcgZnJvbSBwcm9jZXNzICVpIHRvIG5ldyBwcm9jZXNz
ICglaSkgZm9yIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgJyVzJyIsIHByb2Nlc3NJZGVudGlmaWVy
KCksIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLT5wcm9jZXNzSWRlbnRpZmllcigpLCBuYXZpZ2F0aW9u
LT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi0+bG9nZ2luZ1N0cmluZygpKTsKICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246IGtlZXAgdXNpbmcgcHJvY2VzcyAl
aSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgcHJvY2Vzc0lkZW50aWZpZXIo
KSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBr
ZWVwIHVzaW5nIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24sIHJlYXNvbjogJSIgUFVCTElDX0xP
R19TVFJJTkcsIHByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKIAog
ICAgICAgICBpZiAoc2hvdWxkUHJvY2Vzc1N3YXApIHsKICAgICAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB0aGUgcHJvY2VzcyB0byBiZSB1c2VkIGZvciB0aGUgbmF2aWdhdGlvbiBkb2VzIG5vdCBnZXQg
c2h1dERvd24gbm93IGR1ZSB0byBkZXN0cm95aW5nIFN1c3BlbmRlZFBhZ2VQcm94eSBvciBQcm92
aXNpb25hbFBhZ2VQcm94eSBvYmplY3RzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>