<?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>101298</bug_id>
          
          <creation_ts>2012-11-05 21:05:39 -0800</creation_ts>
          <short_desc>Improve the use of AtomicString with literals</short_desc>
          <delta_ts>2012-11-08 17:18:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>d-r</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759215</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-05 21:05:39 -0800</bug_when>
    <thetext>More AtomicString cleanup of WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759227</commentid>
    <comment_count>1</comment_count>
      <attachid>172484</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-05 21:25:39 -0800</bug_when>
    <thetext>Created attachment 172484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759236</commentid>
    <comment_count>2</comment_count>
      <attachid>172484</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 21:51:39 -0800</bug_when>
    <thetext>Comment on attachment 172484
Patch

Attachment 172484 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14724906</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759282</commentid>
    <comment_count>3</comment_count>
      <attachid>172484</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-05 22:57:08 -0800</bug_when>
    <thetext>Comment on attachment 172484
Patch

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

&gt; Source/WebCore/Modules/battery/BatteryController.cpp:94
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;BatteryController&quot;, AtomicString::ConstructFromLiteral));

Could we remove the AtomicString:: prefix for all callers (just share this constant with String?)

Are compiler constants ever a different type from char* in c++?  Could we detect this w/o an explicit enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759298</commentid>
    <comment_count>4</comment_count>
      <attachid>172484</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 23:21:21 -0800</bug_when>
    <thetext>Comment on attachment 172484
Patch

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

&gt; Source/WebCore/html/FormController.cpp:275
&gt; -        if (AtomicString(key.type()) != AtomicString(&quot;file&quot;))
&gt; +        if (AtomicString(key.type()) != &quot;file&quot;)

Is there a reason to use an AtomicString on the left hand side of this operator?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759450</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-06 02:39:11 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/Modules/battery/BatteryController.cpp:94
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;BatteryController&quot;, AtomicString::ConstructFromLiteral));
&gt; 
&gt; Could we remove the AtomicString:: prefix for all callers (just share this constant with String?)

Yep, I guess that could be done, that enum is just a compile time flag.
I like the enum being namespaced by its class, but I don&apos;t really mind if you want to move it out.
 
&gt; Are compiler constants ever a different type from char* in c++?  Could we detect this w/o an explicit enum?

I really wish.
As far as I know, C and C++ do not make any difference between a pointer from the literal pool, and a pointer from the stack; both can be char[].

&gt; &gt; Source/WebCore/html/FormController.cpp:275
&gt; &gt; -        if (AtomicString(key.type()) != AtomicString(&quot;file&quot;))
&gt; &gt; +        if (AtomicString(key.type()) != &quot;file&quot;)
&gt; 
&gt; Is there a reason to use an AtomicString on the left hand side of this operator?

IIRC key.type() is a AtomicStringImpl. The other option is if (!equal(key.type(), file)). I only kept the AtomicString on the left hand side for readability but there is no good reason to ref() here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760107</commentid>
    <comment_count>6</comment_count>
      <attachid>172661</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-06 15:24:03 -0800</bug_when>
    <thetext>Created attachment 172661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760187</commentid>
    <comment_count>7</comment_count>
      <attachid>172661</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-06 16:26:14 -0800</bug_when>
    <thetext>Comment on attachment 172661
Patch

My only complaint about this patch is the massive amount of duplicated text. :)

Does AtomicString have a special constructor for ASCIILiteral()?  Could we just wrap these strings in ASCIILiteral instead?  It would be a shorter way to annotate the desired behavior instead of this very long enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760198</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-06 16:35:52 -0800</bug_when>
    <thetext>&gt; Does AtomicString have a special constructor for ASCIILiteral()?  Could we just wrap these strings in ASCIILiteral instead?  It would be a shorter way to annotate the desired behavior instead of this very long enum.

I could extend ASCIILiteral and make it works.
But that would be shooting myself in the foot for the long term plans. At some point in the future, memory access on ARM will get faster and ASCIILiteral will have the string size. On the other side, in a nearer future, AtomicString will compute the hash value at compile time and may also encode things a little differently. They were split at birth for performance reason, and the split will widen with those future change.

Note that at least half of the existing initialisation already use AtomicString::ConstructFromLiteral. In particular, all the generated code already use that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760264</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-06 18:11:21 -0800</bug_when>
    <thetext>AtomicString::ConstructFromLiteral is just 34 redundant characters, that&apos;s my only complaint. :)  34 * a few hundred uses, is kinda silly. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761118</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-07 15:40:41 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; AtomicString::ConstructFromLiteral is just 34 redundant characters, that&apos;s my only complaint. :)  34 * a few hundred uses, is kinda silly. :)

Can we put our differences behind us, for science?

We can easily mass rename that later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761757</commentid>
    <comment_count>11</comment_count>
      <attachid>172661</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-08 07:15:02 -0800</bug_when>
    <thetext>Comment on attachment 172661
Patch

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

&gt; Source/WebCore/Modules/battery/BatteryController.cpp:94
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;BatteryController&quot;, AtomicString::ConstructFromLiteral));

Why does this have to be different syntax than initializing a String? For a String we construct with an argument of type ASCIILiteral, right? Why did you chose a different approach for AtomicString?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761759</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-08 07:16:33 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; Does AtomicString have a special constructor for ASCIILiteral()?  Could we just wrap these strings in ASCIILiteral instead?  It would be a shorter way to annotate the desired behavior instead of this very long enum.
&gt; 
&gt; I could extend ASCIILiteral and make it works.
&gt; But that would be shooting myself in the foot for the long term plans. At some point in the future, memory access on ARM will get faster and ASCIILiteral will have the string size. On the other side, in a nearer future, AtomicString will compute the hash value at compile time and may also encode things a little differently. They were split at birth for performance reason, and the split will widen with those future change.
&gt; 
&gt; Note that at least half of the existing initialisation already use AtomicString::ConstructFromLiteral. In particular, all the generated code already use that.

I don’t really understand these arguments. Can’t the ASCIILiteral syntax be made to generate exactly the same code that the ConstructFromLiteral syntax does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761761</commentid>
    <comment_count>13</comment_count>
      <attachid>172661</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-08 07:17:26 -0800</bug_when>
    <thetext>Comment on attachment 172661
Patch

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

&gt;&gt; Source/WebCore/Modules/battery/BatteryController.cpp:94
&gt;&gt; +    DEFINE_STATIC_LOCAL(AtomicString, name, (&quot;BatteryController&quot;, AtomicString::ConstructFromLiteral));
&gt; 
&gt; Why does this have to be different syntax than initializing a String? For a String we construct with an argument of type ASCIILiteral, right? Why did you chose a different approach for AtomicString?

I’m going to say review+ but I think this is way to awkward syntax for something so basic, and I’d like us to investigate cleaner syntax that can generate identical code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762307</commentid>
    <comment_count>14</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-08 16:31:52 -0800</bug_when>
    <thetext>&gt; I’m going to say review+ but I think this is way to awkward syntax for something so basic, and I’d like us to investigate cleaner syntax that can generate identical code.

Thanks for the review. Long term I will look into unify the syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762353</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-11-08 17:18:18 -0800</bug_when>
    <thetext>Committed r133976: &lt;http://trac.webkit.org/changeset/133976&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172484</attachid>
            <date>2012-11-05 21:25:39 -0800</date>
            <delta_ts>2012-11-06 15:23:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101298-20121105212352.patch</filename>
            <type>text/plain</type>
            <size>139674</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc4MDg0MjJiNDg5ZTZl
OTNmYWNkZjI5ZTg4YTM3ODhkMmVlMTU0Yy4uMjUwYTczYzAzZDYzODk2ZWVkYTRiMzY1YmIwMjBi
NzJhNzMyYjIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5NSBAQAogMjAxMi0xMS0wNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgSW1wcm92ZSB0
aGUgdXNlIG9mIEF0b21pY1N0cmluZyB3aXRoIGxpdGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyOTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYSBidW5jaCBvZiBjYXNlcyBvZiBBdG9t
aWNTdHJpbmcgd2l0aCBsaXRlcmFsczoKKyAgICAgICAgLURvIG5vdCBjcmVhdGUgdGVtcG9yYXJ5
IEF0b21pY1N0cmluZyB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiwgdGhhdCBpcyB2ZXJ5IHdhc3Rl
ZnVsLgorICAgICAgICAtVXNlIHRoZSBDb25zdHJ1Y3RGcm9tTGl0ZXJhbCBjb25zdHJ1Y3RvciB3
aGVuZXZlciBpdCBtYWtlcyBzZW5zZS4KKyAgICAgICAgLU1ha2UgIngtZnJhbWUtb3B0aW9ucyIg
c3RhdGljIGluc3RlYWQgb2YgY3JlYXRpbmcgaXQgZm9yIGVhY2ggcmVzcG9uc2UuCisgICAgICAg
IC1Vc2UgQVNDSUlMaXRlcmFsKCkgaW5zdGVhZCBvZiBBdG9taWNTdHJpbmcoKSBpbiBFdmVudEhh
bmRsZXIsIHRoZSBmdW5jdGlvbiB0YWtlcyBhIFN0cmluZywKKyAgICAgICAgIG5vdCBhbiBBdG9t
aWNTdHJpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JCYXR0ZXJ5Ojpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW0vY2hyb21pdW0vRHJhZ2dlZElzb2xhdGVkRmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEcmFnZ2VkSXNvbGF0ZWRGaWxlU3lzdGVtOjpzdXBwbGVtZW50TmFtZSk6
CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvd0luZGV4ZWREYXRhYmFzZTo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0
OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5KToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmcm9tKToKKyAgICAgICAgKiBN
b2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3dJbnRlbnRzOjpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJv
bGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVu
dHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0b3JDb250ZW50VXRpbHM6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL25l
dHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb246OmZyb20pOgorICAgICAgICAq
IE1vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAg
ICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20pOgorICAgICAgICAq
IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvd1F1b3RhOjpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxlcy92
aWJyYXRpb24vVmlicmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnZhbGlkU3Rh
dHVzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxp
dmVSZWdpb25TdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YXJpYUxpdmVSZWdpb25SZWxldmFudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93
OjpuYW1lZFNlY3VyaXR5Q2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5v
ZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Tm9kZUxpc3Q6Om5hbWVkUHJv
cGVydHlHZXR0ZXIpOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICog
ZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCk6Cisg
ICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXBsb2FkQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2F2ZWRGb3JtU3RhdGU6OmdldFJlZmVyZW5jZWRGaWxlUGF0aHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdW1tYXJ5UXVlcnlTZWxlY3Rvcik6CisgICAgICAgICog
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGaWVs
ZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlnZW5TZWxlY3RFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNv
bnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZv
cm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpkaXJlY3Rpb25TdHJpbmcpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lQU1QTUZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU3Rh
dHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
T3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hhZG93UHNldWRv
SWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9z
dXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1ldGVySW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXRlckJhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1ldGVyVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRl
clRodW1iU2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFTbGlkZXJUaHVt
YlNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlQm94Ojp0
ZXh0VHJhY2tDdWVCb3hTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250
cm9sQ2hlY2spOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJlckNsaWVudDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6dXBkYXRlUmVzcG9uc2VBZnRlclJldmFsaWRhdGlvbik6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dQYWdlUG9wdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UGFnZVBvcHVw
OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpmb2N1c0RpcmVjdGlvbkZvcktleSk6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c3VwcGxl
bWVudE5hbWUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1l
QW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFsdGVybmF0ZUZhbWlseU5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWluKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvZGVjcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udENhY2hlQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldExh
c3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVj
dE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhp
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93eC9Gb250Q2FjaGVXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVhZGVyRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2U6OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aGFzQ2FjaGVWYWxpZGF0b3JGaWVs
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZXhwaXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6bGFzdE1vZGlmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2VCYXNlOjppc0F0dGFjaG1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZTo6Z2V0QXZnQ2hhcldpZHRoKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Z2V0QXZnQ2hhcldpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6cHJlZmVycmVkQ29udGVudFdpZHRo
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNN
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBZGRpdGl2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OmluaGVyaXRzRnJvbVByb3BlcnR5KToKKyAgICAgICAgKiBz
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExl
bmd0aFlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjpvcmRlclhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGREZXZpYXRpb25YSWRl
bnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGRE
ZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0
ZERldmlhdGlvblhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdG
RU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQ6OnJhZGl1c1hJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OnJhZGl1c1lJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0
aFlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5
WElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6
YmFzZUZyZXF1ZW5jeVlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNYSWRl
bnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZ
SWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0xhbmdTcGFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMYW5nU3BhY2U6OnhtbHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xh
bmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR01hcmtl
ckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3JpZW50
VHlwZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3Jp
ZW50QW5nbGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6
OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFN0eWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHls
ZUVsZW1lbnQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRp
YSk6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdTcGVjOjp2aWV3Qm94SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3Bl
Yzo6cHJlc2VydmVBc3BlY3RSYXRpb0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnRyYW5zZm9ybUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24v
U1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnBh
cnNlQ2xvY2tWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVzdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6ZmlsbCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVwZWF0Q291bnQpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdz
Ojpmcm9tKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRE9DVFlQRSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1hNTEVudGl0eSk6CisKKzIwMTItMTEtMDUg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCiAgICAgICAgIFRyYW5z
Zm9ybU9wZXJhdGlvbkluZm8ncyBjb25zdHJ1Y3RvciBpcyByZWFsbHkgc2xvdwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTQzCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGMzNDJlNWIzODIxODA1OTkzOWQ4MDVkZjkyOTczMmM1YjM2OTAwZmMuLjM5MGYyNDgzNDMw
ZjEwOGVjOTgxNGU2NThlYTRkY2Q4NmMyMTRiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlDb250cm9sbGVyLmNwcApAQCAtOTEsNyArOTEsNyBA
QCB2b2lkIEJhdHRlcnlDb250cm9sbGVyOjpkaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEJhdHRlcnlD
b250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWUsICgiQmF0dGVyeUNvbnRyb2xsZXIiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQmF0dGVyeUNvbnRyb2xsZXIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0
ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5
LmNwcAppbmRleCAwNzkwNjAyYjYxZDllZjk2ZWZiNzFlYTg4ZWI3YmQ5N2JiODU4YmYzLi43M2Q4
OTJlODNiNTM3NmI3M2ZkYzE2ODRmYjk3MjQxNDU4YmUxNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwCkBAIC01MCw3ICs1
MCw3IEBAIEJhdHRlcnlNYW5hZ2VyKiBOYXZpZ2F0b3JCYXR0ZXJ5Ojp3ZWJraXRCYXR0ZXJ5KE5h
dmlnYXRvciogbmF2aWdhdG9yKQogCiBOYXZpZ2F0b3JCYXR0ZXJ5KiBOYXZpZ2F0b3JCYXR0ZXJ5
Ojpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckJhdHRlcnkiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2aWdhdG9yQmF0dGVyeSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBOYXZpZ2F0b3JCYXR0ZXJ5KiBz
dXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdhdG9yQmF0dGVyeSo+KFN1cHBsZW1lbnQ8TmF2
aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIG5hbWUpKTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsK
ICAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBOYXZpZ2F0b3JCYXR0ZXJ5KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vY2hyb21pdW0vRHJhZ2dlZElzb2xh
dGVkRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vY2hy
b21pdW0vRHJhZ2dlZElzb2xhdGVkRmlsZVN5c3RlbS5jcHAKaW5kZXggZWIzZWI2MzJkMzUyZWJj
YWI3MmVjYWY4MDNkZWE1MDc2YzE0MWFkYS4uOTFiZWEzZTU3OTRiNjJkMzQ4YTBjMTE0MTgxZWY5
Y2YxZmNiOWEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L2Nocm9taXVtL0RyYWdnZWRJc29sYXRlZEZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbS9jaHJvbWl1bS9EcmFnZ2VkSXNvbGF0ZWRGaWxlU3lzdGVt
LmNwcApAQCAtNTksNyArNTksNyBAQCBET01GaWxlU3lzdGVtKiBEcmFnZ2VkSXNvbGF0ZWRGaWxl
U3lzdGVtOjpnZXRET01GaWxlU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogY29uc3QgQXRv
bWljU3RyaW5nJiBEcmFnZ2VkSXNvbGF0ZWRGaWxlU3lzdGVtOjpzdXBwbGVtZW50TmFtZSgpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJEcmFnZ2VkSXNvbGF0ZWRGaWxlU3lzdGVtIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRyYWdnZWRJc29sYXRlZEZp
bGVTeXN0ZW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBh
ZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmNwcAppbmRleCA0NjJkM2Q1YjliMWJmMzJhNzIwMDUxYjM3YzY1MDA0
NjdhOGY3YzIxLi44NjQ4ZjBiNWE1OGE5NGM4YjA4MzU2N2JlNDhiNzY5ZmM5NDNiM2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQu
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIE5hdmlnYXRvckdhbWVwYWQ6On5OYXZpZ2F0b3JHYW1lcGFk
KCkKIAogTmF2aWdhdG9yR2FtZXBhZCogTmF2aWdhdG9yR2FtZXBhZDo6ZnJvbShOYXZpZ2F0b3Iq
IG5hdmlnYXRvcikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFt
ZSwgKCJOYXZpZ2F0b3JHYW1lcGFkIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdhbWVwYWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgTmF2aWdhdG9yR2FtZXBhZCogc3VwcGxlbWVudCA9IHN0YXRp
Y19jYXN0PE5hdmlnYXRvckdhbWVwYWQqPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2
aWdhdG9yLCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIHN1cHBsZW1l
bnQgPSBuZXcgTmF2aWdhdG9yR2FtZXBhZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4
IDdhYmY4MzE4MTAyODliMzk3MjM1MjRjNjI4ODNlMTg1MWJiNDhjMjAuLjNlNTBhZTljZGI5ODVi
NWY5YjkzYmE0ZWUwY2Q1NmJkMGE1OTA4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAg
LTEzNCw3ICsxMzQsNyBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXI6Omxhc3RQb3NpdGlvbigpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgR2VvbG9jYXRpb25Db250
cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiR2VvbG9jYXRpb25Db250cm9sbGVyIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkdlb2xvY2F0aW9uQ29udHJvbGxlciIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZp
Z2F0b3JHZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcAppbmRleCBkYTBlYmY1NGE3NmM4MWFiODM1MjEzODM1
N2ZhZGUxODQxOGI2ODc1Li5iN2MyNGJiMjg4NGZiZDIzMmNmNjFlNGFhYWVhY2JmMDllZGFkODVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRv
ckdlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L05hdmlnYXRvckdlb2xvY2F0aW9uLmNwcApAQCAtNDQsNyArNDQsNyBAQCBOYXZpZ2F0b3JHZW9s
b2NhdGlvbjo6fk5hdmlnYXRvckdlb2xvY2F0aW9uKCkKIAogTmF2aWdhdG9yR2VvbG9jYXRpb24q
IE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckdlb2xv
Y2F0aW9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
Ik5hdmlnYXRvckdlb2xvY2F0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8
TmF2aWdhdG9yR2VvbG9jYXRpb24qPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdh
dG9yLCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIHN1cHBsZW1lbnQg
PSBuZXcgTmF2aWdhdG9yR2VvbG9jYXRpb24obmF2aWdhdG9yLT5mcmFtZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2UuY3BwCmluZGV4IDE2ODAyOGI2MzIyZGIzNmMyMjFmYTVjN2NiN2RiMDVjN2Y4
Yzk0MmEuLjhkYjVlOWRkYTdlZDdhOTY1YzA3ZTg2NmFiZjllODNiZjkwZDIwZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93
SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtNDksNyArNDksNyBAQCBET01XaW5kb3dJbmRleGVkRGF0
YWJhc2U6On5ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UoKQogCiBET01XaW5kb3dJbmRleGVkRGF0
YWJhc2UqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiRE9NV2luZG93SW5kZXhlZERhdGFiYXNlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSogc3VwcGxl
bWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSo+KFN1cHBsZW1lbnQ8
RE9NV2luZG93Pjo6ZnJvbSh3aW5kb3csIG5hbWUpKTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsK
ICAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBET01XaW5kb3dJbmRleGVkRGF0YWJhc2Uod2luZG93
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmlu
ZGV4IGE2OWQ0YzNmMWZmOGNmZmIwMzllNzhhZjYxODgxZDc3YzkzNmRjYWQuLmJlYjAxYzQ2Mjgy
YTNlM2Y4OWFkNDY0MWQ1MTRjNDViOGJlOTkxZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtNTAsMjUgKzUwLDI1IEBAIFBhc3NSZWZQ
dHI8SURCQ3Vyc29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rp
b25OZXh0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dCwg
KCJuZXh0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuZXh0LCAo
Im5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5leHQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0
VW5pcXVlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dHVu
aXF1ZSwgKCJuZXh0dW5pcXVlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuZXh0dW5pcXVlLCAoIm5leHR1bmlxdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5leHR1bmlxdWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHJldiwgKCJwcmV2IikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwcmV2LCAoInByZXYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHByZXY7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2VW5pcXVlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJwcmV2dW5pcXVlIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2dW5pcXVlLCAoInByZXZ1bmlxdWUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHByZXZ1bmlx
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHAKaW5kZXggNzA0NmEyNGRhNDg1YjIxNzRhNmM2MDA4MzFlMDg1NGFlOTU1Mjg3YS4uY2U4
YWFhMzcyZDNjMDFiZmIxOTBjZTcyZjgwNWIzMjk5ZTg1MDhjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE0Miw4ICsxNDIsOCBA
QCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbigpIGNv
bnN0CiBjb25zdCBTdHJpbmcmIElEQlJlcXVlc3Q6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAg
IEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBlbmRpbmcsICgicGVuZGlu
ZyIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZG9uZSwgKCJkb25l
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwZW5kaW5nLCAoInBl
bmRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRvbmUsICgiZG9uZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUEVORElO
RykKICAgICAgICAgcmV0dXJuIHBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggNDcwMDVjM2I3NjFlMjBjMjVm
MDg5MTIxYzQ2MzdmMzBiYTg3M2ZjMC4uNWQ4YWM1ZmNhNWYxZTU5Nzk0OWE4NmViZDA2MjRmZjJh
MDNlMjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcApAQCAtNTksMzEgKzU5LDMxIEBAIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seSgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJl
YWRvbmx5IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkb25s
eSwgKCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rp
b246Om1vZGVSZWFkV3JpdGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCByZWFkd3JpdGUsICgicmVhZHdyaXRlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgicmVhZHdyaXRlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiByZWFkd3JpdGU7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVWZXJzaW9uQ2hhbmdlKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmVyc2lvbmNoYW5nZSwgKCJ2ZXJzaW9u
Y2hhbmdlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2ZXJzaW9u
Y2hhbmdlLCAoInZlcnNpb25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIHZlcnNpb25jaGFuZ2U7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seUxlZ2FjeSgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWRvbmx5OwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5KCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCIxIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiByZWFkd3JpdGU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VH
cm91cEluZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IDU4MDNmYzBjNTlkOWJkYTkwZjc5
YzQyYjRjYzI2MWU1MDQ0OTExNDcuLmFkM2Q1OTY1OGE0OGE3NGY0MTczZGU5YWVlMjg0OTc2OGRj
ZGRmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VH
cm91cEluZGV4ZWREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmNwcApAQCAtNDMsNyArNDMsNyBAQCBQYWdl
R3JvdXBJbmRleGVkRGF0YWJhc2U6On5QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UoKQogCiBQYWdl
R3JvdXBJbmRleGVkRGF0YWJhc2UqIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6ZnJvbShQYWdl
R3JvdXAmIGdyb3VwKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgUGFnZUdyb3VwSW5kZXhlZERh
dGFiYXNlKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNl
Kj4oU3VwcGxlbWVudDxQYWdlR3JvdXA+Ojpmcm9tKCZncm91cCwgbmFtZSkpOwogICAgIGlmICgh
c3VwcGxlbWVudCkgewogICAgICAgICBzdXBwbGVtZW50ID0gbmV3IFBhZ2VHcm91cEluZGV4ZWRE
YXRhYmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0RP
TVdpbmRvd0ludGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0RPTVdp
bmRvd0ludGVudHMuY3BwCmluZGV4IGI4OWZlZmUyYWVhNzY3Nzk4NWJkODA0MzYzMjg3ZjYwODA5
NzU3YjkuLjdhZGRiMDYxMGE2MGQ2ZDU0ZTgwOTFjNmM5MGNjOWMyOTZjZTY3YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50cy5jcHAK
QEAgLTQ2LDcgKzQ2LDcgQEAgRE9NV2luZG93SW50ZW50czo6fkRPTVdpbmRvd0ludGVudHMoKQog
RE9NV2luZG93SW50ZW50cyogRE9NV2luZG93SW50ZW50czo6ZnJvbShET01XaW5kb3cqIHdpbmRv
dykKIHsKICAgICBBU1NFUlQod2luZG93KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJET01XaW5kb3dJbnRlbnRzIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRPTVdpbmRvd0ludGVudHMiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgRE9NV2luZG93SW50ZW50cyogc3VwcGxl
bWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd0ludGVudHMqPihTdXBwbGVtZW50PERPTVdpbmRv
dz46OmZyb20od2luZG93LCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAg
IHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93SW50ZW50cyh3aW5kb3cpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxl
ci5jcHAKaW5kZXggMzA3N2Q0MTFiZjFmNGYzZWIyYjJlYjczMTY4NTg1NmZkOTYzZTZjMS4uNjli
ZjAxNGQwZGIzOTBmNDI5MTc2OThjMGI4MzUzOTc5NmUxZjZkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIu
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBVc2VyTWVkaWFDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiVXNlck1lZGlhQ29udHJvbGxl
ciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJVc2Vy
TWVkaWFDb250cm9sbGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0
aWxzLmNwcAppbmRleCAwYmM3ZjEyYzJkMzEzNTMzMzAwZGZiZjBkNzljODRlNDcxMWRlYjBjLi5l
OGRkNDkzMzk1N2UzZTg1ZDc2ZjFhNmQxYTlmYmY5YWEwNmFiMTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50
VXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIE5h
dmlnYXRvckNvbnRlbnRVdGlsczo6dW5yZWdpc3RlclByb3RvY29sSGFuZGxlcihOYXZpZ2F0b3Iq
IG5hdmlnYXRvciwgY29ucwogCiBjb25zdCBBdG9taWNTdHJpbmcmIE5hdmlnYXRvckNvbnRlbnRV
dGlsczo6c3VwcGxlbWVudE5hbWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckNvbnRlbnRVdGlscyIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JDb250ZW50VXRpbHMiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmF2aWdh
dG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0
d29ya2luZm8vTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmNwcAppbmRleCBjMjI2ZDc0
N2ZlZTBmMDY0YTk3ZDE2YzU5ZTQxYjdjMzc5MzYyZDUyLi5mZDc2OTcxNzU5ZTM4NTU1OTg0MmIy
ZDI1OTRiMTZlOGViY2RjY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25l
dHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rp
b24uY3BwCkBAIC00NSw3ICs0NSw3IEBAIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbjo6
fk5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbigpCiAKIE5hdmlnYXRvck5ldHdvcmtJbmZv
Q29ubmVjdGlvbiogTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uOjpmcm9tKE5hdmlnYXRv
ciogbmF2aWdhdG9yKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoIk5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbiIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5l
Y3Rpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgTmF2aWdh
dG9yTmV0d29ya0luZm9Db25uZWN0aW9uKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2aWdh
dG9yTmV0d29ya0luZm9Db25uZWN0aW9uKj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpmcm9tKG5h
dmlnYXRvciwgbmFtZSkpOwogICAgIGlmICghc3VwcGxlbWVudCkgewogICAgICAgICBzdXBwbGVt
ZW50ID0gbmV3IE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRy
b2xsZXIuY3BwCmluZGV4IGFhNjk1ZWMxYzI3MjNkZTVlYTY0OTIzNzAwMjg1NGY3ZjQ3ZWI1NTku
LmU3MDY3MWFlODdkZDMzMDcwZGYwOTlkYWE0MGVjNGYyYThiZTgyMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29u
dHJvbGxlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6
OmRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW4KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1l
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJOZXR3
b3JrSW5mb0NvbnRyb2xsZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiTmV0d29ya0luZm9Db250cm9sbGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZp
Y2F0aW9ucy5jcHAKaW5kZXggNDAxNzNlZTc1ZWJiZjI3MTVhNTliZGViYmY4NzljN2UyMDZmZWNh
ZS4uNGM1NTZkZTE2ZThkNzZlYTY0ZDlkMzc3ZDNhY2MyY2I4MmJhZGUxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmNwcApAQCAtNDksNyArNDksNyBAQCBET01XaW5kb3dOb3RpZmljYXRp
b25zOjp+RE9NV2luZG93Tm90aWZpY2F0aW9ucygpCiAKIERPTVdpbmRvd05vdGlmaWNhdGlvbnMq
IERPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20oRE9NV2luZG93KiB3aW5kb3cpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1cHBsZW1lbnROYW1lLCAoIkRPTVdp
bmRvd05vdGlmaWNhdGlvbnMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHN1cHBsZW1lbnROYW1lLCAoIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgRE9NV2luZG93Tm90aWZpY2F0aW9ucyog
c3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd05vdGlmaWNhdGlvbnMqPihTdXBwbGVt
ZW50PERPTVdpbmRvdz46OmZyb20od2luZG93LCBzdXBwbGVtZW50TmFtZSkpOwogICAgIGlmICgh
c3VwcGxlbWVudCkgewogICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd05vdGlmaWNh
dGlvbnMod2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA5YmJkOWJm
M2MyMGQ1MjZjOWQ2MzA3ZDk4YjljODFjYjI1MjA3MDU5Li4wZGMxOTczNjk5NjYyYjQ0YzNkNjVl
NTE4MGQ0YzA1ODlhYWMxYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC01
OCw3ICs1OCw3IEBAIE5vdGlmaWNhdGlvbkNsaWVudCogTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
Y2xpZW50RnJvbShQYWdlKiBwYWdlKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE5vdGlmaWNhdGlv
bkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJOb3RpZmljYXRpb25Db250cm9sbGVyIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5vdGlmaWNhdGlvbkNvbnRy
b2xsZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9N
V2luZG93UXVvdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dR
dW90YS5jcHAKaW5kZXggNjVmZTgyNDkwMmIwN2IxMjk5MzEyMTU1MzRiMjkyOTY3YmFmN2E1Ny4u
ZjZlMjg5MjZkMDU5ZmU5N2MzMTQ4ZjZmNjBmY2U3NDhjY2VmMWExNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgRE9NV2luZG93UXVvdGE6On5ET01XaW5kb3dRdW90YSgpCiAvLyBzdGF0aWMKIERPTVdpbmRv
d1F1b3RhKiBET01XaW5kb3dRdW90YTo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJET01XaW5kb3dRdW90YSIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJET01XaW5k
b3dRdW90YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBET01X
aW5kb3dRdW90YSogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PERPTVdpbmRvd1F1b3RhKj4oU3Vw
cGxlbWVudDxET01XaW5kb3c+Ojpmcm9tKHdpbmRvdywgbmFtZSkpOwogICAgIGlmICghc3VwcGxl
bWVudCkgewogICAgICAgICBzdXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd1F1b3RhKHdpbmRvdyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25Db250cm9sbGVyLmNwcAppbmRleCBkNGJjYzg1ZmVjNjdlOTcxYWY5NmQ2Mjcz
ZmYzZGFmMTA2MzZhM2ZjLi41MTQ4MTEwYTA5OWE0OWE4M2QzN2FkZWZlMmQyNzNjMzVkZmE0MGRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNwZWVjaFJlY29nbml0aW9uQ29udHJv
bGxlcjo6c3VwcGxlbWVudE5hbWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoIlNwZWVjaFJlY29nbml0aW9uQ29udHJvbGxlciIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJTcGVlY2hSZWNvZ25pdGlvbkNv
bnRyb2xsZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0
aW9uL1ZpYnJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJy
YXRpb24uY3BwCmluZGV4IDJhNTMxZmRkZGNlOGFhZjAwYzgxMTg4YTM4MjI0YTljYmUzMmM4M2Yu
LjkzNmY3NzY4ZGEyOTJmZDMyNjgwN2UyYjBkYjUyMTBlN2VjOGI1ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcApAQCAtMTI4LDcgKzEyOCw3
IEBAIHZvaWQgVmlicmF0aW9uOjp0aW1lclN0b3BGaXJlZChUaW1lcjxWaWJyYXRpb24+KiB0aW1l
cikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWJyYXRpb246OnN1cHBsZW1lbnROYW1lKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJWaWJyYXRpb24i
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiVmlicmF0
aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBu
YW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAppbmRleCBlNjc1YmUyZjM4ZTI3NWM3ZGVjOWE0ZDVlZTlmOTk2Yjkx
ZGE0NmMwLi4zZWY4NDM3MGM1OTBmY2ZkM2E3MDFjNGJjMjg5NWExNjgwZThjNjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKQEAgLTEyODQsNyArMTI4NCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYUlz
TXVsdGlsaW5lKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjppbnZhbGlkU3RhdHVzKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgaW52YWxpZFN0YXR1c0ZhbHNlLCAoImZhbHNlIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBpbnZhbGlkU3RhdHVzRmFsc2Us
ICgiZmFsc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgCiAg
ICAgLy8gYXJpYS1pbnZhbGlkIGNhbiByZXR1cm4gZmFsc2UgKGRlZmF1bHQpLCBncmFtbWVyLCBz
cGVsbGluZywgb3IgdHJ1ZS4KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFJbnZhbGlkID0g
Z2V0QXR0cmlidXRlKGFyaWFfaW52YWxpZEF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXgg
OTM3ZTg2OWQzZjYwMTAzYjk3ZTJiMjA2YTA5OWY1NjM5MDRkNzExOS4uMDc3YzAwZWY0MTRhMGM1
ZjBlZTBkNjNmZjczZGYzODBlMmI4ZmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yODYy
LDkgKzI4NjIsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNhbkhhdmVDaGls
ZHJlbigpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YXJpYUxpdmVSZWdpb25TdGF0dXMoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3RhdHVzQXNzZXJ0aXZlLCAoImFz
c2VydGl2ZSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bGl2ZVJlZ2lvblN0YXR1c1BvbGl0ZSwgKCJwb2xpdGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNPZmYsICgib2ZmIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3Rh
dHVzQXNzZXJ0aXZlLCAoImFzc2VydGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGl2
ZVJlZ2lvblN0YXR1c1BvbGl0ZSwgKCJwb2xpdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGxpdmVSZWdpb25TdGF0dXNPZmYsICgib2ZmIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbGl2ZVJlZ2lvblN0YXR1
cyA9IGdldEF0dHJpYnV0ZShhcmlhX2xpdmVBdHRyKTsKICAgICAvLyBUaGVzZSByb2xlcyBoYXZl
IGltcGxpY2l0IGxpdmUgcmVnaW9uIHN0YXR1cy4KQEAgLTI4ODksNyArMjg4OSw3IEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpdmVSZWdpb25T
dGF0dXMoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFyaWFMaXZlUmVnaW9uUmVsZXZhbnQoKSBjb25zdAogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50LCAo
ImFkZGl0aW9ucyB0ZXh0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50LCAoImFkZGl0aW9ucyB0ZXh0IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgcmVsZXZhbnQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9yZWxldmFudEF0dHIpOwogCiAgICAgLy8g
RGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9ucyB0ZXh0Ii4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCmlu
ZGV4IDdjOWFmMzcyMTZkMWJiMGQ1MWYwZjNkMzMyNmMzYmExMmM5ZmRkNTMuLmE1NTliZWRiMzhh
ZjlhZDk0OGM3OGUzNWRhYzRhNzUxNDA4MmRiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNTU3LDcg
KzU1Nyw3IEBAIGJvb2wgVjhET01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaG9zdCwgdjg6OkxvY2FsPHY4OjpWCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmIChrZXktPklzU3RyaW5nKCkpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWVPZlByb3RvUHJvcGVydHksICgiX19wcm90b19fIikpOworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZU9mUHJvdG9Qcm9wZXJ0
eSwgKCJfX3Byb3RvX18iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAK
ICAgICAgICAgU3RyaW5nIG5hbWUgPSB0b1dlYkNvcmVTdHJpbmcoa2V5KTsKICAgICAgICAgRnJh
bWUqIGNoaWxkRnJhbWUgPSB0YXJnZXQtPnRyZWUoKS0+c2NvcGVkQ2hpbGQobmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3Rv
bS5jcHAKaW5kZXggZTQyNTg5ZTY5YmFjMWRjNWYzNzQyMDhmZWVjYTE4NGU0NWEyODlmMy4uZThi
NzA0YzdhZWVlZDEzZDk0ODdlMTc5MTFhYzdmZjhjY2UwZDY3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcApAQCAt
NDksNyArNDksNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhOb2RlTGlzdDo6bmFtZWRQcm9w
ZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZQogICAgIEF0b21pY1N0cmluZyBr
ZXkgPSB0b1dlYkNvcmVBdG9taWNTdHJpbmcobmFtZSk7CiAKICAgICAvLyBMZW5ndGggcHJvcGVy
dHkgY2Fubm90IGJlIG92ZXJyaWRkZW4uCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGxlbmd0aCwgKCJsZW5ndGgiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGxlbmd0aCwgKCJsZW5ndGgiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGtleSA9PSBsZW5ndGgpCiAgICAgICAgIHJl
dHVybiB2OEludGVnZXIobGlzdC0+bGVuZ3RoKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcAppbmRleCBkYTdkZjlkMWRhMzUwYjhkMTY1
ZWYxNmZlMGZjYzQ3MWMxZmQwOTdjLi45NzMwNGUyNTUyOTdiYjI2MzUyZjkxODdjZDkxYWE3ZTRi
MzU4YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBDb250ZXh0RmVhdHVyZXNDbGllbnQqIENvbnRleHRGZWF0dXJlc0NsaWVudDo6ZW1w
dHkoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5h
bWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNv
bnRleHRGZWF0dXJlcyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJDb250ZXh0RmVhdHVyZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmNwcAppbmRleCAyM2Q2MDU0OWFkNWZkNjk1MzE5Mjc4NGM1YmFj
M2ZhMDY0OGI5NjU5Li5jZWRmYTRhMjY0ZjgyMzM3NGE2ZTAxZGQyNjk2YWZhOTFiOWQ5NDIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0x
MzcsNyArMTM3LDcgQEAgdm9pZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZp
Y2VNb3Rpb24oRGV2aWNlTW90aW9uRGF0YSogZGV2aWNlTW90aW8KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRGV2aWNlTW90aW9uQ29udHJv
bGxlciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJE
ZXZpY2VNb3Rpb25Db250cm9sbGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDMwMmRiNjEyNDM0YmE0ZDZhNTky
N2M4ZDNmZWM4Mzc2MDg3ZWFiNzUuLjkxYmZmZmM0YTY2OTE5YzQ3MjY2ZGRlNTNjNTE0Y2YzYTcx
YjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uRGEK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBs
ZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFt
ZSwgKCJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNGQ5MzgzMGVkMWEzMDAzYjg2MjJlMmVlZWQ1
MTBlNjE0OWViMjdiMy4uOWUzOGQ4N2I0NjFiMDBkMGU5ZGZhNmQzODk3NDIzMTJiYmI1ZDgzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjE3MywyMSArMjE3MywyMSBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIEVsZW1lbnQ6OndlYmtpdFJlZ2lvbk92ZXJzZXQoKSBjb25zdAogewogICAgIGRv
Y3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHVuZGVmaW5lZFN0YXRlLCAoInVuZGVm
aW5lZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdW5kZWZpbmVk
U3RhdGUsICgidW5kZWZpbmVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIGlmICghZG9jdW1lbnQoKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKSB8fCAhcmVuZGVyUmVn
aW9uKCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAogICAgIHN3aXRjaCAocmVu
ZGVyUmVnaW9uKCktPnJlZ2lvblN0YXRlKCkpIHsKICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVn
aW9uRml0OiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRT
dGF0ZSwgKCJmaXQiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBmaXRTdGF0ZSwgKCJmaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgICAgIHJldHVybiBmaXRTdGF0ZTsKICAgICB9CiAgICAgY2FzZSBSZW5kZXJSZWdpb246
OlJlZ2lvbkVtcHR5OiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBlbXB0eVN0YXRlLCAoImVtcHR5IikpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZW1wdHlTdGF0ZSwgKCJlbXB0eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICAgICAgcmV0dXJuIGVtcHR5U3RhdGU7CiAgICAgfQogICAgIGNh
c2UgUmVuZGVyUmVnaW9uOjpSZWdpb25PdmVyc2V0OiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAoIm92ZXJzZXQiKSk7CisgICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAoIm92ZXJz
ZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVy
biBvdmVyZmxvd1N0YXRlOwogICAgIH0KICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uVW5k
ZWZpbmVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKaW5kZXggMWZlZGQxZGJm
YTE2NWYwOTAzMWQ1Y2M3Y2I1ODI3YzFiNzYyYjJiMC4uMWVhYWE0NDg0ZjRmYzdmODVmZWU0YzFi
N2U3OWVmN2YxN2NjZWJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
UmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCkBA
IC0xMzQsMTkgKzEzNCwxOSBAQCBwcml2YXRlOgogCiBjb25zdCBBdG9taWNTdHJpbmcmIENoaWxk
TGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGNoaWxkTGlzdCwgKCJjaGlsZExpc3QiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGNoaWxkTGlzdCwgKCJjaGlsZExpc3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBBdHRyaWJ1dGVzUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1dGVzIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhdHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGF0dHJp
YnV0ZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQ2hhcmFjdGVyRGF0YVJlY29yZDo6dHlw
ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNoYXJhY3RlckRh
dGEsICgiY2hhcmFjdGVyRGF0YSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgY2hhcmFjdGVyRGF0YSwgKCJjaGFyYWN0ZXJEYXRhIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCA4OWZjYzg3OGU1OWM1MzkzMmU5MDk3
ZGIxMjliZDA2N2NkNjczZTNlLi5mNjEwNWNhOTQ2ZjBhOTllNTBkMDUyMmM1YTI5ZDVlMWYzZjNi
Mzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTgyLDcgKzgyLDcg
QEAgVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVXBsb2FkQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBwc2V1ZG9JZCwgKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1maWxlLXVwbG9h
ZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1D
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDdmODdiOTdmZmM4N2QzMzc2Zjk4M2IzNjM5MmY4NzVlMDc3OTU2Y2EuLmI0M2RkNjc2ZTQ1
ODAyZTk2NjEzNGYyNDNhY2NlMmI3NzJlMTA1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNv
bnRyb2xsZXIuY3BwCkBAIC0yNzIsNyArMjcyLDcgQEAgVmVjdG9yPFN0cmluZz4gU2F2ZWRGb3Jt
U3RhdGU6OmdldFJlZmVyZW5jZWRGaWxlUGF0aHMoKSBjb25zdAogICAgIFZlY3RvcjxTdHJpbmc+
IHRvUmV0dXJuOwogICAgIGZvciAoRm9ybUVsZW1lbnRTdGF0ZU1hcDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3N0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzLmJlZ2luKCk7IGl0ICE9IG1fc3RhdGVGb3JO
ZXdGb3JtRWxlbWVudHMuZW5kKCk7ICsraXQpIHsKICAgICAgICAgY29uc3QgRm9ybUVsZW1lbnRL
ZXkmIGtleSA9IGl0LT5rZXk7Ci0gICAgICAgIGlmIChBdG9taWNTdHJpbmcoa2V5LnR5cGUoKSkg
IT0gQXRvbWljU3RyaW5nKCJmaWxlIikpCisgICAgICAgIGlmIChBdG9taWNTdHJpbmcoa2V5LnR5
cGUoKSkgIT0gImZpbGUiKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNvbnN0IERl
cXVlPEZvcm1Db250cm9sU3RhdGU+JiBxdWV1ZSA9IGl0LT52YWx1ZTsKICAgICAgICAgZm9yIChE
ZXF1ZTxGb3JtQ29udHJvbFN0YXRlPjo6Y29uc3RfaXRlcmF0b3IgcXVlSXRlcmF0b3IgPSBxdWV1
ZS5iZWdpbigpOyBxdWVJdGVyYXRvciAhPSBxdWV1ZS5lbmQoKTsgKytxdWVJdGVyYXRvcikgewpA
QCAtMzQ0LDcgKzM0NCw3IEBAIEF0b21pY1N0cmluZyBGb3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5
KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvCiB7CiAgICAgSFRNTEZv
cm1FbGVtZW50KiBmb3JtID0gb3duZXJGb3JtRm9yU3RhdGUoY29udHJvbCk7CiAgICAgaWYgKCFm
b3JtKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmb3JtS2V5
Rm9yTm9Pd25lciwgKCJObyBvd25lciIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZvcm1LZXlGb3JOb093bmVyLCAoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3du
ZXI7CiAgICAgfQogICAgIEZvcm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1U
b0tleU1hcC5maW5kKGZvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAppbmRleCBjYmQxZjI5OThjZjllOGE5YWFmM2M2ZWM5NTcwNDQ3N2ZiNWFhNzY5Li4yMDVl
OTYyNjkwYzJjMGY3NDY4MGIzZGI3MWFjNjVkNDM4YjE4NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAtNzEsMTUgKzcxLDE1IEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgSFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJtaXQsICgic3VibWl0
IikpOworICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1Ym1pdCwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgICAgICAgICByZXR1cm4gc3VibWl0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQlVU
VE9OOiB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgYnV0dG9uLCAoImJ1dHRvbiIpKTsKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBidXR0b24sICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbjsKICAgICAgICAg
fQogICAgICAgICBjYXNlIFJFU0VUOiB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgicmVzZXQiKSk7CisgICAgICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgicmVzZXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVz
ZXQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKaW5kZXggODZhN2I0OGNhYjYxYjJiZThhODYwOGZkOWFmYTNjNDIyZDlkY2QyYi4u
Y2U1M2NlMWNjOGRjZTljNmVkMjQyNmJjZDBlM2MwNDI2YTk3NjdjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5
UXVlcnlTZWxlY3RvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNlbGVjdG9yLCAoInN1bW1hcnk6Zmlyc3Qtb2YtdHlwZSIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgic3VtbWFyeTpmaXJzdC1vZi10eXBlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzZWxlY3Rv
cjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmlu
ZGV4IDZiMDEwMTliZWViMGZkMDZlMTMzZDAwYjg5M2JjNDU0OTQxN2Y1MzguLjczZmY1MzdjZGM2
ZWVlODg3MmVlMTgyMjU4ZmI3YzVjY2VjNjA0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtNzksNyArNzksNyBAQCBib29sIEhUTUxGaWVsZFNl
dEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhU
TUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZpZWxkc2V0LCAoImZpZWxkc2V0Iikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmaWVsZHNldCwg
KCJmaWVsZHNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gZmllbGRzZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHAKaW5kZXggY2ZlMmQ4ZTQ5Njk1MDAyOTkyMjE5MzhhYmJiMjIyMjJjZmYwYmE5Ny4uNzQz
NjQ5NmEyN2Y1Y2RlMDUwMDFiNzRlZmZjMDU4OTc3ZDc1NzU4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwg
KCItd2Via2l0LWtleWdlbi1zZWxlY3QiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBwc2V1ZG9JZDsK
ICAgICB9CiAKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBl
bmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29sKQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBrZXlnZW4sICgi
a2V5Z2VuIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBr
ZXlnZW4sICgia2V5Z2VuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwCmluZGV4IGM5NWIxZmY0MWI0NTgzYzdlOTQ3NzU2N2RkNjkyZTdiMzczNDMw
ZTcuLmM1ZTUyNmY1NDZkNTUwYWU3NzYxOTNmYWQwODQzYzRlOGNmZmIwODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBi
b29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcHRncm91cCwg
KCJvcHRncm91cCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
Zywgb3B0Z3JvdXAsICgib3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IDU0MzJjOTJmMWQ1ZGYxMWNlOGJmNzMxZjI1ZmM4MmIw
MjI5MzI2MGIuLjI3N2ZlNWFhN2NiMDI4OGUzMmU0ZjhjMDRiNDg5YzdhYjZlYmY2Y2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBA
IFBhc3NSZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91dHB1
dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG91dHB1dCwgKCJvdXRwdXQiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG91dHB1dCwgKCJvdXRwdXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG91dHB1dDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBmYzY4ZjAx
YTZmMjkyMDViMzNmNGUzMzgyM2M1ZjRjYjIyNTU1NWEyLi45YmY1MzMzMmY4OTg4ODcxNTAwNWI5
ZjdkODI0ZWQ0Y2RlNTIwZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcApAQCAtOTAsOCArOTAsOCBAQCBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBI
VE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZwogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RN
dWx0aXBsZSwgKCJzZWxlY3QtbXVsdGlwbGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIHNlbGVjdE9uZSwgKCJzZWxlY3Qtb25lIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RNdWx0aXBsZSwgKCJzZWxl
Y3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNlbGVjdE9uZSwgKCJzZWxl
Y3Qtb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBtX211bHRpcGxlID8gc2VsZWN0TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGRiOThjY2M5Zjk1MDdl
OWMzZmMyY2IzMmQwZmU0YmQ1YzU3YTRmMWQuLmMwMzRlYmRkNjE5ZTc3MGJlMjk4YWJlZDQ3ZmM0
MzhlZWI1YTdjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgdGV4dGFyZWEsICgidGV4dGFyZWEiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0ZXh0YXJlYTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAppbmRleCBkNTJhODI1NzEyNTY4MWMwNzI1ZmE3OWZiMDFkZGY5NjA0MjgwNDA0Li5h
MmY5NTJhNTNiY2U2ZTI3NjA3MDljMDE2ZTlmMTA3YjgyMmFkMDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzk0LDkg
KzM5NCw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlv
bkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblN0cmlu
ZyhUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub25lLCAoIm5vbmUiKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZvcndhcmQsICgiZm9yd2FyZCIp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dhcmQs
ICgiYmFja3dhcmQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIG5vbmUsICgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yd2FyZCwgKCJm
b3J3YXJkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBiYWNrd2FyZCwgKCJiYWNrd2FyZCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CiAgICAgY2FzZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggOWFl
M2U3MzlmYWQ3ZjFmNTM0MGNmNmM5YTBlMWNlZWUxZWQzNzM5Ni4uOThhMTBlZjJkNGNkMzMzYTFm
YjRjZGZkMjI4YWFjZDIzOWY5NjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWRp
dENvbnRyb2xPd25lciYgZQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkK
ICAgICAsIG1fZWRpdENvbnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGF0ZVRpbWVFZGl0UHNldWRvSWQsICgiLXdl
YmtpdC1kYXRldGltZS1lZGl0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBkYXRlVGltZUVkaXRQc2V1ZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgc2V0U2hhZG93UHNldWRvSWQo
ZGF0ZVRpbWVFZGl0UHNldWRvSWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcAppbmRleCBiNWM5ZWYxZTZjMDE3MTdh
MmFlYTQ3YzMwZDRlMzg1N2I0ZjE5NWU5Li44NGRjNTJkYTNiNzFhODY4NTE3ZGU2ZjZmNTYzNDUx
ZmUzYWJkOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgRGF0ZVRpbWVBTVBNRmllbGRF
bGVtZW50OjpEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVs
ZE93bmUKIAogUGFzc1JlZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ+IERhdGVUaW1lQU1Q
TUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFtcG1MYWJlbHMpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGFtcG1Qc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0
aW1lLWVkaXQtYW1wbS1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgYW1wbVBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1hbXBtLWZpZWxkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGlt
ZUFNUE1GaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lQU1QTUZpZWxk
RWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgYW1wbUxhYmVscykpOwogICAgIGZpZWxkLT5p
bml0aWFsaXplKGFtcG1Qc3VlZG9JZCwgQVhBTVBNRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBm
aWVsZC5yZWxlYXNlKCk7CkBAIC03OCw3ICs3OCw3IEBAIERhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpEYXRlVGltZURheUZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXIm
CiAKIFBhc3NSZWZQdHI8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
LCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBkYXlQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZp
ZWxkIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkYXlQc3VlZG9J
ZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4g
ZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZp
ZWxkT3duZXIsIHBsYWNlaG9sZGVyLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBs
YWNlaG9sZGVyKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUoZGF5UHN1ZWRvSWQsIEFYRGF5T2ZN
b250aEZpZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwpAQCAtMTIxLDcg
KzEyMSw3IEBAIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyRmllbGRFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lCiAKIFBhc3NSZWZQdHI8RGF0ZVRpbWVI
b3VyRmllbGRFbGVtZW50PiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4
aW11bSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaG91clBzdWVk
b0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxkIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBob3VyUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0LWhvdXItZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgUmVmUHRyPERhdGVUaW1lSG91ckZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihu
ZXcgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVt
LCBtYXhpbXVtKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUoaG91clBzdWVkb0lkLCBBWEhvdXJG
aWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTIyNCw3ICsyMjQs
NyBAQCBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZU1pbGxpc2Vjb25k
RmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bQogCiBQYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlz
ZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1pbGxpc2Vjb25kUHN1ZWRvSWQsICgiLXdl
YmtpdC1kYXRldGltZS1lZGl0LW1pbGxpc2Vjb25kLWZpZWxkIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtaWxsaXNlY29uZFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0
ZXRpbWUtZWRpdC1taWxsaXNlY29uZC1maWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICBSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4g
ZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChkb2N1
bWVudCwgZmllbGRPd25lcikpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKG1pbGxpc2Vjb25kUHN1
ZWRvSWQsIEFYTWlsbGlzZWNvbmRGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVh
c2UoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZAogCiBQYXNz
UmVmUHRyPERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWludXRlUHN1ZWRvSWQs
ICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1pbnV0ZS1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWludXRlUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGlt
ZS1lZGl0LW1pbnV0ZS1maWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICBSZWZQdHI8RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRS
ZWYobmV3IERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7
CiAgICAgZmllbGQtPmluaXRpYWxpemUobWludXRlUHN1ZWRvSWQsIEFYTWludXRlRmllbGRUZXh0
KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CkBAIC0zMDYsNyArMzA2LDcgQEAgRGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQsIEZpZWxkT3cKIAogUGFzc1JlZlB0cjxEYXRlVGltZU1vbnRoRmllbGRFbGVt
ZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtb250aFBzdWVkb0lkLCAoIi13
ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbW9udGhQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQt
bW9udGgtZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
UmVmUHRyPERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERh
dGVUaW1lTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHBsYWNlaG9sZGVy
LmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVyKSk7CiAgICAgZmll
bGQtPmluaXRpYWxpemUobW9udGhQc3VlZG9JZCwgQVhNb250aEZpZWxkVGV4dCgpKTsKICAgICBy
ZXR1cm4gZmllbGQucmVsZWFzZSgpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIERhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50OjpEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1l
bnQsIEZpZWxkCiAKIFBhc3NSZWZQdHI8RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVU
aW1lU2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93
bmVyJiBmaWVsZE93bmVyKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzZWNvbmRQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtc2Vjb25kLWZpZWxkIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzZWNvbmRQc3VlZG9JZCwg
KCItd2Via2l0LWRhdGV0aW1lLWVkaXQtc2Vjb25kLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVu
dD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShzZWNvbmRQc3VlZG9JZCwg
QVhTZWNvbmRGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTM4
OCw3ICszODgsNyBAQCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
U3ltYm9saWNNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCogZAogCiBQYXNzUmVmUHRyPERhdGVU
aW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBtb250aFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1t
b250aC1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbW9u
dGhQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgUmVmUHRyPERhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpKTsKICAgICBm
aWVsZC0+aW5pdGlhbGl6ZShtb250aFBzdWVkb0lkLCBBWE1vbnRoRmllbGRUZXh0KCkpOwogICAg
IHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CkBAIC00MzIsNyArNDMyLDcgQEAgRGF0ZVRpbWVXZWVr
RmllbGRFbGVtZW50OjpEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
LCBGaWVsZE93bmUKIAogUGFzc1JlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+IERhdGVU
aW1lV2Vla0ZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25l
ciYgZmllbGRPd25lcikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
d2Vla1BzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC13ZWVrLWZpZWxkIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB3ZWVrUHN1ZWRvSWQsICgiLXdlYmtp
dC1kYXRldGltZS1lZGl0LXdlZWstZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgUmVmUHRyPERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudD4gZmllbGQgPSBh
ZG9wdFJlZihuZXcgRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVy
KSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUod2Vla1BzdWVkb0lkLCBBWFdlZWtPZlllYXJGaWVs
ZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTQ3Nyw3ICs0NzcsNyBA
QCBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZQogCiBQYXNzUmVmUHRyPERhdGVUaW1lWWVhckZpZWxk
RWxlbWVudD4gRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBEYXRlVGltZVllYXJGaWVsZEVsZW1l
bnQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHllYXJQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1m
aWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeWVhclBzdWVk
b0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGltZVllYXJGaWVsZEVsZW1l
bnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lciwgcGFyYW1ldGVycykpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKHllYXJQ
c3VlZG9JZCwgQVhZZWFyRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAKaW5kZXggYjEwOWVmOGViNmRlNzEyMGY0MjY1OTViOGFiNTVkOGY5MjM5NWUyNS4uN2I4
M2I3YmE4OWVkMjBhMmJkOTlkMzY1YzFlZGJhZTVjYWRhNjliNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBib29sIERldGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIERl
dGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1kZXRhaWxzLW1h
cmtlciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwg
KCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZElkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9JbWFnZUlubmVyRWxlbWVudC5jcHAKaW5kZXggYjIzZDZiMWE1ZjQwZTIxZjk3
M2Y3MmMzZjg4ZDVmNmFjZDhiZmIyNC4uODM5Y2M5MjAzODlmN2YwYmM3MmQ2ODVjZjQ2YTJiMGQ0
YjU3MzlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5l
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlSW5uZXJF
bGVtZW50LmNwcApAQCAtNzAsNyArNzAsNyBAQCBSZW5kZXJPYmplY3QqIEltYWdlSW5uZXJFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKgogCiBj
b25zdCBBdG9taWNTdHJpbmcmIEltYWdlSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAo
Ii13ZWJraXQtaW1hZ2UtaW5uZXItZWxlbWVudCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1pbWFnZS1pbm5lci1lbGVtZW50Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZG9J
ZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwCmluZGV4IDkwNjQ2NjAxM2Y4YjNhOWRkNmIyOGJkNDYzN2IyZmMyNTIyOTI5
ZWMuLjBiYmY3NjNhODA1N2Y2ZTJkOGRhZDFmYmVhMzZkYTMyMzQ5YmQ4MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAg
LTEzOCw3ICsxMzgsNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1wYW5lbCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTMzNCw3ICszMzQsNyBAQCBNZWRp
YUNvbnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6
OmRpc3BsYXlUeXBlKCkgY29ucwogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lLWNvbnRhaW5lciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwog
fQogCkBAIC00MTAsNyArNDEwLDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6ZGlzcGxheVR5cGUoKQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5l
ciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQ3MSw3ICs0
NzEsNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5
RWxlbWVudDo6ZGlzcGxheVR5cGUoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtc3RhdHVzLWRpc3BsYXkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhdHVzLWRpc3BsYXkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQog
CkBAIC01NjAsNyArNTYwLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13
ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlk
OwogfQogCkBAIC01ODEsNyArNTgxLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXUKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0
ZS1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAg
LTYyMCw3ICs2MjAsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50Ojp1cGRh
dGVEaXNwbGF5VHlwZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1
dHRvbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTY2MCw3ICs2NjAsNyBAQCB2
b2lkIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5
cGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxh
eS1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTc2Miw3
ICs3NjIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVu
dD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbAogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0b24iKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vl
ay1mb3J3YXJkLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTc4Myw3ICs3ODMsNyBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25F
bGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1i
dXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13
ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTgxNCw3ICs4MTQs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJl
d2luZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1y
ZXdpbmQtYnV0dG9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQo
KSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24iKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTg4NCw3ICs4ODQsNyBAQCB2
b2lkIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6dXBkYXRl
RGlzcGxheVR5cGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2ds
ZS1jbG9zZWQtY2FwdGlvbnMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtOTU5LDcgKzk1OSw3IEBAIHZvaWQgTWVk
aWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzZXREdXJhdGlvbihmbG9hdCBkdXJhdGlvbikKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1l
bGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
aWQ7CiB9CiAKQEAgLTEwMzQsNyArMTAzNCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyRWxlbWVudDo6c2V0Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0aW9uKGJvb2wgY2xlYXJNCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdm9sdW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1
bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBpZDsKIH0KIApAQCAtMTEwMyw3ICsxMTAzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExMzksNyArMTEzOSw3IEBA
IHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1taW4tYnV0dG9uIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWZ1bGxzY3JlZW4tdm9sdW1lLW1pbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTcwLDcgKzExNzAsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTIzOSw3ICsxMjM5LDcg
QEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50OjpkaXNwbGF5VHlwZSgpIGMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUt
cmVtYWluaW5nLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBNZWRpYUNvbnRyb2xF
bGVtZW50VHlwZSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpkaXNwbGF5
VHlwZSgpIGNvbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJy
ZW50LXRpbWUtZGlzcGxheSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTEzMTUsNyArMTMxNSw3IEBAIFJlbmRlck9iamVjdCogTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJh
Y2stY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCmluZGV4IGVmNTQxYmFhMzNiMWU4YmRmMGYwOTMy
MmM1ZmUwOTc2YjI3MTc3ODguLjIyYTAxOGZkOTcwMDRhNjc3NTZlOTJlMWVkNTAyZTBiOWMwZmU4
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudC5jcHAKQEAgLTY1Niw3ICs2NTYsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Ojp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBpZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRl
eCA2YjM5MTNiYjZlNTIzYWY5ZGY3MjY4MzFlYjg2MDZhMzQwNjg5NGNhLi44MmQ4ZjkyNjBlNmIy
YmNmYWRiYzVmZjc3ZTA0YWMwYTg3OTY5NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNw
cApAQCAtNzEsNyArNzEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJl
RWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1
cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlk
OwogfQogCkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtOjp1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtQW5kcm9pZC5jcHAKaW5kZXggNDU2MzRhODQ3NmRlOGU0Yzc4ZjAzYzg1OTM4NTAyNTYyYWRm
ZmUzMi4uZGZlODQ4ZGM4MWY2ODNiM2Q3NTI1ZDc2OTY0MjUwZmVhYTE1YWZkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcApAQCAtNDQsNyArNDQsNyBAQCBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xP
dmVybGF5RW5jbG9zdXJlRWxlbQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92
ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtb3ZlcmxheS1lbmNsb3N1cmUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNw
cAppbmRleCA0NDFmMDEzOTc2M2YzNGQ1NzcxNGIzODAzMzdkYjc1OTg3NWU1OWM2Li4zYzQ4YjVm
MmI4ZWViMmJhOGUwN2EyMzc1YTMzMmUyOWNlZjBkNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAgLTgxLDIxICs4MSwyMSBA
QCBSZW5kZXJPYmplY3QqIE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1ldGVySW5u
ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13
ZWJraXQtbWV0ZXItaW5uZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZXRlckJhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LW1ldGVyLWJhciIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0
LW1ldGVyLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gcHNldWRJZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlclZhbHVlRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcHRpbXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUi
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1
ZElkLCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSIpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRJZCwgKCItd2Via2l0LW1l
dGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcHRpbXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXIt
c3Vib3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRJ
ZCwgKCItd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXIgPSBt
ZXRlckVsZW1lbnQoKTsKICAgICBpZiAoIW1ldGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKaW5kZXggNDY1ZDViYThmNWZi
NTAzMGNmZmYzZWFjYTBhOGI4ZmQ3MjQzMDI0NC4uZmRmYWUwNWYwYjRhODI3OTU0OGVjYWFiYmIw
ZTIxZWRiYjEwYTVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIFBhc3NSZWZQdHI8UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1wcm9n
cmVzcy1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBwc2V1ZElkOwogfQogCkBAIC04OCwxNCArODgsMTQgQEAgYm9vbCBQcm9n
cmVzc0lubmVyRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29u
dGV4dCYgY29udGV4dCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc0JhckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLWJhciIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLWJh
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNl
dWRJZDsKIH0KIAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzVmFsdWVFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLXZh
bHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBw
c2V1ZElkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAppbmRleCA1ZTUzZWNlZDFiNmY2MDA2MzdmNzE5OTI0NWJjMDViODdkMDZl
MDEzLi44ZGMwZmQyZWIyNzg1ZmJiNTZhMDI5OTgzMjA4ODU2YmNiZWNlMTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTQw
MCwxMyArNDAwLDEzIEBAIEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9z
dElucHV0KCkgY29uc3QKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2xpZGVyVGh1bWJT
aGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0
LXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc2xpZGVyVGh1bWI7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1l
ZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1z
bGlkZXItdGh1bWIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1lZGlhU2xpZGVy
VGh1bWI7CiB9CiAKQEAgLTUwMSw4ICs1MDEsOCBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVk
b0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgbWVkaWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVy
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Vi
a2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNs
aWRlckNvbnRhaW5lciwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHNoYWRvd0hvc3QoKS0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBpZiAoIWlucHV0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDk5
ZGQ3MTk0N2JmMzU4YWMwZmVmZmYyNDFiNGE2ZTY5ODRjNzg2ZTguLmU5YjBlZWM2NjViZjRiODFi
ZWRjZTZjODI5OWY5YmJmYWVlN2QwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUGFzc1JlZlB0cjxT
cGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQsIFNwaW4KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpbm5lclBzZXVkb0lkLCAoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdlYmtp
dC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gaW5uZXJQc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNmE1
NjViMzAwMjQ3ZDRmNDA0ODc1MzRlNzg0MjAzZWVlNzY5MmQ0Zi4uYzc5YzViODgxZjgxNGIxMGUz
OGNhYmJmMjdlMDI4NGZkMzE1N2JiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xMjQsOSArMTI0LDkg
QEAgUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hG
aWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNl
YXJjaC1yZXN1bHRzLWJ1dHRvbiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgcmVzdWx0c0RlY29yYXRpb25JZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29y
YXRpb24iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlY29yYXRp
b25JZCwgKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1i
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtp
dC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWNvcmF0
aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICBFbGVtZW50KiBob3N0ID0gc2hhZG93SG9zdCgpOwogICAg
IGlmICghaG9zdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdHNJZDsKQEAgLTE3OSw3ICsxNzksNyBA
QCBQYXNzUmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LXNlYXJj
aC1jYW5jZWwtYnV0dG9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBwc2V1ZG9JZCwgKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApAQCAt
NDM4LDcgKzQzOCw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnN0b3BT
cGVlY2hJbnB1dCgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9u
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCIt
d2Via2l0LWlucHV0LXNwZWVjaC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggYTA0YjFiOGNiZjg3Yjc5YjdjZjFjZGUzNWJi
OTA3ZTRiMDEwMTFmZi4uOGI4YjE4YTgzYzRmNTM4NzU3ZDY4NTg1ZWIxZDUwMjY0MGU4MTgxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMTcwLDcg
KzE3MCw3IEBAIHZvaWQgVGV4dFRyYWNrQ3VlQm94OjphcHBseUNTU1Byb3BlcnRpZXMoKQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZUJveDo6dGV4dFRyYWNrQ3VlQm94U2hhZG93
UHNldWRvSWQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJh
Y2stZGlzcGxheSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDliMjZm
Yzg2YzkwNDM5Mzk1MTVmMTBhZTY5ZWJiNjU1MzBjMGI0MzEuLjIzYzZlMWNjNzNiYjYwYzE4ZmE2
NWU1NTcwNWFhYThiNzM5YmEwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0xMzQsOCArMTM0LDggQEAgUmVzb3VyY2VS
ZXF1ZXN0IGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKIAogYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWxzIGluY2x1ZGVDcmVkZW50
aWFscywgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBTdHJpbmcmIGVycm9yRGVzY3Jp
cHRpb24pCiB7Ci0gICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKEF0b21pY1N0cmluZyYs
IGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbiA9ICpuZXcgQXRvbWljU3RyaW5nKCJhY2Nlc3MtY29u
dHJvbC1hbGxvdy1vcmlnaW4iKSk7Ci0gICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKEF0
b21pY1N0cmluZyYsIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzID0gKm5ldyBBdG9taWNT
dHJpbmcoImFjY2Vzcy1jb250cm9sLWFsbG93LWNyZWRlbnRpYWxzIikpOworICAgIEF0b21pY2Fs
bHlJbml0aWFsaXplZFN0YXRpYyhBdG9taWNTdHJpbmcmLCBhY2Nlc3NDb250cm9sQWxsb3dPcmln
aW4gPSAqbmV3IEF0b21pY1N0cmluZygiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIEF0b21pY2FsbHlJbml0aWFs
aXplZFN0YXRpYyhBdG9taWNTdHJpbmcmLCBhY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFscyA9
ICpuZXcgQXRvbWljU3RyaW5nKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1jcmVkZW50aWFscyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIC8vIEEgd2lsZGNhcmQg
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGNhbiBub3QgYmUgdXNlZCBpZiBjcmVkZW50aWFs
cyBhcmUgdG8gYmUgc2VudCwKICAgICAvLyBldmVuIHdpdGggQWNjZXNzLUNvbnRyb2wtQWxsb3ct
Q3JlZGVudGlhbHMgc2V0IHRvIHRydWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDMzNGQ2NDg5NWJkZDE0MTdiMzM5NTVhZTcwMGZkMWU1ODg5
ODBkN2IuLmM4NTgwMGYxYzQ2NTViZDUyNDQ5YTcxYzM3NjM2MGJkNzRiMzZjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNjgsNyArMzY4
LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlv
bkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0KCks
IHIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRv
ciBpdCA9IHIuaHR0cEhlYWRlckZpZWxkcygpLmZpbmQoQXRvbWljU3RyaW5nKCJ4LWZyYW1lLW9w
dGlvbnMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhGcmFtZU9w
dGlvbkhlYWRlciwgKCJ4LWZyYW1lLW9wdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByLmh0
dHBIZWFkZXJGaWVsZHMoKS5maW5kKHhGcmFtZU9wdGlvbkhlYWRlcik7CiAgICAgaWYgKGl0ICE9
IHIuaHR0cEhlYWRlckZpZWxkcygpLmVuZCgpKSB7CiAgICAgICAgIFN0cmluZyBjb250ZW50ID0g
aXQtPnZhbHVlOwogICAgICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPnNob3VsZEludGVycnVw
dExvYWRGb3JYRnJhbWVPcHRpb25zKGNvbnRlbnQsIHIudXJsKCkpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1ByZXJlbmRlcmVyQ2xpZW50LmNwcAppbmRleCBmOGMyOTg5MjhjMjI0NWIwYzky
YmY1NWE0ZDhjZWFkZDhiZDUwNTEzLi5kYWQyODljNTEzMjAyZDBkZjhkODY2OTFkY2YwYjg0MzQw
NTI0ZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAK
QEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gc3RhdGljCiBjb25zdCBB
dG9taWNTdHJpbmcmIFByZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJlcmVuZGVyZXJDbGll
bnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJl
cmVuZGVyZXJDbGllbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCmluZGV4IGNhM2ZlMTM2MzA0MDcxNTdiN2ZiMzUxZDY4YWI0ZWIwMTQz
MzY2OGIuLjEwOWI3NmJjYzZkZDBjYmZjOWYzMmU1ZjE4OTA3MDQwYTU1MWVlNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNzEwLDcg
KzcxMCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnVwZGF0ZVJlc3BvbnNlQWZ0ZXJSZXZhbGlk
YXRpb24oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgdmFsCiB7CiAgICAgbV9yZXNwb25zZVRpbWVz
dGFtcCA9IGN1cnJlbnRUaW1lKCk7CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgY29udGVudEhlYWRlclByZWZpeCwgKCJjb250ZW50LSIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29udGVudEhlYWRlclByZWZpeCwg
KCJjb250ZW50LSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAv
LyBSRkMyNjE2IDEwLjMuNQogICAgIC8vIFVwZGF0ZSBjYWNoZWQgaGVhZGVycyBmcm9tIHRoZSAz
MDQgcmVzcG9uc2UKICAgICBjb25zdCBIVFRQSGVhZGVyTWFwJiBuZXdIZWFkZXJzID0gdmFsaWRh
dGluZ1Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93UGFnZVBvcHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93UGFnZVBvcHVwLmNwcAppbmRleCA4NjA3NmRhYjYxMWYwMzdiZTcyMWI5N2Q5NjhkOTRk
MzdmOTc3ZjZlLi5iOWZjN2NhNjk5YzJhNzY4ZjE3ZjdlMDBhN2IzOGUwOTg3ZGIyZDc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuY3BwCkBAIC01MCw3ICs1MCw3
IEBAIERPTVdpbmRvd1BhZ2VQb3B1cDo6fkRPTVdpbmRvd1BhZ2VQb3B1cCgpCiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgRE9NV2luZG93UGFnZVBvcHVwOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRE9NV2luZG93UGFnZVBv
cHVwIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRP
TVdpbmRvd1BhZ2VQb3B1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDkyMDU1YTEyMzNhNzg0Njk1MmI3YmJjZmMxMWFkNzNjNWM4M2U5OGYuLjA3ZTFiNzNhYjk4
MjMyYjBmODM0NDE5NjQ1ZjM4ZDVjOTY1ZmM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTE5ODUsNyArMTk4NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVQ
YXN0ZUdsb2JhbFNlbGVjdGlvbihjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlCiAg
ICAgRnJhbWUqIGZvY3VzRnJhbWUgPSBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigp
LT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAvLyBEbyBub3QgcGFzdGUgaGVyZSBpZiB0aGUg
Zm9jdXMgd2FzIG1vdmVkIHNvbWV3aGVyZSBlbHNlLgogICAgIGlmIChtX2ZyYW1lID09IGZvY3Vz
RnJhbWUgJiYgbV9mcmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zdXBwb3J0c0dsb2JhbFNlbGVj
dGlvbigpKQotICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoQXRvbWlj
U3RyaW5nKCJQYXN0ZUdsb2JhbFNlbGVjdGlvbiIpKS5leGVjdXRlKCk7CisgICAgICAgIHJldHVy
biBtX2ZyYW1lLT5lZGl0b3IoKS0+Y29tbWFuZChBU0NJSUxpdGVyYWwoIlBhc3RlR2xvYmFsU2Vs
ZWN0aW9uIikpLmV4ZWN1dGUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTMxMTIsMTAg
KzMxMTIsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50KQogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9j
dXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBrZXlJZGVudGlmaWVyKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBEb3duLCAoIkRvd24iKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFVwLCAoIlVwIikpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBMZWZ0LCAoIkxlZnQiKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJpZ2h0IikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBEb3duLCAoIkRvd24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIFVwLCAoIlVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBMZWZ0LCAoIkxlZnQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJpZ2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9jdXNEaXJl
Y3Rpb25Ob25lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCmluZGV4IDgzMjhjNWQ0
ZGYzMjk5NDJiNTlmM2VjYzIyNTM1NjhjZTJhOGExMWQuLmNiNGEyMWYyZGY5ODA1NDM4MDJjM2Nm
ZWVmMmU2Mzg1NDJiZjMyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCkBAIC0x
MTksNyArMTE5LDcgQEAgdm9pZCBTcGVlY2hJbnB1dDo6Y2FuY2VsUmVjb2duaXRpb24oaW50IGxp
c3RlbmVySWQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU3BlZWNoSW5wdXQ6OnN1cHBsZW1lbnRO
YW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJT
cGVlY2hJbnB1dCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFt
ZSwgKCJTcGVlY2hJbnB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggMGIwZjM3OWQ1NmFiZDg1YzYzYmFl
MTRjZTVlYTJiNDlhYjEzZWU4ZS4uMWJiNTA1OWU2ZGE0MDFkZmZkZGU4MDQ4MTk2ZWU1NzI2Yzdi
ZjIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3Np
dGVBbmltYXRpb24uY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRp
b246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5k
ZXIKICAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICAgICAgbV9r
ZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIpKTsKKyAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgCiAgICAgICAgIC8vIE5v
dyBtYXJrIGFueSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkg
bmV3IGFuaW1hdGlvbnMuCiAgICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRl
eCBmNjA4ODNhYjNlOGVmMzJmYWMxMzk4Yjk0NGQwNjBmMGNjODA0MTZhLi5hNGFjN2VhMzY1OTNi
Y2E1MDQ5YTFhOGVhODVkOGVhNGVlNTZjZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTEzNCw4ICsxMzQsOCBAQCBzdGF0aWMgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlKiBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gMDsKIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIGFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBmYW1pbHlOYW1lKQogewogICAgIC8vIEFsaWFzIENvdXJpZXIgPC0+IENvdXJpZXIgTmV3Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNvdXJpZXIsICgiQ291cmllciIp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY291cmllck5ldywgKCJD
b3VyaWVyIE5ldyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY291
cmllciwgKCJDb3VyaWVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjb3VyaWVyTmV3LCAoIkNvdXJp
ZXIgTmV3IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShmYW1pbHlOYW1lLCBjb3VyaWVyKSkKICAgICAgICAgcmV0dXJuIGNv
dXJpZXJOZXc7CiAjaWYgIU9TKFdJTkRPV1MpCkBAIC0xNDcsMTYgKzE0NywxNiBAQCBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBhbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5TmFtZSkKICNlbmRpZgogCiAgICAgLy8gQWxpYXMgVGltZXMgYW5kIFRpbWVzIE5l
dyBSb21hbi4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXMsICgi
VGltZXMiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHRpbWVzTmV3
Um9tYW4sICgiVGltZXMgTmV3IFJvbWFuIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCB0aW1lcywgKCJUaW1lcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNOZXdS
b21hbiwgKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIHRpbWVzKSkKICAg
ICAgICAgcmV0dXJuIHRpbWVzTmV3Um9tYW47CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZh
bWlseU5hbWUsIHRpbWVzTmV3Um9tYW4pKQogICAgICAgICByZXR1cm4gdGltZXM7CiAgICAgCiAg
ICAgLy8gQWxpYXMgQXJpYWwgYW5kIEhlbHZldGljYQotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBhcmlhbCwgKCJBcmlhbCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgaGVsdmV0aWNhLCAoIkhlbHZldGljYSIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXJpYWwsICgiQXJpYWwiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGhlbHZldGljYSwgKCJIZWx2ZXRpY2EiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIGFyaWFsKSkK
ICAgICAgICAgcmV0dXJuIGhlbHZldGljYTsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFt
aWx5TmFtZSwgaGVsdmV0aWNhKSkKQEAgLTE2NSwxNCArMTY1LDE0IEBAIHN0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIGFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHlOYW1lKQogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gT24gV2luZG93cywgYml0bWFwIGZvbnRz
IGFyZSBibG9ja2VkIGFsdG9nZXRoZXIgc28gdGhhdCB3ZSBoYXZlIHRvIAogICAgIC8vIGFsaWFz
IE1TIFNhbnMgU2VyaWYgKGJpdG1hcCBmb250KSAtPiBNaWNyb3NvZnQgU2FucyBTZXJpZiAodHJ1
ZXR5cGUgZm9udCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbXNTYW5z
LCAoIk1TIFNhbnMgU2VyaWYiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG1pY3Jvc29mdFNhbnMsICgiTWljcm9zb2Z0IFNhbnMgU2VyaWYiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1zU2FucywgKCJNUyBTYW5zIFNlcmlmIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBtaWNyb3NvZnRTYW5zLCAoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShmYW1pbHlOYW1lLCBtc1NhbnMpKQogICAgICAgICByZXR1cm4gbWljcm9zb2Z0U2Fu
czsKIAogICAgIC8vIEFsaWFzIE1TIFNlcmlmIChiaXRtYXApIC0+IFRpbWVzIE5ldyBSb21hbiAo
dHJ1ZXR5cGUgZm9udCkuIFRoZXJlJ3Mgbm8gCi0gICAgLy8gJ01pY3Jvc29mdCBTYW5zIFNlcmlm
LWVxdWl2YWxlbnQnIGZvciBTZXJpZi4gCi0gICAgc3RhdGljIEF0b21pY1N0cmluZyBtc1Nlcmlm
KCJNUyBTZXJpZiIpOworICAgIC8vICdNaWNyb3NvZnQgU2FucyBTZXJpZi1lcXVpdmFsZW50JyBm
b3IgU2VyaWYuCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1zU2VyaWYs
ICgiTVMgU2VyaWYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIG1zU2VyaWYpKQogICAgICAgICByZXR1
cm4gdGltZXNOZXdSb21hbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDM3N2U4ZGM3YTNkZjc3MDZhZTMwOTUyYTdh
YTk1ODNiOGVlNjZiYTEuLmRhOTM1NzBhMGI3YjE3OGNhZTkyM2E5NWVlZjI1NDc2ZTQzYzFhMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTIzOSwxOSArMjM5LDE5IEBAIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0
ZU1lZGlhRW5naW5lUGxheWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBvCiAKIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhcHBsaWNhdGlvbk9jdGV0U3Ry
ZWFtLCAoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXBwbGljYXRpb25PY3RldFN0cmVhbSwgKCJhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW07CiB9CiAKIHN0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHRleHRQbGFpbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWluIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0ZXh0UGxhaW4sICgidGV4dC9wbGFpbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gdGV4dFBs
YWluOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb2RlY3MsICgiY29kZWNzIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb2RlY3MsICgi
Y29kZWNzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBjb2RlY3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRDYWNoZUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQW5kcm9pZC5jcHAKaW5kZXggZWJhMjI0YTgz
YzE1ZTU4OGJkZjA3ZmFhM2I2ZTFjNjQxMzY1YTYwNC4uYWE1NGRjMTAxYjFmOTFjMWYxMDdjNWEz
NGFiZTA1ZDk4YmIxMTQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udENhY2hlQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQW5kcm9pZC5jcHAKQEAgLTEyMiw5
ICsxMjIsOSBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldFNpbWls
YXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZvbgogCiBQYXNzUmVmUHRyPFNpbXBsZUZv
bnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2VyaWYsICgiU2VyaWYi
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1vbm9zcGFj
ZSwgKCJNb25vc3BhY2UiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHNhbnMsICgiU2FucyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc2VyaWYsICgiU2VyaWYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1v
bm9zcGFjZSwgKCJNb25vc3BhY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNhbnMsICgi
U2FucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIEZvbnRQ
bGF0Zm9ybURhdGEqIGZvbnRQbGF0Zm9ybURhdGEgPSAwOwogICAgIHN3aXRjaCAoZGVzY3JpcHRp
b24uZ2VuZXJpY0ZhbWlseSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDI4MzUwMWM1M2Q3Njg3
NGQ2ZjFmMGY0MTU5N2Y1ZDQxYWVlMTE3OGEuLjRjYzU2MjJmMDg5ZmFjNjVjOWUzODdjNTUyMmE0
MWRhYTY2NThmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFBhc3NSZWZQ
dHI8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNl
QWxwaGEiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNf
ZWZmZWN0TmFtZSwgKCJTb3VyY2VBbHBoYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNw
cAppbmRleCA3NWIxMWRkZjdkOWQxMDMzMDNkMzRhODQxNmUwNjk2NWNmMGQxN2MxLi4xOTdkODAy
ZjVkYzI4NTY4ZmJkNzg5YzhhZTQyMjQzZmNhZDA2ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAK
QEAgLTM4LDcgKzM4LDcgQEAgUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGlj
OjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlR3Jh
cGhpYzo6ZWZmZWN0TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIHNfZWZmZWN0TmFtZSwgKCJTb3VyY2VHcmFwaGljIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlR3Jh
cGhpYyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
c19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQppbmRleCBkMWRjODE2MmExNGNlMDk5OTU4ZTBiYTU0
YjQ1YmJhNjc0MTEwZTNlLi4zZmE0MzNmM2QyZDQxY2Q3ZDE0Nzk4Mjg2YTk1ZDRjN2I4MGU5OTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENh
Y2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KQEAgLTE4Miw3ICsxODIsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRh
PiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZvbgog
ICAgIHdoaWxlIChjdXJyRmFtaWx5ICYmICFzaW1wbGVGb250RGF0YSkgewogICAgICAgICBpZiAo
Y3VyckZhbWlseS0+ZmFtaWx5KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIHN0YXRpYyBTdHJp
bmcqIG1hdGNoV29yZHNbM10gPSB7IG5ldyBTdHJpbmcoIkFyYWJpYyIpLCBuZXcgU3RyaW5nKCJQ
YXNodG8iKSwgbmV3IFN0cmluZygiVXJkdSIpIH07Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZ2VlemFTdHIsICgiR2VlemEgUHJvIikpOworICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGdlZXphU3RyLCAoIkdlZXphIFBy
byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgICAgIGZv
ciAoaW50IGogPSAwOyBqIDwgMyAmJiAhc2ltcGxlRm9udERhdGE7ICsraikKICAgICAgICAgICAg
ICAgICBpZiAoY3VyckZhbWlseS0+ZmFtaWx5KCkuY29udGFpbnMoKm1hdGNoV29yZHNbal0sIGZh
bHNlKSkKICAgICAgICAgICAgICAgICAgICAgc2ltcGxlRm9udERhdGEgPSBnZXRDYWNoZWRGb250
RGF0YShmb250LmZvbnREZXNjcmlwdGlvbigpLCBnZWV6YVN0cik7CkBAIC0xOTUsNyArMTk1LDcg
QEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250JiBmb24KIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4g
Rm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0aW1lc1N0ciwgKCJUaW1lcyIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICAvLyBGSVhNRTogV291
bGQgYmUgZXZlbiBiZXR0ZXIgdG8gc29tZWhvdyBnZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQg
aGVyZS4gIEZvciBub3cgd2UnbGwgcGljawogICAgIC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVz
ZXIgd291bGQgZ2V0IHdpdGhvdXQgY2hhbmdpbmcgYW55IHByZWZzLgpAQCAtMjA3LDcgKzIwNyw3
IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZh
bGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpCiAgICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZl
IGl0LCB3ZSBmYWxsIGJhY2sgb24gTHVjaWRhIEdyYW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8v
IGd1YXJhbnRlZWQgdG8gYmUgdGhlcmUsIGFjY29yZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlz
IGlzIGdvb2QgZW5vdWdoCiAgICAgLy8gdG8gYXZvaWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHVjaWRhR3JhbmRlU3RyLCAoIkx1Y2lk
YSBHcmFuZGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGx1Y2lk
YUdyYW5kZVN0ciwgKCJMdWNpZGEgR3JhbmRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24s
IGx1Y2lkYUdyYW5kZVN0ciwgZmFsc2UsIHNob3VsZFJldGFpbik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDYWNoZVNraWEuY3Bw
CmluZGV4IDMzNmFiYzQzMGE5NWU0ZjYyYWY5YjRmYTk2Y2FlN2Q4YTUwMDBiNjguLmU1OWVmYTVk
OTM1MDUxMjVkZTQ4ZWIwMDExYTQ3NTZhYzBjODA0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q2FjaGVTa2lhLmNwcApAQCAtOTUs
OSArOTUsOSBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldFNpbWls
YXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZvbgogCiBQYXNzUmVmUHRyPFNpbXBsZUZv
bnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2Fuc1N0ciwgKCJTYW5z
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZXJpZlN0
ciwgKCJTZXJpZiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgbW9ub3NwYWNlU3RyLCAoIk1vbm9zcGFjZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc2Fuc1N0ciwgKCJTYW5zIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBzZXJpZlN0ciwgKCJTZXJpZiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbW9u
b3NwYWNlU3RyLCAoIk1vbm9zcGFjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEqIGZvbnRQbGF0Zm9ybURhdGEgPSAwOwogICAg
IHN3aXRjaCAoZGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpKSB7CkBAIC0xMTUsNyArMTE1LDcg
QEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFs
bGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmkKIAogICAgIGlmICghZm9udFBsYXRmb3JtRGF0YSkg
ewogICAgICAgICAvLyB3ZSBzaG91bGQgYXQgbGVhc3QgaGF2ZSBBcmlhbDsgdGhpcyBpcyB0aGUg
U2tGb250SG9zdF9mb250Y29uZmlnIGxhc3QgcmVzb3J0IGZhbGxiYWNrCi0gICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhcmlhbFN0ciwgKCJBcmlhbCIpKTsK
KyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFyaWFsU3Ry
LCAoIkFyaWFsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAg
ICBmb250UGxhdGZvcm1EYXRhID0gZ2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShkZXNjcmlwdGlv
biwgYXJpYWxTdHIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAppbmRleCAyNTQwZmFlOTcyODM1YjIzYmNl
ODFiOTlhODEyZTZiZDU4OGY0ZjM4Li4yYmVjNjJhNGRlNWYwNzAwZWJlNGJlYTUyZjI4N2EzYjE1
Zjg0ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vRm9udENhY2hlV2luLmNwcApAQCAtMzIzLDExICszMjMsMTEgQEAgUGFzc1JlZlB0cjxTaW1w
bGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZv
bnREZXNjcmkKICAgICAvLyBTb3J0ZWQgYnkgbW9zdCB0byBsZWFzdCBnbHlwaHMgYWNjb3JkaW5n
IHRvIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW5pY29kZV90eXBlZmFjZXMKICAgICAv
LyBTdGFydCB3aXRoIFRpbWVzIE5ldyBSb21hbiBhbHNvIHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0
IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2hhbmdlIHByZWZzLgogICAgIHN0YXRpYyBBdG9taWNTdHJp
bmcgZmFsbGJhY2tGb250c1tdID0gewotICAgICAgICBBdG9taWNTdHJpbmcoIlRpbWVzIE5ldyBS
b21hbiIpLAotICAgICAgICBBdG9taWNTdHJpbmcoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiksCi0g
ICAgICAgIEF0b21pY1N0cmluZygiVGFob21hIiksCi0gICAgICAgIEF0b21pY1N0cmluZygiTHVj
aWRhIFNhbnMgVW5pY29kZSIpLAotICAgICAgICBBdG9taWNTdHJpbmcoIkFyaWFsIikKKyAgICAg
ICAgQXRvbWljU3RyaW5nKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSwKKyAgICAgICAgQXRvbWljU3RyaW5nKCJNaWNyb3NvZnQgU2FucyBTZXJp
ZiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLAorICAgICAgICBBdG9taWNT
dHJpbmcoIlRhaG9tYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLAorICAg
ICAgICBBdG9taWNTdHJpbmcoIkx1Y2lkYSBTYW5zIFVuaWNvZGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSwKKyAgICAgICAgQXRvbWljU3RyaW5nKCJBcmlhbCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCiAgICAgfTsKICAgICBSZWZQdHI8U2ltcGxl
Rm9udERhdGE+IHNpbXBsZUZvbnQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJS
QVlfTEVOR1RIKGZhbGxiYWNrRm9udHMpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDYWNoZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRDYWNoZVd4LmNwcAppbmRleCBhY2QxZGMzZTE4ODFi
YzUyYjVjMDFhMWNlNjAzMjNmYmMxYTI0MDc1Li41ZTkwZTA1OWEyNDZhODQ1ODkzNTMxZDk3MGI5
MTkxZGM2YmY4ZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93eC9Gb250Q2FjaGVXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3gvRm9udENhY2hlV3guY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFBhc3NSZWZQdHI8U2ltcGxl
Rm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0U2ltaWxhckZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dCYgZm9uCiAgICAgd2hpbGUgKGN1cnJGYW1pbHkgJiYgIXNpbXBsZUZvbnREYXRhKSB7CiAgICAg
ICAgIGlmIChjdXJyRmFtaWx5LT5mYW1pbHkoKS5sZW5ndGgoKSkgewogICAgICAgICAgICAgc3Rh
dGljIFN0cmluZyogbWF0Y2hXb3Jkc1szXSA9IHsgbmV3IFN0cmluZygiQXJhYmljIiksIG5ldyBT
dHJpbmcoIlBhc2h0byIpLCBuZXcgU3RyaW5nKCJVcmR1IikgfTsKLSAgICAgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iKSk7Cisg
ICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZ2VlemFTdHIsICgi
R2VlemEgUHJvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAg
ICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzICYmICFzaW1wbGVGb250RGF0YTsgKytqKQogICAg
ICAgICAgICAgICAgIGlmIChjdXJyRmFtaWx5LT5mYW1pbHkoKS5jb250YWlucygqbWF0Y2hXb3Jk
c1tqXSwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICBzaW1wbGVGb250RGF0YSA9IGdldENh
Y2hlZEZvbnREYXRhKGZvbnQuZm9udERlc2NyaXB0aW9uKCksIGdlZXphU3RyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAKaW5kZXggNDg1NjhlZjZmYTY5N2I2MGJiYWRmMjA4Y2MzODQ1ODZhYTRmNzMzNC4uNTkw
MmU3OTYxY2I4YTk4ZjUxYTBiYjI0NWQwNmJmNTE2MzVmNmRlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAK
QEAgLTI4MCwxMiArMjgwLDEyIEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnNldEhUVFBI
ZWFkZXJGaWVsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiB7CiAgICAgbGF6
eUluaXQoQ29tbW9uQW5kVW5jb21tb25GaWVsZHMpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGFnZUhlYWRlciwgKCJhZ2UiKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbEhlYWRlciwgKCJjYWNo
ZS1jb250cm9sIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBkYXRlSGVhZGVyLCAoImRhdGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGV4cGlyZXNIZWFkZXIsICgiZXhwaXJlcyIpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGFzdE1vZGlmaWVkSGVhZGVyLCAoImxhc3Qt
bW9kaWZpZWQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHByYWdtYUhlYWRlciwgKCJwcmFnbWEiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGFnZUhlYWRlciwgKCJhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGNhY2hlQ29udHJvbEhlYWRlciwgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBkYXRlSGVhZGVyLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGV4cGlyZXNIZWFkZXIsICgiZXhwaXJlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGFz
dE1vZGlmaWVkSGVhZGVyLCAoImxhc3QtbW9kaWZpZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHByYWdtYUhlYWRlciwgKCJwcmFnbWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGFnZUhlYWRlcikpCiAg
ICAgICAgIG1faGF2ZVBhcnNlZEFnZUhlYWRlciA9IGZhbHNlOwogICAgIGVsc2UgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKG5hbWUsIGNhY2hlQ29udHJvbEhlYWRlcikgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UobmFtZSwgcHJhZ21hSGVhZGVyKSkKQEAgLTMxOSwxMSArMzE5LDExIEBAIHZvaWQgUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpIGNvbnN0CiAgICAg
bV9jYWNoZUNvbnRyb2xDb250YWluc05vQ2FjaGUgPSBmYWxzZTsKICAgICBtX2NhY2hlQ29udHJv
bE1heEFnZSA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogCi0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0cmluZywg
KCJjYWNoZS1jb250cm9sIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBub0NhY2hlRGlyZWN0aXZlLCAoIm5vLWNhY2hlIikpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub1N0b3JlRGlyZWN0aXZlLCAoIm5vLXN0b3Jl
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtdXN0UmV2
YWxpZGF0ZURpcmVjdGl2ZSwgKCJtdXN0LXJldmFsaWRhdGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1heEFnZURpcmVjdGl2ZSwgKCJtYXgtYWdlIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYWNoZUNvbnRy
b2xTdHJpbmcsICgiY2FjaGUtY29udHJvbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9D
YWNoZURpcmVjdGl2ZSwgKCJuby1jYWNoZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9T
dG9yZURpcmVjdGl2ZSwgKCJuby1zdG9yZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbXVz
dFJldmFsaWRhdGVEaXJlY3RpdmUsICgibXVzdC1yZXZhbGlkYXRlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBtYXhBZ2VEaXJlY3RpdmUsICgibWF4LWFnZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIFN0cmluZyBjYWNoZUNvbnRyb2xWYWx1ZSA9IG1f
aHR0cEhlYWRlckZpZWxkcy5nZXQoY2FjaGVDb250cm9sU3RyaW5nKTsKICAgICBpZiAoIWNhY2hl
Q29udHJvbFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtMzU3LDcgKzM1Nyw3IEBAIHZvaWQgUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpIGNvbnN0CiAgICAg
ICAgIC8vIEhhbmRsZSBQcmFnbWE6IG5vLWNhY2hlCiAgICAgICAgIC8vIFRoaXMgaXMgZGVwcmVj
YXRlZCBhbmQgZXF1aXZhbGVudCB0byBDYWNoZS1jb250cm9sOiBuby1jYWNoZQogICAgICAgICAv
LyBEb24ndCBib3RoZXIgdG9rZW5pemluZyB0aGUgdmFsdWUsIGl0IGlzIG5vdCBpbXBvcnRhbnQK
LSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhl
YWRlciwgKCJwcmFnbWEiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBwcmFnbWFIZWFkZXIsICgicHJhZ21hIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBTdHJpbmcgcHJhZ21hVmFsdWUgPSBtX2h0dHBIZWFk
ZXJGaWVsZHMuZ2V0KHByYWdtYUhlYWRlcik7CiAKICAgICAgICAgbV9jYWNoZUNvbnRyb2xDb250
YWluc05vQ2FjaGUgPSBwcmFnbWFWYWx1ZS5sb3dlcigpLmNvbnRhaW5zKG5vQ2FjaGVEaXJlY3Rp
dmUpOwpAQCAtMzg5LDggKzM4OSw4IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omhhc0Nh
Y2hlVmFsaWRhdG9yRmllbGRzKCkgY29uc3QKIHsKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNP
bmx5KTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsYXN0
TW9kaWZpZWRIZWFkZXIsICgibGFzdC1tb2RpZmllZCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZVRhZ0hlYWRlciwgKCJldGFnIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsYXN0TW9kaWZpZWRIZWFkZXIsICgi
bGFzdC1tb2RpZmllZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZVRhZ0hlYWRlciwgKCJl
dGFnIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiAh
bV9odHRwSGVhZGVyRmllbGRzLmdldChsYXN0TW9kaWZpZWRIZWFkZXIpLmlzRW1wdHkoKSB8fCAh
bV9odHRwSGVhZGVyRmllbGRzLmdldChlVGFnSGVhZGVyKS5pc0VtcHR5KCk7CiB9CiAKQEAgLTQy
MSw3ICs0MjEsNyBAQCBkb3VibGUgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmRhdGUoKSBjb25zdAog
ICAgIGxhenlJbml0KENvbW1vbkZpZWxkc09ubHkpOwogCiAgICAgaWYgKCFtX2hhdmVQYXJzZWRE
YXRlSGVhZGVyKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBoZWFkZXJOYW1lLCAoImRhdGUiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1fZGF0ZSA9IHBhcnNlRGF0ZVZhbHVlSW5I
ZWFkZXIobV9odHRwSGVhZGVyRmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFy
c2VkRGF0ZUhlYWRlciA9IHRydWU7CiAgICAgfQpAQCAtNDMzLDcgKzQzMyw3IEBAIGRvdWJsZSBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6YWdlKCkgY29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVs
ZHNPbmx5KTsKIAogICAgIGlmICghbV9oYXZlUGFyc2VkQWdlSGVhZGVyKSB7Ci0gICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImFnZSIp
KTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRl
ck5hbWUsICgiYWdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
ICAgICBTdHJpbmcgaGVhZGVyVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KGhlYWRlck5h
bWUpOwogICAgICAgICBib29sIG9rOwogICAgICAgICBtX2FnZSA9IGhlYWRlclZhbHVlLnRvRG91
YmxlKCZvayk7CkBAIC00NDksNyArNDQ5LDcgQEAgZG91YmxlIFJlc291cmNlUmVzcG9uc2VCYXNl
OjpleHBpcmVzKCkgY29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAogICAg
IGlmICghbV9oYXZlUGFyc2VkRXhwaXJlc0hlYWRlcikgewotICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJleHBpcmVzIikpOworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwg
KCJleHBpcmVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAg
ICBtX2V4cGlyZXMgPSBwYXJzZURhdGVWYWx1ZUluSGVhZGVyKG1faHR0cEhlYWRlckZpZWxkcywg
aGVhZGVyTmFtZSk7CiAgICAgICAgIG1faGF2ZVBhcnNlZEV4cGlyZXNIZWFkZXIgPSB0cnVlOwog
ICAgIH0KQEAgLTQ2MSw3ICs0NjEsNyBAQCBkb3VibGUgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxh
c3RNb2RpZmllZCgpIGNvbnN0CiAgICAgbGF6eUluaXQoQ29tbW9uRmllbGRzT25seSk7CiAKICAg
ICBpZiAoIW1faGF2ZVBhcnNlZExhc3RNb2RpZmllZEhlYWRlcikgewotICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJsYXN0LW1vZGlm
aWVkIikpOworICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
aGVhZGVyTmFtZSwgKCJsYXN0LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgICAgICBtX2xhc3RNb2RpZmllZCA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFk
ZXIobV9odHRwSGVhZGVyRmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2Vk
TGFzdE1vZGlmaWVkSGVhZGVyID0gdHJ1ZTsKICAgICB9CkBAIC00NzIsMTMgKzQ3MiwxMyBAQCBi
b29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjppc0F0dGFjaG1lbnQoKSBjb25zdAogewogICAgIGxh
enlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImNvbnRlbnQtZGlzcG9zaXRpb24i
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRlck5h
bWUsICgiY29udGVudC1kaXNwb3NpdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICBTdHJpbmcgdmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KGhlYWRl
ck5hbWUpOwogICAgIHNpemVfdCBsb2MgPSB2YWx1ZS5maW5kKCc7Jyk7CiAgICAgaWYgKGxvYyAh
PSBub3RGb3VuZCkKICAgICAgICAgdmFsdWUgPSB2YWx1ZS5sZWZ0KGxvYyk7CiAgICAgdmFsdWUg
PSB2YWx1ZS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYXR0YWNobWVudFN0cmluZywgKCJhdHRhY2htZW50IikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdHRhY2htZW50U3RyaW5nLCAo
ImF0dGFjaG1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCBhdHRhY2htZW50U3RyaW5nKTsKIH0KICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lLmNwcAppbmRleCA5MmQwMDI4MjljYzhhMTlhMWQ1MjU1Zjc3MTI4OWI0MWJkNDc5
ZDQ5Li5mNDA5OTQzMjZmM2VhYmY3NTc0ZDFjNmYxYWZiZWQ0YjQyOWIzODdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgZmxvYXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6
OmdldEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFtaWx5KQogICAgIC8vIFNpbmNlIEx1Y2lk
YSBHcmFuZGUgaXMgdGhlIGRlZmF1bHQgZm9udCwgd2Ugd2FudCB0aGlzIHRvIG1hdGNoIHRoZSB3
aWR0aAogICAgIC8vIG9mIENvdXJpZXIgTmV3LCB0aGUgZGVmYXVsdCBmb250IGZvciB0ZXh0YXJl
YXMgaW4gSUUsIEZpcmVmb3ggYW5kIFNhZmFyaSBXaW4uCiAgICAgLy8gMTIyOSBpcyB0aGUgYXZn
Q2hhcldpZHRoIHZhbHVlIGluIHRoZSBPUy8yIHRhYmxlIGZvciBDb3VyaWVyIE5ldy4KLSAgICBp
ZiAoZmFtaWx5ID09IEF0b21pY1N0cmluZygiTHVjaWRhIEdyYW5kZSIpKQorICAgIGlmIChmYW1p
bHkgPT0gIkx1Y2lkYSBHcmFuZGUiKQogICAgICAgICByZXR1cm4gc2NhbGVFbVRvVW5pdHMoMTIy
OSk7CiAKICAgICByZXR1cm4gUmVuZGVyVGV4dENvbnRyb2w6OmdldEF2Z0NoYXJXaWR0aChmYW1p
bHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCA5NjdmYjJhY2MwZGY4Y2I5MzYxZTFhMWQ1YjhhNzMy
YTRkMGNkYTFlLi5jN2YwNzVhNGI4Zjk4MDkwZjAxZWU5YTI5OGNmMzVkZjZmZGUyM2MwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIGZsb2F0IFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6Z2V0QXZnQ2hhcldpZHRoKEF0b21pY1N0cmluZyBmYW1pbHkpCiAgICAgLy8g
b2YgTVMgU2hlbGwgRGxnLCB0aGUgZGVmYXVsdCBmb250IGZvciB0ZXh0YXJlYXMgaW4gRmlyZWZv
eCwgU2FmYXJpIFdpbiBhbmQKICAgICAvLyBJRSBmb3Igc29tZSBlbmNvZGluZ3MgKGluIElFLCB0
aGUgZGVmYXVsdCBmb250IGlzIGVuY29kaW5nIHNwZWNpZmljKS4KICAgICAvLyA5MDEgaXMgdGhl
IGF2Z0NoYXJXaWR0aCB2YWx1ZSBpbiB0aGUgT1MvMiB0YWJsZSBmb3IgTVMgU2hlbGwgRGxnLgot
ICAgIGlmIChmYW1pbHkgPT0gQXRvbWljU3RyaW5nKCJMdWNpZGEgR3JhbmRlIikpCisgICAgaWYg
KGZhbWlseSA9PSAiTHVjaWRhIEdyYW5kZSIpCiAgICAgICAgIHJldHVybiBzY2FsZUVtVG9Vbml0
cyg5MDEpOwogCiAgICAgcmV0dXJuIFJlbmRlclRleHRDb250cm9sOjpnZXRBdmdDaGFyV2lkdGgo
ZmFtaWx5KTsKQEAgLTMwNCw3ICszMDQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6cHJlZmVycmVkQ29udGVudFdpZHRoKGZsb2F0IGNoYXJXaWR0aCkgYwogICAg
IC8vIG9mIE1TIFNoZWxsIERsZywgdGhlIGRlZmF1bHQgZm9udCBmb3IgdGV4dGFyZWFzIGluIEZp
cmVmb3gsIFNhZmFyaSBXaW4gYW5kCiAgICAgLy8gSUUgZm9yIHNvbWUgZW5jb2RpbmdzIChpbiBJ
RSwgdGhlIGRlZmF1bHQgZm9udCBpcyBlbmNvZGluZyBzcGVjaWZpYykuCiAgICAgLy8gNDAyNyBp
cyB0aGUgKHhNYXggLSB4TWluKSB2YWx1ZSBpbiB0aGUgImhlYWQiIGZvbnQgdGFibGUgZm9yIE1T
IFNoZWxsIERsZy4KLSAgICBpZiAoZmFtaWx5ID09IEF0b21pY1N0cmluZygiTHVjaWRhIEdyYW5k
ZSIpKQorICAgIGlmIChmYW1pbHkgPT0gIkx1Y2lkYSBHcmFuZGUiKQogICAgICAgICBtYXhDaGFy
V2lkdGggPSBzY2FsZUVtVG9Vbml0cyg0MDI3KTsKICAgICBlbHNlIGlmIChoYXNWYWxpZEF2Z0No
YXJXaWR0aChmYW1pbHkpKQogICAgICAgICBtYXhDaGFyV2lkdGggPSByb3VuZGYoc3R5bGUoKS0+
Zm9udCgpLnByaW1hcnlGb250KCktPm1heENoYXJXaWR0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAppbmRleCBkZGFhMTBlMjZkNjUwNjZiYzk2
OGZlYmQzZmIyMTQ4OTA0YzEyZTYwLi5hNTk5NWZiMzNlZmJkMTAxODdiN2RmZjc4MjllNTlhYjQ1
ZDI4YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4g
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIHN0YXRpYyBi
b29sIGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VycmVudENvbG9y
LCAoImN1cnJlbnRDb2xvciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgY3VycmVudENvbG9yLCAoImN1cnJlbnRDb2xvciIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gdmFsdWUgPT0gY3VycmVudENvbG9yOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApp
bmRleCBmMmU0YThhMzUxMGVmZWZjYjYxYzc5ZDY5MWQwNTkwYzI0NGE4MTBhLi4zMjY4NGFjMDE5
MWE3OGFmYzAzMmRlODJlNDcyNjRhNzg3MWFkZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIFNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0
dHJpYnV0ZSkKICAgICAKIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1ZhbCwgKCJhdXRvIikpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvUmV2ZXJzZSwgKCJhdXRv
LXJldmVyc2UiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1JldmVyc2Us
ICgiYXV0by1yZXZlcnNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcm90YXRlID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjpy
b3RhdGVBdHRyKTsKICAgICBpZiAocm90YXRlID09IGF1dG9WYWwpCiAgICAgICAgIHJldHVybiBS
b3RhdGVBdXRvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmlu
ZGV4IDhlZGY4MTg0M2FlODQxMTk0NjUzMjJmMWUyNzhmYzI5ZjM4ZTlkNGMuLjUzNzY1YzM3ODMx
ZjUwODc1N2NhZWE4NTBkMDk5MGEyMTMyZmNjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTI5MywxMCArMjkzLDEwIEBAIHZvaWQgU1ZHQW5pbWF0
aW9uRWxlbWVudDo6dXBkYXRlQW5pbWF0aW9uTW9kZSgpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxl
bWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbWljU3RyaW5nJiBjYWxjTW9kZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgiZGlzY3Jl
dGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpbmVh
ciwgKCJsaW5lYXIiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHBhY2VkLCAoInBhY2VkIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBzcGxpbmUsICgic3BsaW5lIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgbGluZWFyLCAoImxpbmVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
cGFjZWQsICgicGFjZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNwbGluZSwgKCJzcGxp
bmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGNhbGNN
b2RlID09IGRpc2NyZXRlKQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZURpc2NyZXRlKTsK
ICAgICBlbHNlIGlmIChjYWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0zMTEsOCArMzExLDggQEAgdm9p
ZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNh
bGNNb2RlKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29u
c3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjc3MsICgiQ1NTIikpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB4bWwsICgiWE1MIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjc3MsICgiQ1NTIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB4bWwsICgiWE1MIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykKICAgICAgICAgbV9hdHRyaWJ1dGVU
eXBlID0gQXR0cmlidXRlVHlwZUNTUzsKICAgICBlbHNlIGlmIChhdHRyaWJ1dGVUeXBlID09IHht
bCkKQEAgLTMzOSwxNCArMzM5LDE0IEBAIFN0cmluZyBTVkdBbmltYXRpb25FbGVtZW50Ojpmcm9t
VmFsdWUoKSBjb25zdAogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0s
ICgic3VtIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBz
dW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphZGRp
dGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgpID09
IEJ5QW5pbWF0aW9uOwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0
ZWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBzdW0sICgic3VtIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVz
OjphY2N1bXVsYXRlQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSAmJiBhbmltYXRpb25N
b2RlKCkgIT0gVG9BbmltYXRpb247CiB9CkBAIC02NTgsNyArNjU4LDcgQEAgdm9pZCBTVkdBbmlt
YXRpb25FbGVtZW50OjphZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVt
ZW50LCBjb25zdAogc3RhdGljIGJvb2wgaW5oZXJpdHNGcm9tUHJvcGVydHkoU1ZHRWxlbWVudCog
dGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluaGVyaXQsICgiaW5oZXJpdCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5oZXJpdCwgKCJp
bmhlcml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAg
IGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJpdCB8fCAhdGFyZ2V0RWxlbWVu
dC0+aXNTdHlsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggOWE0NGVmODM2NDAx
NWRjZDBjMGM0NWI3ODE4ODVhZDM0MmQyODYwNS4uNWM5NzNkNzFlNmU3NWI3NDMwNTFjMjlmMmFi
M2VlZWJmOTc0ODE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC03OSwyNSArNzksMjUgQEAgUGFzc1JlZlB0cjxTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShj
b25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpr
ZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdL
ZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
S2VybmVsVW5pdExlbmd0aFkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlclhJZGVu
dGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR09yZGVyWCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR09yZGVyWSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19p
ZGVudGlmaWVyLCAoIlNWR09yZGVyWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDY5NDc4NTUxODYx
OGUwNTViODU1NmE2NTY2Y2FiYTJmOTY5NDA5MGQuLjQ1MWEyMDNlMWJjMTY0MWFhNjhmZjU0NzMw
NGNjZWIxODMyMzA2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC02NywxMyArNjcsMTMgQEAgUGFzc1JlZlB0cjxTVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6Y3Jl
YXRlKGNvbnMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKaW5k
ZXggNTUyMzUxYTYzZTQwZWI4YjRhMTlmOWQzNmMyMTliM2U1ZWZjMmNiZC4uNjVlZTA3NjFlNmUw
NTAyY2Y5NWQ0MWE5NmFlNTJkNmVhZGZiNjY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNjYsMTMgKzY2LDEzIEBAIFBhc3NSZWZQdHI8
U1ZHRkVEcm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERl
dmlhdGlvblgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURyb3BTaGFk
b3dFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDg5ZmIzYTVkODZlMTM5NTg2ZDZjZjI5
YTNhY2YxMzU4NDhkMTk5N2MuLjJlNDMyYzc0M2NjYmFjMzIyYTg2MzJkNjk3ZGI4ZDNiZTlmZTM3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
Y3BwCkBAIC01OCwxMyArNTgsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWwKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVu
dGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblgiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25YIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdGREZXZp
YXRpb25ZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVu
dGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVu
dC5jcHAKaW5kZXggZDY4OGQ4NTFlMzdjNWY3MDI3NjQ4NmMyNWYyNTllMTAwMjhhZDJhNC4uZDFl
NDM0ZTlkMGY1YmVmYmQ2ZGQ0ODBjMWUxZmU1MmJkMmZjYzkyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcApAQCAtNjAsMTMgKzYwLDEzIEBAIFBh
c3NSZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudDo6cmFkaXVzWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWCIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1c1gi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50
OjpyYWRpdXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdSYWRpdXNZIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAKaW5kZXggY2ViMmZiYWE1NzI2ZjZkMGZkNTM1N2MxMmQyNjkyYjA5OWFhMzg2Mi4u
ZTYyODIyMDM5NzhiMzI0MTA3ZGUwYzAzY2EyNmFiOTMzMzI4OGVlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNzEs
MTMgKzcxLDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlm
aWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlm
aWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggYWExNzc5OTRhYzk3YThkZGJlMzBkNGE2
N2Q4YmQxYTVlMjRmYzZhNi4uNGZlMTZmNmIxMmIwZWQwOTlhZGVkYjIzYjc2YmJjYTJjYTcxOTMx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApA
QCAtNjUsMTMgKzY1LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZH
RkVUdXJidWxlbmNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVy
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVy
LCAoIlNWR0Jhc2VGcmVxdWVuY3lYIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVgiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5
WUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBz
X2lkZW50aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlm
aWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXggOWI4
MTY2N2UwZTVhNWMyZTBjZWNhMTZiMTM1OTgzNWUwNDU1NjlmNS4uM2U5OGQwOGJjYzBiMWRiYWQz
ZDBjYmFlZjBkNTUwOTQzNTkzODE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcApAQCAtODQsMTMgKzg0LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4g
U1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWElkZW50aWZpZXIo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHRmlsdGVyUmVzWCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZSWRlbnRpZmllcigpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdG
aWx0ZXJSZXNZIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lk
ZW50aWZpZXIsICgiU1ZHRmlsdGVyUmVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
YW5nU3BhY2UuY3BwCmluZGV4IDQ0NTA4NDUzN2NjZGY2OWRhZWUzNDZjNGY0NTBmZjBjNTM3NGFk
NzIuLmI4YjEwMTNkNjJjYjdlYmRmNTFmMGExNDkyN2IyYWMyZWRhY2ZiZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMYW5nU3BhY2UuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgU1ZHTGFuZ1NwYWNl
OjpzZXRYbWxsYW5nKGNvbnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZykKIGNvbnN0IEF0b21pY1N0
cmluZyYgU1ZHTGFuZ1NwYWNlOjp4bWxzcGFjZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NwYWNl
KSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZh
dWx0U3RyaW5nLCAoImRlZmF1bHQiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0U3RyaW5nLCAoImRlZmF1bHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0U3RyaW5nOwog
ICAgIH0KIApAQCAtNzEsNyArNzEsNyBAQCBib29sIFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAKIHZvaWQgU1ZHTGFuZ1Nw
YWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4mIHN1cHBv
cnRlZEF0dHJpYnV0ZXMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHhtbFByZWZpeCwgKCJ4bWwiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHhtbFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAKICAgICBRdWFsaWZpZWROYW1lIGxhbmdXaXRoUHJlZml4ID0gWE1MTmFtZXM6OmxhbmdB
dHRyOwogICAgIGxhbmdXaXRoUHJlZml4LnNldFByZWZpeCh4bWxQcmVmaXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IDJhNmViYjFlZjY0OGVhNjlkOGFlYjY3
NGJlY2ZlOWNlMDU3MmZkN2QuLmZkZTAzYTI5NzZiMzkwNWY3ZmJmN2UzOWIyNzBhY2E1MDQwMTE4
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTk0LDEzICs5
NCwxMyBAQCBQYXNzUmVmUHRyPFNWR01hcmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdPcmllbnRUeXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTWFya2Vy
RWxlbWVudDo6b3JpZW50QW5nbGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudEFuZ2xlIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3Jp
ZW50QW5nbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIHNfaWRlbnRpZmllcjsKIH0KIApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgU1ZHTWFya2Vy
RWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKHZvaWQqIGNvbnRleHRFbGVtZW50KQogICAg
IGlmIChvd25lclR5cGUtPm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJPcmllbnRBdXRv
KQogICAgICAgICByZXR1cm47CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgYXV0b1N0cmluZywgKCJhdXRvIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBhdXRvU3RyaW5nLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgb3duZXJUeXBlLT5tX29yaWVudFR5cGUuc3luY2hyb25pemUob3duZXJU
eXBlLCBvcmllbnRUeXBlUHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggODcxOTg1ZjcwNjgz
ZDNmODgwN2ViYWZhNWU1Yzc0ODgwOWM0Mjc2Ni4uOWFjYTkwNjEwMjJmODk4YWNjMTQ2NTliODI5
ZDc3ZDlhNDE5YWZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMTIx
LDcgKzEyMSw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9j
dW1lbnQqIG9sZERvY3VtZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6
OmNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlwdCIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAo
InRleHQvZWNtYXNjcmlwdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpj
b250ZW50U2NyaXB0VHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZh
bHVlIDogbjsKIH0KQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldENv
bnRlbnRTY3JpcHRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBTVkdTVkdFbGVtZW50Ojpjb250ZW50U3R5bGVUeXBlKCkgY29uc3QKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRl
eHQvY3NzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBk
ZWZhdWx0VmFsdWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZmFzdEdldEF0dHJpYnV0ZShTVkdO
YW1lczo6Y29udGVudFN0eWxlVHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVm
YXVsdFZhbHVlIDogbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5k
ZXggZTRkNmY2YmMwNDhiZDJmMDg5NjUxMzliOTNiN2JiZGY0MmI5NmY4OC4uODQ4ODFlM2IyYzU4
ZDQ0OTM4YWQ0M2E5ODJlYjE1M2ZiMGE2ZjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
RWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERp
c2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVF
bGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4dC9jc3MiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBuID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjp0eXBlQXR0cik7CiAgICAgcmV0dXJuIG4u
aXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpAQCAtODAsNyArODAsNyBAQCB2b2lkIFNW
R1N0eWxlRWxlbWVudDo6c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEV4Y2VwdGlv
bkNvZGUmKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkaWEoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZh
dWx0VmFsdWUsICgiYWxsIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBkZWZhdWx0VmFsdWUsICgiYWxsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUo
U1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFs
dWUgOiBuOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAppbmRleCA4YjcwNDFmODlhOWEyNzc2OTJhMDQ4NDk0YjJjZWQxNWYxZDI3ZjliLi41ODdkM2Y3
YzYxZDhlMDQ4MzUxZTU2ZDI1ZWY5ZThkMGRhZjZhMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgU1ZH
VGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJiBhdHRyaWJ1dGUsCiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyaWJ1dGUu
bmFtZSgpKSkKICAgICAgICAgU1ZHU3R5bGVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yQXR0cmli
dXRlKGF0dHJpYnV0ZSwgc3R5bGUpOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0ZS5uYW1lKCkubWF0
Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJpbmcsICgicHJlc2VydmUiKSk7CisgICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmVzZXJ2ZVN0cmlu
ZywgKCJwcmVzZXJ2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAog
ICAgICAgICBpZiAoYXR0cmlidXRlLnZhbHVlKCkgPT0gcHJlc2VydmVTdHJpbmcpCiAgICAgICAg
ICAgICBhZGRQcm9wZXJ0eVRvQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVT
cGFjZSwgQ1NTVmFsdWVQcmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdTcGVjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggMDhh
Yjg1MmYwYjkyMTdmNzA4Mzc3NDk3MDc2NGViNDg2YzJjYWY0ZC4uM2MxZTc4MDM0YWVjMzY2Zjk1
ZjY5ZTJmNmVjZjU5YWVlM2E4MTFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBA
IC04NywxOSArODcsMTkgQEAgU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1ZpZXdTcGVjOjp2aWV3Qm94
SWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNf
aWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1ZpZXdCb3hBdHRyaWJ1dGUiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1Zp
ZXdCb3hBdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3
U3BlYzo6cHJlc2VydmVBc3BlY3RSYXRpb0lkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2
ZUFzcGVjdFJhdGlvQXR0cmlidXRlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0
cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnRy
YW5zZm9ybUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdW
aWV3U3BlY1RyYW5zZm9ybUF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IDFlM2IwMTY0MWYwMzU4
MThkZTcxMjM5Mjk1MTA4YzAyZmE5YTk3M2UuLjJiNGUwZDU1YmFlZjc0NjhhZmRhMWE0YzI3Nzk0
NDdlZjBiM2M5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZH
U01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01J
TEVsZW1lbnQuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6
OnBhcnNlQ2xvY2tWYWx1ZShjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgCiAgICAgU3RyaW5nIHBh
cnNlID0gZGF0YS5zdHJpcFdoaXRlU3BhY2UoKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBpbmRlZmluaXRlVmFsdWUsICgiaW5kZWZpbml0ZSIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVl
LCAoImluZGVmaW5pdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgaWYgKHBhcnNlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1l
OjppbmRlZmluaXRlKCk7CiAKQEAgLTYzMiw4ICs2MzIsOCBAQCBib29sIFNWR1NNSUxFbGVtZW50
Ojppc0Zyb3plbigpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlM
RWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiB7ICAgIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZlciIpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2hlbk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0aXZl
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwg
KCJuZXZlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2hlbk5vdEFjdGl2ZSwgKCJ3aGVu
Tm90QWN0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpyZXN0
YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAgICAgICByZXR1cm4gUmVzdGFy
dE5ldmVyOwpAQCAtNjQ0LDcgKzY0NCw3IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NN
SUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpGaWxsTW9k
ZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZyZWV6ZSwgKCJmcmVlemUiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZyZWV6ZSwgKCJmcmVlemUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmZpbGxBdHRyKTsKICAgICByZXR1
cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9CkBAIC02Nzcs
NyArNjc3LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KCkgY29uc3QK
ICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6dW5yZXNv
bHZlZCgpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGlu
ZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBpbmRlZmluaXRlVmFsdWUsICgiaW5kZWZpbml0ZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBpZiAodmFsdWUgPT0gaW5kZWZp
bml0ZVZhbHVlKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKICAgICBi
b29sIG9rOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5k
ZXggYjRmZDhlZmVmNzdhNDg3NjYzNWQ0YmUzZGYxYzM4Njg1ZTViMzU5Ni4uZTZkM2M1Y2E1ZDRh
N2I4NmU5NTdkZjkyMTNmNjlmNDZmYmYyZDcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3Mp
CiAKIEludGVybmFsU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OmZyb20oUGFnZSogcGFnZSkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJJbnRlcm5h
bFNldHRpbmdzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1l
LCAoIkludGVybmFsU2V0dGluZ3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgaWYgKCFTdXBlclR5cGU6OmZyb20ocGFnZSwgbmFtZSkpCiAgICAgICAgIFN1cGVy
VHlwZTo6cHJvdmlkZVRvKHBhZ2UsIG5hbWUsIGFkb3B0UmVmKG5ldyBJbnRlcm5hbFNldHRpbmdz
KHBhZ2UpKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEludGVybmFsU2V0dGluZ3MqPihTdXBl
clR5cGU6OmZyb20ocGFnZSwgbmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TFRyZWVCdWlsZGVyLmNwcAppbmRleCAxMmRlZmU1ODY3NzVmMDBhZTk0ZGNiNmQ1ZjU5MzM5NDMw
YzFhNGFkLi43ZmFhZGY1ODIzZDhhMTUxMWU1YzRkNjhhMGE3ZGU0NjQ3ZTBkYjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcApAQCAtMTk4LDE0ICsx
OTgsMTQgQEAgdm9pZCBYTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1hNTERlY2xhcmF0aW9uKGNvbnN0
IEF0b21pY1hNTFRva2VuJiB0b2tlbikKIAogdm9pZCBYTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0RP
Q1RZUEUoY29uc3QgQXRvbWljWE1MVG9rZW4mIHRva2VuKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbFRyYW5zaXRpb25hbCwgKCItLy9XM0MvL0RURCBYSFRN
TCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgeGh0bWwxMSwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIikpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbFN0cmljdCwgKCItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgeGh0bWxGcmFtZXNldCwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQv
L0VOIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbEJhc2lj
LCAoIi0vL1czQy8vRFREIFhIVE1MIEJhc2ljIDEuMC8vRU4iKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sTWF0aE1MLCAoIi0vL1czQy8vRFREIFhIVE1MIDEu
MSBwbHVzIE1hdGhNTCAyLjAvL0VOIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCB4aHRtbE1hdGhNTFNWRywgKCItLy9XM0MvL0RURCBYSFRNTCAxLjEgcGx1cyBNYXRo
TUwgMi4wIHBsdXMgU1ZHIDEuMS8vRU4iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHhodG1sTW9iaWxlLCAoIi0vL1dBUEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEu
MC8vRU4iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sVHJh
bnNpdGlvbmFsLCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCB4aHRtbDExLCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHhodG1sU3RyaWN0LCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbEZyYW1lc2V0LCAoIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBGcmFtZXNldC8vRU4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sQmFz
aWMsICgiLS8vVzNDLy9EVEQgWEhUTUwgQmFzaWMgMS4wLy9FTiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgeGh0bWxNYXRoTUwsICgiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMC8v
RU4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sTWF0aE1MU1ZHLCAoIi0vL1czQy8vRFREIFhI
VE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xLy9FTiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgeGh0bWxNb2JpbGUsICgiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4wLy9F
TiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmICghZmFp
bE9uVGV4dCgpKQogICAgICAgICByZXR1cm47CkBAIC0zMzAsMTEgKzMzMCwxMSBAQCB2b2lkIFhN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzQXR0cmlidXRlcyhjb25zdCBBdG9taWNYTUxUb2tlbiYgdG9r
ZW4sIE5vZGVTdGFja0l0ZQogCiB2b2lkIFhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzWE1MRW50aXR5
KGNvbnN0IEF0b21pY1hNTFRva2VuJiB0b2tlbikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgYW1wLCAoImFtcCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgYXBvcywgKCJhcG9zIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBndCwgKCJndCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbHQsICgibHQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHF1b3QsICgicXVvdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
YW1wLCAoImFtcCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXBvcywgKCJhcG9zIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBndCwgKCJndCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHQsICgibHQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHF1b3QsICgicXVvdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYW1wUywgKEFTQ0lJ
TGl0ZXJhbCgiJiIpKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFwb3NTLCAo
QVNDSUlMaXRlcmFsKCInIikpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZ3RT
LCAoQVNDSUlMaXRlcmFsKCI+IikpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172661</attachid>
            <date>2012-11-06 15:24:03 -0800</date>
            <delta_ts>2012-11-08 07:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101298-20121106152215.patch</filename>
            <type>text/plain</type>
            <size>140628</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQxNzIxMDc2MjRmNGRh
MWRhZDg5OGI5NGI0NjBkNTIwZGM2NjdlYi4uOTE1NjhjMTg2ZWJjMGU5M2Y4NDQ5OTJkYTlkZWNk
ZDA2N2E5MmEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5MyBAQAorMjAxMi0xMS0wNiAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wcm92ZSB0
aGUgdXNlIG9mIEF0b21pY1N0cmluZyB3aXRoIGxpdGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyOTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggYSBidW5jaCBvZiBjYXNlcyBvZiBBdG9t
aWNTdHJpbmcgd2l0aCBsaXRlcmFsczoKKyAgICAgICAgLURvIG5vdCBjcmVhdGUgdGVtcG9yYXJ5
IEF0b21pY1N0cmluZyB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiwgdGhhdCBpcyB2ZXJ5IHdhc3Rl
ZnVsLgorICAgICAgICAtVXNlIHRoZSBDb25zdHJ1Y3RGcm9tTGl0ZXJhbCBjb25zdHJ1Y3RvciB3
aGVuZXZlciBpdCBtYWtlcyBzZW5zZS4KKyAgICAgICAgLU1ha2UgIngtZnJhbWUtb3B0aW9ucyIg
c3RhdGljIGluc3RlYWQgb2YgY3JlYXRpbmcgaXQgZm9yIGVhY2ggcmVzcG9uc2UuCisgICAgICAg
IC1Vc2UgQVNDSUlMaXRlcmFsKCkgaW5zdGVhZCBvZiBBdG9taWNTdHJpbmcoKSBpbiBFdmVudEhh
bmRsZXIsIHRoZSBmdW5jdGlvbiB0YWtlcyBhIFN0cmluZywKKyAgICAgICAgIG5vdCBhbiBBdG9t
aWNTdHJpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QmF0dGVyeUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JCYXR0ZXJ5Ojpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW0vY2hyb21pdW0vRHJhZ2dlZElzb2xhdGVkRmlsZVN5c3RlbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEcmFnZ2VkSXNvbGF0ZWRGaWxlU3lzdGVtOjpzdXBwbGVtZW50TmFtZSk6
CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0b3JHZW9sb2NhdGlvbjo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvd0luZGV4ZWREYXRhYmFzZTo6ZnJvbSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0
OjpyZWFkeVN0YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlVmVyc2lvbkNoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5KToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmcm9tKToKKyAgICAgICAgKiBN
b2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3dJbnRlbnRzOjpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhQ29udHJv
bGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIE1vZHVsZXMvbmF2aWdhdG9yY29udGVu
dHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0b3JDb250ZW50VXRpbHM6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL25l
dHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb246OmZyb20pOgorICAgICAgICAq
IE1vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAg
ICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd05vdGlmaWNhdGlvbnM6OmZyb20pOgorICAgICAgICAq
IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvd1F1b3RhOjpmcm9tKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxlcy92
aWJyYXRpb24vVmlicmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnZhbGlkU3Rh
dHVzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxp
dmVSZWdpb25TdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6YXJpYUxpdmVSZWdpb25SZWxldmFudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93
OjpuYW1lZFNlY3VyaXR5Q2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5v
ZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Tm9kZUxpc3Q6Om5hbWVkUHJv
cGVydHlHZXR0ZXIpOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICog
ZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
TW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCk6Cisg
ICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXBsb2FkQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2F2ZWRGb3JtU3RhdGU6OmdldFJlZmVyZW5jZWRGaWxlUGF0aHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQnV0dG9uRWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdW1tYXJ5UXVlcnlTZWxlY3Rvcik6CisgICAgICAgICog
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGaWVs
ZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlnZW5TZWxlY3RFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNv
bnRyb2xUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUpOgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZv
cm1Db250cm9sVHlwZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSk6
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpkaXJlY3Rpb25TdHJpbmcpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVu
dDo6RGF0ZVRpbWVFZGl0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lQU1QTUZpZWxkRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpj
cmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNNYXJrZXJDb250cm9sOjpzaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU3Rh
dHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
T3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUmV3aW5kQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hhZG93UHNldWRv
SWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9z
dXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1ldGVySW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXRlckJhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1ldGVyVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNsaWRl
clRodW1iU2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6bWVkaWFTbGlkZXJUaHVt
YlNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlQm94Ojp0
ZXh0VHJhY2tDdWVCb3hTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXNzZXNBY2Nlc3NDb250
cm9sQ2hlY2spOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAqIGxvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQcmVyZW5kZXJlckNsaWVudDo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZTo6dXBkYXRlUmVzcG9uc2VBZnRlclJldmFsaWRhdGlvbik6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dQYWdlUG9wdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93UGFnZVBvcHVw
OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpmb2N1c0RpcmVjdGlvbkZvcktleSk6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c3VwcGxl
bWVudE5hbWUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1l
QW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFsdGVybmF0ZUZhbWlseU5hbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFBsYWluKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvZGVjcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udENhY2hlQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldExh
c3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVj
dE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhp
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93eC9Gb250Q2FjaGVXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2VCYXNlOjpzZXRIVFRQSGVhZGVyRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2U6OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aGFzQ2FjaGVWYWxpZGF0b3JGaWVs
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmRhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZXhwaXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6bGFzdE1vZGlmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2VCYXNlOjppc0F0dGFjaG1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZTo6Z2V0QXZnQ2hhcldpZHRoKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Z2V0QXZnQ2hhcldpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6cHJlZmVycmVkQ29udGVudFdpZHRo
KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphdHRyaWJ1dGVWYWx1ZUlzQ3VycmVudENvbG9yKToKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNN
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBZGRpdGl2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OmluaGVyaXRzRnJvbVByb3BlcnR5KToKKyAgICAgICAgKiBz
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhYSWRlbnRpZmllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6a2VybmVsVW5pdExl
bmd0aFlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjpvcmRlclhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJ
ZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGREZXZpYXRpb25YSWRl
bnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGRE
ZXZpYXRpb25ZSWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0
ZERldmlhdGlvblhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9TVkdG
RU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQ6OnJhZGl1c1hJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OnJhZGl1c1lJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0
aFlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5
WElkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6
YmFzZUZyZXF1ZW5jeVlJZGVudGlmaWVyKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNYSWRl
bnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZ
SWRlbnRpZmllcik6CisgICAgICAgICogc3ZnL1NWR0xhbmdTcGFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdMYW5nU3BhY2U6OnhtbHNwYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xh
bmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyk6CisgICAgICAgICogc3ZnL1NWR01hcmtl
ckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3JpZW50
VHlwZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6b3Jp
ZW50QW5nbGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6
OnN5bmNocm9uaXplT3JpZW50VHlwZSk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFNjcmlwdFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y29udGVudFN0eWxlVHlwZSk6CisgICAg
ICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHls
ZUVsZW1lbnQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRp
YSk6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvckF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdTcGVjOjp2aWV3Qm94SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3Bl
Yzo6cHJlc2VydmVBc3BlY3RSYXRpb0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Vmlld1NwZWM6OnRyYW5zZm9ybUlkZW50aWZpZXIpOgorICAgICAgICAqIHN2Zy9hbmltYXRpb24v
U1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnBh
cnNlQ2xvY2tWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVzdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6ZmlsbCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cmVwZWF0Q291bnQpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdz
Ojpmcm9tKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRE9DVFlQRSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1hNTEVudGl0eSk6CisKIDIwMTItMTEtMDYg
IEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IGJyYW5jaCBmcm9tIGluc2lkZSBSZW5kZXJPYmplY3Q6OnZpZXcgbm93IHRoYXQgcmVuZGVyZXIo
KSBpcyBtb3JlIGV4cGVuc2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBiMjMxMDA1NDc4NGQ0MWVmOWQ4MDE3ZmY2ZGRhMWMw
MmJjZDgzOTVhLi5lM2RmYzIzMTExOWIwZTA3ODI1NDUwYzQ3MjUxYTQ4ZDQ1N2IyZmIzIDEwMDc1
NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpA
QCAtNTQsNiArNTQsNyBAQCBFWFBPUlRTCiAgICAgP2Fic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJ
bnRlcnZhbEBXVEZAQFlBS05AWgogICAgID9hY3Rpdml0eUNhbGxiYWNrQEhlYXBASlNDQEBRQUVQ
QVZHQ0FjdGl2aXR5Q2FsbGJhY2tAMkBYWgogICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/
QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkRAWgorICAgID9hZGRGcm9tTGl0
ZXJhbERhdGFAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxA
V1RGQEBAMkBQQkRJQFoKICAgICA/YWRkQElkZW50aWZpZXJASlNDQEBDQT9BVj8kUGFzc1JlZlB0
ckBWU3RyaW5nSW1wbEBXVEZAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cmluZ0ltcGxA
NEBAWgogICAgID9hZGRASWRlbnRpZmllckBKU0NAQFNBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJ
bXBsQFdURkBAQFdURkBAUEFWRXhlY1N0YXRlQDJAUEJEQFoKICAgICA/YWRkQFByb3BlcnR5TmFt
ZUFycmF5QEpTQ0BAUUFFWFBBVlN0cmluZ0ltcGxAV1RGQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5Q29udHJvbGxlci5jcHAKaW5kZXggYzM0MmU1
YjM4MjE4MDU5OTM5ZDgwNWRmOTI5NzMyYzViMzY5MDBmYy4uMzkwZjI0ODM0MzBmMTA4ZWM5ODE0
ZTY1OGVhNGRjZDg2YzIxNGI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L0JhdHRlcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2JhdHRlcnkvQmF0dGVyeUNvbnRyb2xsZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgQmF0
dGVyeUNvbnRyb2xsZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQmF0dGVyeUNvbnRyb2xsZXI6
OnN1cHBsZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgbmFtZSwgKCJCYXR0ZXJ5Q29udHJvbGxlciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJCYXR0ZXJ5Q29udHJvbGxlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuY3BwCmluZGV4
IDA3OTA2MDJiNjFkOWVmOTZlZmI3MWVhODhlYjdiZDk3YmI4NThiZjMuLjczZDg5MmU4M2I1Mzc2
YjczZmRjMTY4NGZiOTcyNDE0NThiZTE0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgQmF0
dGVyeU1hbmFnZXIqIE5hdmlnYXRvckJhdHRlcnk6OndlYmtpdEJhdHRlcnkoTmF2aWdhdG9yKiBu
YXZpZ2F0b3IpCiAKIE5hdmlnYXRvckJhdHRlcnkqIE5hdmlnYXRvckJhdHRlcnk6OmZyb20oTmF2
aWdhdG9yKiBuYXZpZ2F0b3IpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiTmF2aWdhdG9yQmF0dGVyeSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbmFtZSwgKCJOYXZpZ2F0b3JCYXR0ZXJ5IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIE5hdmlnYXRvckJhdHRlcnkqIHN1cHBsZW1lbnQg
PSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JCYXR0ZXJ5Kj4oU3VwcGxlbWVudDxOYXZpZ2F0b3I+Ojpm
cm9tKG5hdmlnYXRvciwgbmFtZSkpOwogICAgIGlmICghc3VwcGxlbWVudCkgewogICAgICAgICBz
dXBwbGVtZW50ID0gbmV3IE5hdmlnYXRvckJhdHRlcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9jaHJvbWl1bS9EcmFnZ2VkSXNvbGF0ZWRGaWxlU3lz
dGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9jaHJvbWl1bS9EcmFn
Z2VkSXNvbGF0ZWRGaWxlU3lzdGVtLmNwcAppbmRleCBlYjNlYjYzMmQzNTJlYmNhYjcyZWNhZjgw
M2RlYTUwNzZjMTQxYWRhLi45MWJlYTNlNTc5NGI2MmQzNDhhMGMxMTQxODFlZjljZjFmY2I5YTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vY2hyb21pdW0v
RHJhZ2dlZElzb2xhdGVkRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL2Nocm9taXVtL0RyYWdnZWRJc29sYXRlZEZpbGVTeXN0ZW0uY3BwCkBAIC01
OSw3ICs1OSw3IEBAIERPTUZpbGVTeXN0ZW0qIERyYWdnZWRJc29sYXRlZEZpbGVTeXN0ZW06Omdl
dERPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4CiBjb25zdCBBdG9taWNTdHJpbmcm
IERyYWdnZWRJc29sYXRlZEZpbGVTeXN0ZW06OnN1cHBsZW1lbnROYW1lKCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuYW1lLCAoIkRyYWdnZWRJc29sYXRlZEZpbGVTeXN0ZW0iKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRHJhZ2dlZElzb2xhdGVkRmlsZVN5c3RlbSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRv
ckdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdh
bWVwYWQuY3BwCmluZGV4IDQ2MmQzZDViOWIxYmYzMmE3MjAwNTFiMzdjNjUwMDQ2N2E4ZjdjMjEu
Ljg2NDhmMGI1YTU4YTk0YzhiMDgzNTY3YmU0OGI3NjlmYzk0M2IzZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKQEAgLTQ1
LDcgKzQ1LDcgQEAgTmF2aWdhdG9yR2FtZXBhZDo6fk5hdmlnYXRvckdhbWVwYWQoKQogCiBOYXZp
Z2F0b3JHYW1lcGFkKiBOYXZpZ2F0b3JHYW1lcGFkOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9y
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmln
YXRvckdhbWVwYWQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgiTmF2aWdhdG9yR2FtZXBhZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICBOYXZpZ2F0b3JHYW1lcGFkKiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8TmF2
aWdhdG9yR2FtZXBhZCo+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIG5h
bWUpKTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBO
YXZpZ2F0b3JHYW1lcGFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggN2FiZjgzMTgx
MDI4OWIzOTcyMzUyNGM2Mjg4M2UxODUxYmI0OGMyMC4uM2U1MGFlOWNkYjk4NWI1ZjliOTNiYTRl
ZTBjZDU2YmQwYTU5MDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTM0LDcgKzEz
NCw3IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBv
c2l0aW9uKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnN1
cHBsZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJHZW9sb2NhdGlvbkNvbnRyb2xsZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgiR2VvbG9jYXRpb25Db250cm9sbGVyIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xv
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwCmluZGV4IGRhMGViZjU0YTc2YzgxYWI4MzUyMTM4MzU3ZmFkZTE4NDE4
YjY4NzUuLmI3YzI0YmIyODg0ZmJkMjMyY2Y2MWU0YWFhZWFjYmYwOWVkYWQ4NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9y
R2VvbG9jYXRpb24uY3BwCkBAIC00NCw3ICs0NCw3IEBAIE5hdmlnYXRvckdlb2xvY2F0aW9uOjp+
TmF2aWdhdG9yR2VvbG9jYXRpb24oKQogCiBOYXZpZ2F0b3JHZW9sb2NhdGlvbiogTmF2aWdhdG9y
R2VvbG9jYXRpb246OmZyb20oTmF2aWdhdG9yKiBuYXZpZ2F0b3IpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2aWdhdG9yR2VvbG9jYXRpb24iKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2aWdhdG9y
R2VvbG9jYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
TmF2aWdhdG9yR2VvbG9jYXRpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JH
ZW9sb2NhdGlvbio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIG5hbWUp
KTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ldyBOYXZp
Z2F0b3JHZW9sb2NhdGlvbihuYXZpZ2F0b3ItPmZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZS5jcHAKaW5kZXggMTY4MDI4YjYzMjJkYjM2YzIyMWZhNWM3Y2I3ZGIwNWM3ZjhjOTQyYS4uOGRi
NWU5ZGRhN2VkN2E5NjVjMDdlODY2YWJmOWU4M2JmOTBkMjBmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0
YWJhc2UuY3BwCkBAIC00OSw3ICs0OSw3IEBAIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6fkRP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZSgpCiAKIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSogRE9N
V2luZG93SW5kZXhlZERhdGFiYXNlOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRPTVdpbmRvd0luZGV4ZWRE
YXRhYmFzZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJET01XaW5kb3dJbmRleGVkRGF0YWJhc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgRE9NV2luZG93SW5kZXhlZERhdGFiYXNlKiBzdXBwbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8RE9NV2luZG93SW5kZXhlZERhdGFiYXNlKj4oU3VwcGxlbWVudDxET01XaW5kb3c+
Ojpmcm9tKHdpbmRvdywgbmFtZSkpOwogICAgIGlmICghc3VwcGxlbWVudCkgewogICAgICAgICBz
dXBwbGVtZW50ID0gbmV3IERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZSh3aW5kb3cpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTY5ZDRj
M2YxZmY4Y2ZmYjAzOWU3OGFmNjE4ODFkNzdjOTM2ZGNhZC4uYmViMDFjNDYyODJhM2UzZjg5YWQ0
NjQxZDUxNGM0NWI4YmU5OTFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC01MCwyNSArNTAsMjUgQEAgUGFzc1JlZlB0cjxJREJDdXJz
b3I+IElEQkN1cnNvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZT4gYmEKIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuZXh0LCAoIm5leHQiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5leHQsICgibmV4dCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmV4dDsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuZXh0dW5pcXVlLCAoIm5l
eHR1bmlxdWUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5leHR1
bmlxdWUsICgibmV4dHVuaXF1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gbmV4dHVuaXF1ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJD
dXJzb3I6OmRpcmVjdGlvblByZXYoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBwcmV2LCAoInByZXYiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHByZXYsICgicHJldiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gcHJldjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJzb3I6
OmRpcmVjdGlvblByZXZVbmlxdWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBwcmV2dW5pcXVlLCAoInByZXZ1bmlxdWUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHByZXZ1bmlxdWUsICgicHJldnVuaXF1ZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHJldnVuaXF1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRl
eCA3MDQ2YTI0ZGE0ODViMjE3NGE2YzYwMDgzMWUwODU0YWU5NTUyODdhLi5jZThhYWEzNzJkM2Mw
MWJmYjE5MGNlNzJmODA1YjMyOTllODUwOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTQyLDggKzE0Miw4IEBAIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkgY29uc3QKIGNvbnN0
IFN0cmluZyYgSURCUmVxdWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcGVuZGluZywgKCJwZW5kaW5nIikpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkb25lLCAoImRvbmUiKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBlbmRpbmcsICgicGVuZGluZyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgZG9uZSwgKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogCiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKQogICAgICAg
ICByZXR1cm4gcGVuZGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA0NzAwNWMzYjc2MWUyMGMyNWYwODkxMjFjNDYz
N2YzMGJhODczZmMwLi41ZDhhYzVmY2E1ZjFlNTk3OTQ5YTg2ZWJkMDYyNGZmMmEwM2UyOWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwCkBAIC01OSwzMSArNTksMzEgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURC
VHJhbnNhY3Rpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXgKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5KCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZG9ubHksICgicmVhZG9ubHkiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJlYWRv
bmx5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBy
ZWFkb25seTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJl
YWRXcml0ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWR3
cml0ZSwgKCJyZWFkd3JpdGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHJlYWR3cml0ZSwgKCJyZWFkd3JpdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWR3cml0ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBJREJUcmFuc2FjdGlvbjo6bW9kZVZlcnNpb25DaGFuZ2UoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2ZXJzaW9uY2hhbmdlLCAoInZlcnNpb25jaGFuZ2UiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHZlcnNpb25jaGFuZ2UsICgi
dmVyc2lvbmNoYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gdmVyc2lvbmNoYW5nZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFu
c2FjdGlvbjo6bW9kZVJlYWRPbmx5TGVnYWN5KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcmVhZG9ubHksICgiMCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcmVhZG9ubHksICgiMCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgiMSIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWR3cml0ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhl
ZERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZS5jcHAKaW5kZXggNTgwM2ZjMGM1OWQ5YmRhOTBmNzljNDJiNGNjMjYx
ZTUwNDQ5MTE0Ny4uYWQzZDU5NjU4YTQ4YTc0ZjQxNzNkZTlhZWUyODQ5NzY4ZGNkZGY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhl
ZERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdl
R3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFBhZ2VHcm91cEluZGV4
ZWREYXRhYmFzZTo6flBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSgpCiAKIFBhZ2VHcm91cEluZGV4
ZWREYXRhYmFzZSogUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpmcm9tKFBhZ2VHcm91cCYgZ3Jv
dXApCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUGFn
ZUdyb3VwSW5kZXhlZERhdGFiYXNlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoIlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UqIHN1
cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UqPihTdXBwbGVt
ZW50PFBhZ2VHcm91cD46OmZyb20oJmdyb3VwLCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50
KSB7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50
cy5jcHAKaW5kZXggYjg5ZmVmZTJhZWE3Njc3OTg1YmQ4MDQzNjMyODdmNjA4MDk3NTdiOS4uN2Fk
ZGIwNjEwYTYwZDZkNTRlODA5MWM2YzkwY2M5YzI5NmNlNjdjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRzLmNwcApAQCAtNDYsNyAr
NDYsNyBAQCBET01XaW5kb3dJbnRlbnRzOjp+RE9NV2luZG93SW50ZW50cygpCiBET01XaW5kb3dJ
bnRlbnRzKiBET01XaW5kb3dJbnRlbnRzOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogewogICAg
IEFTU0VSVCh3aW5kb3cpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBu
YW1lLCAoIkRPTVdpbmRvd0ludGVudHMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiRE9NV2luZG93SW50ZW50cyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICBET01XaW5kb3dJbnRlbnRzKiBzdXBwbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8RE9NV2luZG93SW50ZW50cyo+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3
aW5kb3csIG5hbWUpKTsKICAgICBpZiAoIXN1cHBsZW1lbnQpIHsKICAgICAgICAgc3VwcGxlbWVu
dCA9IG5ldyBET01XaW5kb3dJbnRlbnRzKHdpbmRvdyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAppbmRl
eCAzMDc3ZDQxMWJmMWY0ZjNlYjJiMmViNzMxNjg1ODU2ZmQ5NjNlNmMxLi42OWJmMDE0ZDBkYjM5
MGY0MjkxNzY5OGMwYjgzNTM5Nzk2ZTFmNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJpbmcmIFVz
ZXJNZWRpYUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJVc2VyTWVkaWFDb250cm9sbGVyIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIlVzZXJNZWRpYUNvbnRy
b2xsZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9y
Y29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCmlu
ZGV4IDBiYzdmMTJjMmQzMTM1MzMzMDBkZmJmMGQ3OWM4NGU0NzExZGViMGMuLmU4ZGQ0OTMzOTU3
ZTNlODVkNzZmMWE2ZDFhOWZiZjlhYTA2YWIxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdh
dG9yQ29udGVudFV0aWxzLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgTmF2aWdhdG9yQ29u
dGVudFV0aWxzOjp1bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9y
LCBjb25zCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTmF2aWdhdG9yQ29udGVudFV0aWxzOjpzdXBw
bGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgiTmF2aWdhdG9yQ29udGVudFV0aWxzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckNvbnRlbnRVdGlscyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JOZXR3b3Jr
SW5mb0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9O
YXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uY3BwCmluZGV4IGMyMjZkNzQ3ZmVlMGYwNjRh
OTdkMTZjNTllNDFiN2MzNzkzNjJkNTIuLmZkNzY5NzE3NTllMzg1NTU5ODQyYjJkMjU5NGIxNmU4
ZWJjZGNjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8v
TmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uOjp+TmF2aWdhdG9y
TmV0d29ya0luZm9Db25uZWN0aW9uKCkKIAogTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9u
KiBOYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb246OmZyb20oTmF2aWdhdG9yKiBuYXZpZ2F0
b3IpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTmF2
aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBOYXZpZ2F0b3JOZXR3b3Jr
SW5mb0Nvbm5lY3Rpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxOYXZpZ2F0b3JOZXR3b3Jr
SW5mb0Nvbm5lY3Rpb24qPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBu
YW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcg
TmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29udHJvbGxlci5jcHAK
aW5kZXggYWE2OTVlYzFjMjcyM2RlNWVhNjQ5MjM3MDAyODU0ZjdmNDdlYjU1OS4uZTcwNjcxYWU4
N2RkMzMwNzBkZjA5OWRhYTQwZWM0ZjJhOGJlODIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmNw
cApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6ZGlkQ2hhbmdl
TmV0d29ya0luZm9ybWF0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5ldHdvcmtJbmZvQ29u
dHJvbGxlciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJOZXR3b3JrSW5mb0NvbnRyb2xsZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNw
cAppbmRleCA0MDE3M2VlNzVlYmJmMjcxNWE1OWJkZWJiZjg3OWM3ZTIwNmZlY2FlLi40YzU1NmRl
MTZlOGQ3NmVhNjRkOWQzNzdkM2FjYzJjYjgyYmFkZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNh
dGlvbnMuY3BwCkBAIC00OSw3ICs0OSw3IEBAIERPTVdpbmRvd05vdGlmaWNhdGlvbnM6On5ET01X
aW5kb3dOb3RpZmljYXRpb25zKCkKIAogRE9NV2luZG93Tm90aWZpY2F0aW9ucyogRE9NV2luZG93
Tm90aWZpY2F0aW9uczo6ZnJvbShET01XaW5kb3cqIHdpbmRvdykKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc3VwcGxlbWVudE5hbWUsICgiRE9NV2luZG93Tm90aWZp
Y2F0aW9ucyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc3VwcGxl
bWVudE5hbWUsICgiRE9NV2luZG93Tm90aWZpY2F0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICBET01XaW5kb3dOb3RpZmljYXRpb25zKiBzdXBwbGVtZW50
ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93Tm90aWZpY2F0aW9ucyo+KFN1cHBsZW1lbnQ8RE9NV2lu
ZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnROYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50
KSB7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93Tm90aWZpY2F0aW9ucyh3aW5k
b3cpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDliYmQ5YmYzYzIwZDUyNmM5
ZDYzMDdkOThiOWM4MWNiMjUyMDcwNTkuLjBkYzE5NzM2OTk2NjJiNDRjM2Q2NWU1MTgwZDRjMDU4
OWFhYzFiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTU4LDcgKzU4LDcg
QEAgTm90aWZpY2F0aW9uQ2xpZW50KiBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9t
KFBhZ2UqIHBhZ2UpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTm90aWZpY2F0aW9uQ29udHJvbGxl
cjo6c3VwcGxlbWVudE5hbWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoIk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiTm90aWZpY2F0aW9uQ29udHJvbGxlciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcApp
bmRleCA2NWZlODI0OTAyYjA3YjEyOTkzMTIxNTUzNGIyOTI5NjdiYWY3YTU3Li5mNmUyODkyNmQw
NTlmZTk3YzMxNDhmNmY2MGZjZTc0OGNjZWYxYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcApAQCAtNTEsNyArNTEsNyBAQCBET01XaW5k
b3dRdW90YTo6fkRPTVdpbmRvd1F1b3RhKCkKIC8vIHN0YXRpYwogRE9NV2luZG93UXVvdGEqIERP
TVdpbmRvd1F1b3RhOjpmcm9tKERPTVdpbmRvdyogd2luZG93KQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRPTVdpbmRvd1F1b3RhIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRPTVdpbmRvd1F1b3RhIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIERPTVdpbmRvd1F1b3Rh
KiBzdXBwbGVtZW50ID0gc3RhdGljX2Nhc3Q8RE9NV2luZG93UXVvdGEqPihTdXBwbGVtZW50PERP
TVdpbmRvdz46OmZyb20od2luZG93LCBuYW1lKSk7CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7CiAg
ICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgRE9NV2luZG93UXVvdGEod2luZG93KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNvbnRyb2xsZXIuY3BwCmluZGV4IGQ0YmNjODVmZWM2N2U5NzFhZjk2ZDYyNzNmZjNkYWYxMDYz
NmEzZmMuLjUxNDgxMTBhMDk5YTQ5YTgzZDM3YWRlZmUyZDI3M2MzNWRmYTQwZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25Db250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU3BlZWNoUmVjb2duaXRpb25Db250cm9sbGVyOjpzdXBw
bGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgiU3BlZWNoUmVjb2duaXRpb25Db250cm9sbGVyIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIlNwZWVjaFJlY29nbml0aW9uQ29udHJvbGxlciIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAK
aW5kZXggMmE1MzFmZGRkY2U4YWFmMDBjODExODhhMzgyMjRhOWNiZTMyYzgzZi4uOTM2Zjc3Njhk
YTI5MmZkMzI2ODA3ZTJiMGRiNTIxMGU3ZWM4YjVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBW
aWJyYXRpb246OnRpbWVyU3RvcEZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qIHRpbWVyKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFZpYnJhdGlvbjo6c3VwcGxlbWVudE5hbWUoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIlZpYnJhdGlvbiIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJWaWJyYXRpb24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCmluZGV4IGU2NzViZTJmMzhlMjc1YzdkZWM5YTRkNWVlOWY5OTZiOTFkYTQ2YzAuLjNl
Zjg0MzcwYzU5MGZjZmQzYTcwMWM0YmMyODk1YTE2ODBlOGM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTI4
NCw3ICsxMjg0LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphcmlhSXNNdWx0aWxpbmUo
KSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmludmFs
aWRTdGF0dXMoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBpbnZhbGlkU3RhdHVzRmFsc2UsICgiZmFsc2UiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGludmFsaWRTdGF0dXNGYWxzZSwgKCJmYWxzZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICAvLyBhcmlh
LWludmFsaWQgY2FuIHJldHVybiBmYWxzZSAoZGVmYXVsdCksIGdyYW1tZXIsIHNwZWxsaW5nLCBv
ciB0cnVlLgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYUludmFsaWQgPSBnZXRBdHRyaWJ1
dGUoYXJpYV9pbnZhbGlkQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA5MzdlODY5ZDNm
NjAxMDNiOTdlMmIyMDZhMDk5ZjU2MzkwNGQ3MTE5Li4wNzdjMDBlZjQxNGEwYzVmMGVlMGQ2M2Zm
NzNkZjM4MGUyYjhmZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTI4NjIsOSArMjg2Miw5
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojphcmlh
TGl2ZVJlZ2lvblN0YXR1cygpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNBc3NlcnRpdmUsICgiYXNzZXJ0aXZlIikp
OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9u
U3RhdHVzUG9saXRlLCAoInBvbGl0ZSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgbGl2ZVJlZ2lvblN0YXR1c09mZiwgKCJvZmYiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNBc3NlcnRp
dmUsICgiYXNzZXJ0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3Rh
dHVzUG9saXRlLCAoInBvbGl0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGl2ZVJlZ2lv
blN0YXR1c09mZiwgKCJvZmYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsaXZlUmVnaW9uU3RhdHVzID0gZ2V0QXR0
cmlidXRlKGFyaWFfbGl2ZUF0dHIpOwogICAgIC8vIFRoZXNlIHJvbGVzIGhhdmUgaW1wbGljaXQg
bGl2ZSByZWdpb24gc3RhdHVzLgpAQCAtMjg4OSw3ICsyODg5LDcgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGl2ZVJlZ2lvblN0YXR1cygpIGNv
bnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJp
YUxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRMaXZlUmVnaW9uUmVsZXZhbnQsICgiYWRkaXRpb25z
IHRleHQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRl
ZmF1bHRMaXZlUmVnaW9uUmVsZXZhbnQsICgiYWRkaXRpb25zIHRleHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByZWxldmFu
dCA9IGdldEF0dHJpYnV0ZShhcmlhX3JlbGV2YW50QXR0cik7CiAKICAgICAvLyBEZWZhdWx0IGFy
aWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggN2M5YWYz
NzIxNmQxYmIwZDUxZjBmM2QzMzI2YzNiYTEyYzlmZGQ1My4uYTU1OWJlZGIzOGFmOWFkOTQ4Yzc4
ZTM1ZGFjNGE3NTE0MDgyZGJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCkBAIC01NTcsNyArNTU3LDcgQEAg
Ym9vbCBWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBob3N0LCB2ODo6TG9jYWw8djg6OlYKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KGtleS0+SXNTdHJpbmcoKSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbmFtZU9mUHJvdG9Qcm9wZXJ0eSwgKCJfX3Byb3RvX18iKSk7CisgICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lT2ZQcm90b1Byb3BlcnR5LCAoIl9fcHJv
dG9fXyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgICAgICBT
dHJpbmcgbmFtZSA9IHRvV2ViQ29yZVN0cmluZyhrZXkpOwogICAgICAgICBGcmFtZSogY2hpbGRG
cmFtZSA9IHRhcmdldC0+dHJlZSgpLT5zY29wZWRDaGlsZChuYW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVMaXN0Q3VzdG9tLmNwcAppbmRl
eCBlNDI1ODllNjliYWMxZGM1ZjM3NDIwOGZlZWNhMTg0ZTQ1YTI4OWYzLi5lOGI3MDRjN2FlZWVk
MTNkOTQ4N2UxNzkxMWFjN2ZmOGNjZTBkNjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE5vZGVMaXN0OjpuYW1lZFByb3BlcnR5R2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lCiAgICAgQXRvbWljU3RyaW5nIGtleSA9IHRvV2Vi
Q29yZUF0b21pY1N0cmluZyhuYW1lKTsKIAogICAgIC8vIExlbmd0aCBwcm9wZXJ0eSBjYW5ub3Qg
YmUgb3ZlcnJpZGRlbi4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgbGVuZ3RoLCAoImxlbmd0aCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgbGVuZ3RoLCAoImxlbmd0aCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICBpZiAoa2V5ID09IGxlbmd0aCkKICAgICAgICAgcmV0dXJuIHY4SW50
ZWdlcihsaXN0LT5sZW5ndGgoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250ZXh0RmVhdHVyZXMuY3BwCmluZGV4IGRhN2RmOWQxZGEzNTBiOGQxNjVlZjE2ZmUwZmNj
NDcxYzFmZDA5N2MuLjk3MzA0ZTI1NTI5N2JiMjYzNTJmOTE4N2NkOTFhYTdlNGIzNThiZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwCkBAIC00MSw3ICs0MSw3IEBAIENv
bnRleHRGZWF0dXJlc0NsaWVudCogQ29udGV4dEZlYXR1cmVzQ2xpZW50OjplbXB0eSgpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgQ29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQ29udGV4dEZlYXR1
cmVzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNv
bnRleHRGZWF0dXJlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDIzZDYwNTQ5YWQ1ZmQ2OTUzMTkyNzg0YzViYWMzZmEwNjQ4Yjk2
NTkuLmNlZGZhNGEyNjRmODIzMzc0YTZlMDFkZDI2OTZhZmE5MWI5ZDk0MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKQEAgLTEzNyw3ICsxMzcs
NyBAQCB2b2lkIERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU1vdGlvbihE
ZXZpY2VNb3Rpb25EYXRhKiBkZXZpY2VNb3RpbwogCiBjb25zdCBBdG9taWNTdHJpbmcmIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJEZXZpY2VNb3Rpb25Db250cm9sbGVyIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRldmljZU1vdGlv
bkNvbnRyb2xsZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMzAyZGI2MTI0MzRiYTRkNmE1OTI3YzhkM2ZlYzgz
NzYwODdlYWI3NS4uOTFiZmZmYzRhNjY5MTljNDcyNjZkZGU1M2M1MTRjZjNhNzFiMmJmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
ZGlkQ2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb25EYQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCAyNjY3MmVjYjg5YTlhYzc5NjY4YWYyZTlmNDVlZDM0MjUwMzUz
ZmRiLi43ZDI3YTA4MTk2MjAxZmE2N2M5MDgwOGY1OWRkZjVjYmYzNjYzNjc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0yMTc2LDIxICsyMTc2LDIxIEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
RWxlbWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCgpIGNvbnN0CiB7CiAgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgdW5kZWZpbmVkU3RhdGUsICgidW5kZWZpbmVkIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB1bmRlZmluZWRTdGF0ZSwgKCJ1
bmRlZmluZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYg
KCFkb2N1bWVudCgpLT5jc3NSZWdpb25zRW5hYmxlZCgpIHx8ICFyZW5kZXJSZWdpb24oKSkKICAg
ICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0YXRlOwogCiAgICAgc3dpdGNoIChyZW5kZXJSZWdpb24o
KS0+cmVnaW9uU3RhdGUoKSkgewogICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25GaXQ6IHsK
LSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpdFN0YXRlLCAoImZp
dCIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpdFN0YXRl
LCAoImZpdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAg
cmV0dXJuIGZpdFN0YXRlOwogICAgIH0KICAgICBjYXNlIFJlbmRlclJlZ2lvbjo6UmVnaW9uRW1w
dHk6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVtcHR5U3Rh
dGUsICgiZW1wdHkiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBlbXB0eVN0YXRlLCAoImVtcHR5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgICAgICByZXR1cm4gZW1wdHlTdGF0ZTsKICAgICB9CiAgICAgY2FzZSBSZW5kZXJS
ZWdpb246OlJlZ2lvbk92ZXJzZXQ6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG92ZXJmbG93U3RhdGUsICgib3ZlcnNldCIpKTsKKyAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG92ZXJmbG93U3RhdGUsICgib3ZlcnNldCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgcmV0dXJuIG92ZXJmbG93
U3RhdGU7CiAgICAgfQogICAgIGNhc2UgUmVuZGVyUmVnaW9uOjpSZWdpb25VbmRlZmluZWQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAppbmRleCAxZmVkZDFkYmZhMTY1ZjA5MDMx
ZDVjYzdjYjU4MjdjMWI3NjJiMmIwLi4xZWFhYTQ0ODRmNGZjN2Y4NWZlZTRjMWI3ZTc5ZWY3ZjE3
Y2NlYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTEzNCwxOSAr
MTM0LDE5IEBAIHByaXZhdGU6CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQ2hpbGRMaXN0UmVjb3Jk
Ojp0eXBlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hpbGRM
aXN0LCAoImNoaWxkTGlzdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgY2hpbGRMaXN0LCAoImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gY2hpbGRMaXN0OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBhdHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGF0dHJpYnV0ZXMsICgiYXR0cmlidXRlcyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gYXR0cmlidXRlczsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hhcmFjdGVyRGF0YSwgKCJjaGFy
YWN0ZXJEYXRhIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjaGFy
YWN0ZXJEYXRhLCAoImNoYXJhY3RlckRhdGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDg5ZmNjODc4ZTU5YzUzOTMyZTkwOTdkYjEyOWJkMDY3
Y2Q2NzNlM2UuLmY2MTA1Y2E5NDZmMGE5OWU1MGQwNTIyYzVhMjlkNWUxZjNmM2IzODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtODIsNyArODIsNyBAQCBVcGxvYWRC
dXR0b25FbGVtZW50OjpVcGxvYWRCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBVcGxvYWRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lk
LCAoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRv
SWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggN2Y4N2I5
N2ZmYzg3ZDMzNzZmOTgzYjM2MzkyZjg3NWUwNzc5NTZjYS4uOGE4YWYwNWE5N2ZiNTliZjMwZjlh
NTg0N2I0NWIzYzRmZDMwYjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5j
cHAKQEAgLTI3Miw3ICsyNzIsNyBAQCBWZWN0b3I8U3RyaW5nPiBTYXZlZEZvcm1TdGF0ZTo6Z2V0
UmVmZXJlbmNlZEZpbGVQYXRocygpIGNvbnN0CiAgICAgVmVjdG9yPFN0cmluZz4gdG9SZXR1cm47
CiAgICAgZm9yIChGb3JtRWxlbWVudFN0YXRlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fc3Rh
dGVGb3JOZXdGb3JtRWxlbWVudHMuYmVnaW4oKTsgaXQgIT0gbV9zdGF0ZUZvck5ld0Zvcm1FbGVt
ZW50cy5lbmQoKTsgKytpdCkgewogICAgICAgICBjb25zdCBGb3JtRWxlbWVudEtleSYga2V5ID0g
aXQtPmtleTsKLSAgICAgICAgaWYgKEF0b21pY1N0cmluZyhrZXkudHlwZSgpKSAhPSBBdG9taWNT
dHJpbmcoImZpbGUiKSkKKyAgICAgICAgaWYgKCFlcXVhbChrZXkudHlwZSgpLCAiZmlsZSIsIDQp
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNvbnN0IERlcXVlPEZvcm1Db250cm9s
U3RhdGU+JiBxdWV1ZSA9IGl0LT52YWx1ZTsKICAgICAgICAgZm9yIChEZXF1ZTxGb3JtQ29udHJv
bFN0YXRlPjo6Y29uc3RfaXRlcmF0b3IgcXVlSXRlcmF0b3IgPSBxdWV1ZS5iZWdpbigpOyBxdWVJ
dGVyYXRvciAhPSBxdWV1ZS5lbmQoKTsgKytxdWVJdGVyYXRvcikgewpAQCAtMzQ0LDcgKzM0NCw3
IEBAIEF0b21pY1N0cmluZyBGb3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5KGNvbnN0IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvCiB7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
ID0gb3duZXJGb3JtRm9yU3RhdGUoY29udHJvbCk7CiAgICAgaWYgKCFmb3JtKSB7Ci0gICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmb3JtS2V5Rm9yTm9Pd25lciwgKCJO
byBvd25lciIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZv
cm1LZXlGb3JOb093bmVyLCAoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogICAg
IEZvcm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1Ub0tleU1hcC5maW5kKGZv
cm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCBjYmQx
ZjI5OThjZjllOGE5YWFmM2M2ZWM5NTcwNDQ3N2ZiNWFhNzY5Li4yMDVlOTYyNjkwYzJjMGY3NDY4
MGIzZGI3MWFjNjVkNDM4YjE4NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcApAQCAtNzEsMTUgKzcxLDE1IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEJ1
dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3R5
cGUpIHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJtaXQsICgic3VibWl0IikpOworICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1Ym1pdCwgKCJzdWJt
aXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gc3VibWl0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQlVUVE9OOiB7Ci0gICAgICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYnV0dG9uLCAoImJ1
dHRvbiIpKTsKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBidXR0b24sICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbjsKICAgICAgICAgfQogICAgICAgICBjYXNl
IFJFU0VUOiB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgcmVzZXQsICgicmVzZXQiKSk7CisgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzZXQ7CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXgg
ODZhN2I0OGNhYjYxYjJiZThhODYwOGZkOWFmYTNjNDIyZDlkY2QyYi4uY2U1M2NlMWNjOGRjZTlj
NmVkMjQyNmJjZDBlM2MwNDI2YTk3NjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3Rvcigp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdG9yLCAoInN1
bW1hcnk6Zmlyc3Qtb2YtdHlwZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc2VsZWN0b3IsICgic3VtbWFyeTpmaXJzdC1vZi10eXBlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzZWxlY3RvcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IDZiMDEwMTliZWVi
MGZkMDZlMTMzZDAwYjg5M2JjNDU0OTQxN2Y1MzguLjczZmY1MzdjZGM2ZWVlODg3MmVlMTgyMjU4
ZmI3YzVjY2VjNjA0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVt
ZW50LmNwcApAQCAtNzksNyArNzksNyBAQCBib29sIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnN1cHBv
cnRzRm9jdXMoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1l
bnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGZpZWxkc2V0LCAoImZpZWxkc2V0IikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmaWVsZHNldCwgKCJmaWVsZHNldCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZmllbGRzZXQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggY2Zl
MmQ4ZTQ5Njk1MDAyOTkyMjE5MzhhYmJiMjIyMjJjZmYwYmE5Ny4uNzQzNjQ5NmEyN2Y1Y2RlMDUw
MDFiNzRlZmZjMDU4OTc3ZDc1NzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdl
bi1zZWxlY3QiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBw
c2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBwc2V1ZG9JZDsKICAgICB9CiAKQEAgLTEy
MCw3ICsxMjAsNyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3Jt
RGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29sKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhU
TUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBrZXlnZW4sICgia2V5Z2VuIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBrZXlnZW4sICgia2V5Z2Vu
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBrZXln
ZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCmlu
ZGV4IGM5NWIxZmY0MWI0NTgzYzdlOTQ3NzU2N2RkNjkyZTdiMzczNDMwZTcuLmM1ZTUyNmY1NDZk
NTUwYWU3NzYxOTNmYWQwODQzYzRlOGNmZmIwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBib29sIEhUTUxPcHRHcm91
cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1M
T3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcHRncm91cCwgKCJvcHRncm91cCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3B0Z3JvdXAsICgi
b3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
dXRwdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQu
Y3BwCmluZGV4IDU0MzJjOTJmMWQ1ZGYxMWNlOGJmNzMxZjI1ZmM4MmIwMjI5MzI2MGIuLjI3N2Zl
NWFhN2NiMDI4OGUzMmU0ZjhjMDRiNDg5YzdhYjZlYmY2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIFBhc3NSZWZQdHI8SFRN
TE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91dHB1dEVsZW1lbnQ6OmZvcm1D
b250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIG91dHB1dCwgKCJvdXRwdXQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIG91dHB1dCwgKCJvdXRwdXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG91dHB1dDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBmYzY4ZjAxYTZmMjkyMDViMzNmNGUz
MzgyM2M1ZjRjYjIyNTU1NWEyLi45YmY1MzMzMmY4OTg4ODcxNTAwNWI5ZjdkODI0ZWQ0Y2RlNTIw
ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtOTAs
OCArOTAsOCBAQCBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBIVE1MU2VsZWN0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZwogCiBjb25zdCBBdG9taWNTdHJpbmcm
IEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RNdWx0aXBsZSwgKCJzZWxl
Y3QtbXVsdGlwbGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHNlbGVjdE9uZSwgKCJzZWxlY3Qtb25lIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RNdWx0aXBsZSwgKCJzZWxlY3QtbXVsdGlwbGUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNlbGVjdE9uZSwgKCJzZWxlY3Qtb25lIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBtX211bHRpcGxlID8g
c2VsZWN0TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGRiOThjY2M5Zjk1MDdlOWMzZmMyY2IzMmQwZmU0
YmQ1YzU3YTRmMWQuLmMwMzRlYmRkNjE5ZTc3MGJlMjk4YWJlZDQ3ZmM0MzhlZWI1YTdjNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTExLDcg
KzExMSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgdGV4dGFyZWEsICgidGV4dGFyZWEiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0ZXh0YXJlYTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBk
NTJhODI1NzEyNTY4MWMwNzI1ZmE3OWZiMDFkZGY5NjA0MjgwNDA0Li5hMmY5NTJhNTNiY2U2ZTI3
NjA3MDljMDE2ZTlmMTA3YjgyMmFkMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzk0LDkgKzM5NCw5IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0CiAK
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBub25lLCAoIm5vbmUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGZvcndhcmQsICgiZm9yd2FyZCIpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dhcmQsICgiYmFja3dhcmQiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9u
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yd2FyZCwgKCJmb3J3YXJkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBiYWNrd2FyZCwgKCJiYWNrd2FyZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAg
Y2FzZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggOWFlM2U3MzlmYWQ3ZjFmNTM0
MGNmNmM5YTBlMWNlZWUxZWQzNzM5Ni4uOThhMTBlZjJkNGNkMzMzYTFmYjRjZGZkMjI4YWFjZDIz
OWY5NjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCBEYXRlVGltZUVkaXRFbGVtZW50OjpE
YXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYg
ZQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fZWRpdENv
bnRyb2xPd25lcigmZWRpdENvbnRyb2xPd25lcikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgZGF0ZVRpbWVFZGl0UHNldWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1l
ZGl0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkYXRlVGltZUVk
aXRQc2V1ZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgc2V0U2hhZG93UHNldWRvSWQoZGF0ZVRpbWVFZGl0UHNl
dWRvSWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmNwcAppbmRleCBiNWM5ZWYxZTZjMDE3MTdhMmFlYTQ3YzMwZDRlMzg1
N2I0ZjE5NWU5Li44NGRjNTJkYTNiNzFhODY4NTE3ZGU2ZjZmNTYzNDUxZmUzYWJkOGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpEYXRlVGlt
ZUFNUE1GaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmUKIAogUGFzc1Jl
ZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ+IERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGFtcG1MYWJlbHMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGFtcG1Qc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtYW1wbS1m
aWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYW1wbVBzdWVk
b0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1hbXBtLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGltZUFNUE1GaWVsZEVsZW1l
bnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudChkb2N1bWVu
dCwgZmllbGRPd25lciwgYW1wbUxhYmVscykpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKGFtcG1Q
c3VlZG9JZCwgQVhBTVBNRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7
CkBAIC03OCw3ICs3OCw3IEBAIERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGltZURheUZp
ZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImCiAKIFBhc3NSZWZQdHI8
RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcm
IHBsYWNlaG9sZGVyKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBk
YXlQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkYXlQc3VlZG9JZCwgKCItd2Via2l0LWRh
dGV0aW1lLWVkaXQtZGF5LWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIFJlZlB0cjxEYXRlVGltZURheUZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJl
ZihuZXcgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHBsYWNl
aG9sZGVyLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVyKSk7CiAg
ICAgZmllbGQtPmluaXRpYWxpemUoZGF5UHN1ZWRvSWQsIEFYRGF5T2ZNb250aEZpZWxkVGV4dCgp
KTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIERhdGVU
aW1lSG91ckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgRmllbGRPd25lCiAKIFBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50
PiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaG91clBzdWVkb0lkLCAoIi13ZWJraXQt
ZGF0ZXRpbWUtZWRpdC1ob3VyLWZpZWxkIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBob3VyUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LWhvdXItZmll
bGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgUmVmUHRyPERh
dGVUaW1lSG91ckZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVIb3Vy
RmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBtaW5pbXVtLCBtYXhpbXVtKSk7CiAg
ICAgZmllbGQtPmluaXRpYWxpemUoaG91clBzdWVkb0lkLCBBWEhvdXJGaWVsZFRleHQoKSk7CiAg
ICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCBEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERv
Y3VtZW50KiBkb2N1bQogCiBQYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1l
bnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG1pbGxpc2Vjb25kUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1l
ZGl0LW1pbGxpc2Vjb25kLWZpZWxkIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBtaWxsaXNlY29uZFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taWxs
aXNlY29uZC1maWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICBSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJl
ZihuZXcgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
cikpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKG1pbGxpc2Vjb25kUHN1ZWRvSWQsIEFYTWlsbGlz
ZWNvbmRGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTI2NSw3
ICsyNjUsNyBAQCBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaW51dGVGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZAogCiBQYXNzUmVmUHRyPERhdGVUaW1l
TWludXRlRmllbGRFbGVtZW50PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWludXRlUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRl
dGltZS1lZGl0LW1pbnV0ZS1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbWludXRlUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0LW1pbnV0ZS1m
aWVsZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBSZWZQdHI8
RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1l
TWludXRlRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiAgICAgZmllbGQtPmlu
aXRpYWxpemUobWludXRlUHN1ZWRvSWQsIEFYTWludXRlRmllbGRUZXh0KCkpOwogICAgIHJldHVy
biBmaWVsZC5yZWxlYXNlKCk7CkBAIC0zMDYsNyArMzA2LDcgQEAgRGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3cKIAogUGFzc1JlZlB0cjxEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBm
aWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtb250aFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdC1tb250aC1maWVsZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgbW9udGhQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgUmVmUHRyPERhdGVUaW1l
TW9udGhGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHBsYWNlaG9sZGVyLmlzRW1wdHkoKSA/IEFT
Q0lJTGl0ZXJhbCgiLS0iKSA6IHBsYWNlaG9sZGVyKSk7CiAgICAgZmllbGQtPmluaXRpYWxpemUo
bW9udGhQc3VlZG9JZCwgQVhNb250aEZpZWxkVGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVs
ZWFzZSgpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpE
YXRlVGltZVNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkCiAKIFBh
c3NSZWZQdHI8RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lU2Vjb25kRmllbGRF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVy
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzZWNvbmRQc3VlZG9J
ZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtc2Vjb25kLWZpZWxkIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzZWNvbmRQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0
aW1lLWVkaXQtc2Vjb25kLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIFJlZlB0cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9w
dFJlZihuZXcgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIp
KTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShzZWNvbmRQc3VlZG9JZCwgQVhTZWNvbmRGaWVsZFRl
eHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTM4OCw3ICszODgsNyBAQCBE
YXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNNb250aEZp
ZWxkRWxlbWVudChEb2N1bWVudCogZAogCiBQYXNzUmVmUHRyPERhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgbGFiZWxzKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtb250aFBzdWVkb0lkLCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1maWVsZCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbW9udGhQc3VlZG9JZCwgKCIt
d2Via2l0LWRhdGV0aW1lLWVkaXQtbW9udGgtZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgUmVmUHRyPERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxl
bWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6
ZShtb250aFBzdWVkb0lkLCBBWE1vbnRoRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5y
ZWxlYXNlKCk7CkBAIC00MzIsNyArNDMyLDcgQEAgRGF0ZVRpbWVXZWVrRmllbGRFbGVtZW50OjpE
YXRlVGltZVdlZWtGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmUKIAog
UGFzc1JlZlB0cjxEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ+IERhdGVUaW1lV2Vla0ZpZWxkRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgd2Vla1BzdWVkb0lkLCAo
Ii13ZWJraXQtZGF0ZXRpbWUtZWRpdC13ZWVrLWZpZWxkIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCB3ZWVrUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1lZGl0
LXdlZWstZmllbGQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
UmVmUHRyPERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0
ZVRpbWVXZWVrRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiAgICAgZmllbGQt
PmluaXRpYWxpemUod2Vla1BzdWVkb0lkLCBBWFdlZWtPZlllYXJGaWVsZFRleHQoKSk7CiAgICAg
cmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBEYXRlVGltZVllYXJG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQs
IEZpZWxkT3duZQogCiBQYXNzUmVmUHRyPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gRGF0ZVRp
bWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyLCBjb25zdCBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OlBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHll
YXJQc3VlZG9JZCwgKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeWVhclBzdWVkb0lkLCAoIi13ZWJraXQt
ZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIFJlZlB0cjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRv
cHRSZWYobmV3IERhdGVUaW1lWWVhckZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwg
cGFyYW1ldGVycykpOwogICAgIGZpZWxkLT5pbml0aWFsaXplKHllYXJQc3VlZG9JZCwgQVhZZWFy
RmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggYjEw
OWVmOGViNmRlNzEyMGY0MjY1OTViOGFiNTVkOGY5MjM5NWUyNS4uN2I4M2I3YmE4OWVkMjBhMmJk
OTlkMzY1YzFlZGJhZTVjYWRhNjliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIERl
dGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdD
b250ZXh0JiBjb250ZXh0KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIERldGFpbHNNYXJrZXJDb250
cm9sOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LWRldGFp
bHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBwc2V1ZElkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9JbWFnZUlubmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbWFn
ZUlubmVyRWxlbWVudC5jcHAKaW5kZXggYjIzZDZiMWE1ZjQwZTIxZjk3M2Y3MmMzZjg4ZDVmNmFj
ZDhiZmIyNC4uODM5Y2M5MjAzODlmN2YwYmM3MmQ2ODVjZjQ2YTJiMGQ0YjU3MzlmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW1hZ2VJbm5lckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0ltYWdlSW5uZXJFbGVtZW50LmNwcApAQCAt
NzAsNyArNzAsNyBAQCBSZW5kZXJPYmplY3QqIEltYWdlSW5uZXJFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKgogCiBjb25zdCBBdG9taWNTdHJp
bmcmIEltYWdlSW5uZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtaW1hZ2Ut
aW5uZXItZWxlbWVudCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1pbWFnZS1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmlu
ZGV4IDkwNjQ2NjAxM2Y4YjNhOWRkNmIyOGJkNDYzN2IyZmMyNTIyOTI5ZWMuLjBiYmY3NjNhODA1
N2Y2ZTJkOGRhZDFmYmVhMzZkYTMyMzQ5YmQ4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmRpc3Bs
YXlUeXBlKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gaWQ7CiB9CiAKQEAgLTMzNCw3ICszMzQsNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50
VHlwZSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkg
Y29ucwogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVy
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNv
bnRhaW5lciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC00MTAsNyAr
NDEwLDcgQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6ZGlzcGxheVR5cGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQ3MSw3ICs0NzEsNyBAQCBNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6ZGlzcGxh
eVR5cGUoKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhdHVz
LWRpc3BsYXkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtc3RhdHVzLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01NjAsNyArNTYw
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtbXV0ZS1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01ODEs
NyArNTgxLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9u
RWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXUKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24iKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTYyMCw3ICs2MjAsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTY2MCw3ICs2NjAsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTc2Miw3ICs3NjIsNyBAQCBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXNlZWstZm9yd2FyZC1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRv
biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7
CiB9CiAKQEAgLTc4Myw3ICs3ODMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OgogCiBjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24iKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTgxNCw3ICs4MTQsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXdpbmQtYnV0dG9uIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCogZXZlbnQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXR1
cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRv
LXJlYWx0aW1lLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTg4NCw3ICs4ODQsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1j
bG9zZWQtY2FwdGlvbnMtYnV0dG9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlv
bnMtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBpZDsKIH0KIApAQCAtOTU5LDcgKzk1OSw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50OjpzZXREdXJhdGlvbihmbG9hdCBkdXJhdGlvbikKIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lbGluZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEw
MzQsNyArMTAzNCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6c2V0
Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0aW9uKGJvb2wgY2xlYXJNCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
aWQ7CiB9CiAKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZv
bHVtZS1zbGlkZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApA
QCAtMTEwMyw3ICsxMTAzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1m
dWxsc2NyZWVuLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExMzksNyArMTEzOSw3IEBAIHZvaWQgTWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1mdWxsc2NyZWVuLXZvbHVtZS1taW4tYnV0dG9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4t
dm9sdW1lLW1pbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTcwLDcgKzExNzAsNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVNYXhCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZnVsbHNjcmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVu
LXZvbHVtZS1tYXgtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTIzOSw3ICsxMjM5LDcgQEAgTWVkaWFDb250cm9s
RWxlbWVudFR5cGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpkaXNw
bGF5VHlwZSgpIGMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lUmVtYWlu
aW5nRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10
aW1lLXJlbWFpbmluZy1kaXNwbGF5IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3Bs
YXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlk
OwogfQogCkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBNZWRp
YUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpkaXNwbGF5VHlwZSgpIGNvbgogCiBj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxh
eSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEzMTUsNyArMTMx
NSw3IEBAIFJlbmRlck9iamVjdCogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQuY3BwCmluZGV4IGVmNTQxYmFhMzNiMWU4YmRmMGYwOTMyMmM1ZmUwOTc2YjI3MTc3
ODguLjIyYTAxOGZkOTcwMDRhNjc3NTZlOTJlMWVkNTAyZTBiOWMwZmU4OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5j
cHAKQEAgLTY1Niw3ICs2NTYsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRh
dGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xS
b290RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBpZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCA2YjM5MTNiYjZlNTIz
YWY5ZGY3MjY4MzFlYjg2MDZhMzQwNjg5NGNhLi44MmQ4ZjkyNjBlNmIyYmNmYWRiYzVmZjc3ZTA0
YWMwYTg3OTY5NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtNzEsNyArNzEs
NyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFD
b250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWVuY2xvc3VyZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01MTks
NyArNTE5LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVU
ZXh0VHJhY2tEaXNwbGF5KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIGlkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAK
aW5kZXggNDU2MzRhODQ3NmRlOGU0Yzc4ZjAzYzg1OTM4NTAyNTYyYWRmZmUzMi4uZGZlODQ4ZGM4
MWY2ODNiM2Q3NTI1ZDc2OTY0MjUwZmVhYTE1YWZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkLmNwcApAQCAtNDQsNyArNDQsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNs
b3N1cmUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13
ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAppbmRleCA0NDFmMDEz
OTc2M2YzNGQ1NzcxNGIzODAzMzdkYjc1OTg3NWU1OWM2Li4zYzQ4YjVmMmI4ZWViMmJhOGUwN2Ey
Mzc1YTMzMmUyOWNlZjBkNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5jcHAKQEAgLTgxLDIxICs4MSwyMSBAQCBSZW5kZXJPYmplY3Qq
IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJl
bmRlclN0eWxlKgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1ldGVySW5uZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHBzZXVkSWQsICgiLXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItaW5u
ZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gcHNldWRJZDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlckJhckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LW1ldGVyLWJhciIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LW1ldGVyLWJhciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRJZDsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlclZhbHVlRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcHRp
bXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZElkLCAoIi13ZWJraXQt
bWV0ZXItc3Vib3B0aW11bS12YWx1ZSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1n
b29kLXZhbHVlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcHRp
bXVtUHNldWRJZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZElkLCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRJZCwgKCItd2Via2l0LW1l
dGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogCiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXIgPSBtZXRlckVsZW1lbnQoKTsK
ICAgICBpZiAoIW1ldGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1By
b2dyZXNzU2hhZG93RWxlbWVudC5jcHAKaW5kZXggNDY1ZDViYThmNWZiNTAzMGNmZmYzZWFjYTBh
OGI4ZmQ3MjQzMDI0NC4uZmRmYWUwNWYwYjRhODI3OTU0OGVjYWFiYmIwZTIxZWRiYjEwYTVmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0Vs
ZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1l
bnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwg
KCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVt
ZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBw
c2V1ZElkOwogfQogCkBAIC04OCwxNCArODgsMTQgQEAgYm9vbCBQcm9ncmVzc0lubmVyRWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCkK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBQcm9ncmVzc0JhckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJ
ZCwgKCItd2Via2l0LXByb2dyZXNzLWJhciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIAogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFByb2dyZXNzVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQs
ICgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZElkOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApp
bmRleCA1ZTUzZWNlZDFiNmY2MDA2MzdmNzE5OTI0NWJjMDViODdkMDZlMDEzLi44ZGMwZmQyZWIy
Nzg1ZmJiNTZhMDI5OTgzMjA4ODU2YmNiZWNlMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTQwMCwxMyArNDAwLDEzIEBA
IEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkgY29uc3QK
IAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRo
dW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc2xpZGVy
VGh1bWI7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhU2xpZGVyVGh1bWJT
aGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1lZGlhU2xpZGVy
VGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKQEAg
LTUwMSw4ICs1MDEsOCBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIikpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJDb250YWluZXIsICgiLXdl
YmtpdC1zbGlkZXItY29udGFpbmVyIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRl
ci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlckNvbnRhaW5lciwg
KCItd2Via2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0hvc3QoKS0+
dG9JbnB1dEVsZW1lbnQoKTsKICAgICBpZiAoIWlucHV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDk5ZGQ3MTk0N2JmMzU4YWMw
ZmVmZmYyNDFiNGE2ZTY5ODRjNzg2ZTguLmU5YjBlZWM2NjViZjRiODFiZWRjZTZjODI5OWY5YmJm
YWVlN2QwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9u
RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVu
dD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIFNwaW4KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTcGluQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpbm5lclBzZXVk
b0lkLCAoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdlYmtpdC1pbm5lci1zcGluLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
aW5uZXJQc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNmE1NjViMzAwMjQ3ZDRmNDA0
ODc1MzRlNzg0MjAzZWVlNzY5MmQ0Zi4uYzc5YzViODgxZjgxNGIxMGUzOGNhYmJmMjdlMDI4NGZk
MzE1N2JiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xMjQsOSArMTI0LDkgQEAgUGFzc1JlZlB0cjxT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50OjpjcmUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1
dHRvbiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0Rl
Y29yYXRpb25JZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24iKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlY29yYXRpb25JZCwgKCItd2Via2l0
LXNlYXJjaC1kZWNvcmF0aW9uIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCByZXN1bHRzSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0
cy1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWNvcmF0aW9uSWQsICgiLXdlYmtp
dC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICBFbGVtZW50KiBob3N0ID0gc2hhZG93SG9zdCgpOwogICAgIGlmICghaG9zdCkKICAg
ICAgICAgcmV0dXJuIHJlc3VsdHNJZDsKQEAgLTE3OSw3ICsxNzksNyBAQCBQYXNzUmVmUHRyPFNl
YXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVt
ZW50OjpjcmVhdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9u
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9u
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCIt
d2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApAQCAtNDM4LDcgKzQzOCw3IEBA
IHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnN0b3BTcGVlY2hJbnB1dCgpCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgcHNldWRvSWQsICgiLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9uIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWlucHV0LXNw
ZWVjaC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5jcHAKaW5kZXggYTA0YjFiOGNiZjg3Yjc5YjdjZjFjZGUzNWJiOTA3ZTRiMDEwMTFmZi4u
OGI4YjE4YTgzYzRmNTM4NzU3ZDY4NTg1ZWIxZDUwMjY0MGU4MTgxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQg
VGV4dFRyYWNrQ3VlQm94OjphcHBseUNTU1Byb3BlcnRpZXMoKQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFRleHRUcmFja0N1ZUJveDo6dGV4dFRyYWNrQ3VlQm94U2hhZG93UHNldWRvSWQoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlC
b3hTaGFkb3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tEaXNwbGF5
Qm94U2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHRyYWNrRGlz
cGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDliMjZmYzg2YzkwNDM5Mzk1MTVm
MTBhZTY5ZWJiNjU1MzBjMGI0MzEuLjIzYzZlMWNjNzNiYjYwYzE4ZmE2NWU1NTcwNWFhYThiNzM5
YmEwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwCkBAIC0xMzQsOCArMTM0LDggQEAgUmVzb3VyY2VSZXF1ZXN0IGNyZWF0ZUFj
Y2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUK
IAogYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWxzIGluY2x1ZGVDcmVkZW50aWFscywgU2VjdXJpdHlP
cmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBTdHJpbmcmIGVycm9yRGVzY3JpcHRpb24pCiB7Ci0gICAg
QXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKEF0b21pY1N0cmluZyYsIGFjY2Vzc0NvbnRyb2xB
bGxvd09yaWdpbiA9ICpuZXcgQXRvbWljU3RyaW5nKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1vcmln
aW4iKSk7Ci0gICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljKEF0b21pY1N0cmluZyYsIGFj
Y2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzID0gKm5ldyBBdG9taWNTdHJpbmcoImFjY2Vzcy1j
b250cm9sLWFsbG93LWNyZWRlbnRpYWxzIikpOworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0
YXRpYyhBdG9taWNTdHJpbmcmLCBhY2Nlc3NDb250cm9sQWxsb3dPcmlnaW4gPSAqbmV3IEF0b21p
Y1N0cmluZygiYWNjZXNzLWNvbnRyb2wtYWxsb3ctb3JpZ2luIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhBdG9t
aWNTdHJpbmcmLCBhY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFscyA9ICpuZXcgQXRvbWljU3Ry
aW5nKCJhY2Nlc3MtY29udHJvbC1hbGxvdy1jcmVkZW50aWFscyIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIC8vIEEgd2lsZGNhcmQgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luIGNhbiBub3QgYmUgdXNlZCBpZiBjcmVkZW50aWFscyBhcmUgdG8gYmUgc2Vu
dCwKICAgICAvLyBldmVuIHdpdGggQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgc2V0
IHRvIHRydWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IDMzNGQ2NDg5NWJkZDE0MTdiMzM5NTVhZTcwMGZkMWU1ODg5ODBkN2IuLmM4NTgwMGYx
YzQ2NTViZDUyNDQ5YTcxYzM3NjM2MGJkNzRiMzZjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zNjgsNyArMzY4LDggQEAgdm9pZCBNYWlu
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5t
YXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0KCksIHIpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHIuaHR0cEhl
YWRlckZpZWxkcygpLmZpbmQoQXRvbWljU3RyaW5nKCJ4LWZyYW1lLW9wdGlvbnMiKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhGcmFtZU9wdGlvbkhlYWRlciwgKCJ4
LWZyYW1lLW9wdGlvbnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByLmh0dHBIZWFkZXJGaWVsZHMo
KS5maW5kKHhGcmFtZU9wdGlvbkhlYWRlcik7CiAgICAgaWYgKGl0ICE9IHIuaHR0cEhlYWRlckZp
ZWxkcygpLmVuZCgpKSB7CiAgICAgICAgIFN0cmluZyBjb250ZW50ID0gaXQtPnZhbHVlOwogICAg
ICAgICBpZiAobV9mcmFtZS0+bG9hZGVyKCktPnNob3VsZEludGVycnVwdExvYWRGb3JYRnJhbWVP
cHRpb25zKGNvbnRlbnQsIHIudXJsKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByZXJl
bmRlcmVyQ2xpZW50LmNwcAppbmRleCBmOGMyOTg5MjhjMjI0NWIwYzkyYmY1NWE0ZDhjZWFkZDhi
ZDUwNTEzLi5kYWQyODljNTEzMjAyZDBkZjhkODY2OTFkY2YwYjg0MzQwNTI0ZjQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJlcmVuZGVyZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QcmVyZW5kZXJlckNsaWVudC5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gc3RhdGljCiBjb25zdCBBdG9taWNTdHJpbmcmIFBy
ZXJlbmRlcmVyQ2xpZW50OjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJlcmVuZGVyZXJDbGllbnQiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiUHJlcmVuZGVyZXJDbGllbnQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
CmluZGV4IGNhM2ZlMTM2MzA0MDcxNTdiN2ZiMzUxZDY4YWI0ZWIwMTQzMzY2OGIuLjEwOWI3NmJj
YzZkZDBjYmZjOWYzMmU1ZjE4OTA3MDQwYTU1MWVlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OnVwZGF0ZVJlc3BvbnNlQWZ0ZXJSZXZhbGlkYXRpb24oY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgdmFsCiB7CiAgICAgbV9yZXNwb25zZVRpbWVzdGFtcCA9IGN1cnJlbnRU
aW1lKCk7CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29u
dGVudEhlYWRlclByZWZpeCwgKCJjb250ZW50LSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgY29udGVudEhlYWRlclByZWZpeCwgKCJjb250ZW50LSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAvLyBSRkMyNjE2IDEwLjMu
NQogICAgIC8vIFVwZGF0ZSBjYWNoZWQgaGVhZGVycyBmcm9tIHRoZSAzMDQgcmVzcG9uc2UKICAg
ICBjb25zdCBIVFRQSGVhZGVyTWFwJiBuZXdIZWFkZXJzID0gdmFsaWRhdGluZ1Jlc3BvbnNlLmh0
dHBIZWFkZXJGaWVsZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UGFnZVBvcHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UGFnZVBvcHVw
LmNwcAppbmRleCA4NjA3NmRhYjYxMWYwMzdiZTcyMWI5N2Q5NjhkOTRkMzdmOTc3ZjZlLi5iOWZj
N2NhNjk5YzJhNzY4ZjE3ZjdlMDBhN2IzOGUwOTg3ZGIyZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuY3BwCkBAIC01MCw3ICs1MCw3IEBAIERPTVdpbmRvd1Bh
Z2VQb3B1cDo6fkRPTVdpbmRvd1BhZ2VQb3B1cCgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgRE9N
V2luZG93UGFnZVBvcHVwOjpzdXBwbGVtZW50TmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRE9NV2luZG93UGFnZVBvcHVwIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRPTVdpbmRvd1BhZ2VQb3B1
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkyMDU1YTEyMzNh
Nzg0Njk1MmI3YmJjZmMxMWFkNzNjNWM4M2U5OGYuLjA3ZTFiNzNhYjk4MjMyYjBmODM0NDE5NjQ1
ZjM4ZDVjOTY1ZmM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE5
ODUsNyArMTk4NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVQYXN0ZUdsb2JhbFNlbGVj
dGlvbihjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlCiAgICAgRnJhbWUqIGZvY3Vz
RnJhbWUgPSBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKICAgICAvLyBEbyBub3QgcGFzdGUgaGVyZSBpZiB0aGUgZm9jdXMgd2FzIG1vdmVk
IHNvbWV3aGVyZSBlbHNlLgogICAgIGlmIChtX2ZyYW1lID09IGZvY3VzRnJhbWUgJiYgbV9mcmFt
ZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigpKQotICAgICAg
ICByZXR1cm4gbV9mcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoQXRvbWljU3RyaW5nKCJQYXN0ZUds
b2JhbFNlbGVjdGlvbiIpKS5leGVjdXRlKCk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lLT5lZGl0
b3IoKS0+Y29tbWFuZChBU0NJSUxpdGVyYWwoIlBhc3RlR2xvYmFsU2VsZWN0aW9uIikpLmV4ZWN1
dGUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTMxMTIsMTAgKzMxMTIsMTAgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5p
dGlhbEtleUV2ZW50KQogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JL
ZXkoY29uc3QgQXRvbWljU3RyaW5nJiBrZXlJZGVudGlmaWVyKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBEb3duLCAoIkRvd24iKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIFVwLCAoIlVwIikpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBMZWZ0LCAoIkxlZnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJpZ2h0IikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBEb3duLCAoIkRvd24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFVwLCAo
IlVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBMZWZ0LCAoIkxlZnQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIFJpZ2h0LCAoIlJpZ2h0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogCiAgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Ob25lOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCmluZGV4IDgzMjhjNWQ0ZGYzMjk5NDJiNTlmM2Vj
YzIyNTM1NjhjZTJhOGExMWQuLmNiNGEyMWYyZGY5ODA1NDM4MDJjM2NmZWVmMmU2Mzg1NDJiZjMy
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAg
dm9pZCBTcGVlY2hJbnB1dDo6Y2FuY2VsUmVjb2duaXRpb24oaW50IGxpc3RlbmVySWQpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU3BlZWNoSW5wdXQ6OnN1cHBsZW1lbnROYW1lKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJTcGVlY2hJbnB1dCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJTcGVlY2hJbnB1
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAKaW5kZXggMGIwZjM3OWQ1NmFiZDg1YzYzYmFlMTRjZTVlYTJiNDlhYjEz
ZWU4ZS4uMWJiNTA1OWU2ZGE0MDFkZmZkZGU4MDQ4MTk2ZWU1NzI2YzdiZjIwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3Bw
CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZy
YW1lQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXIKICAgICAgICAgLy8g
VG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlv
bk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgCiAgICAgICAgIC8vIE5vdyBtYXJrIGFueSBzdGls
bCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMu
CiAgICAgICAgIGlmICh0YXJnZXRTdHlsZS0+YW5pbWF0aW9ucygpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBmNjA4ODNhYjNlOGVm
MzJmYWMxMzk4Yjk0NGQwNjBmMGNjODA0MTZhLi5hNGFjN2VhMzY1OTNiY2E1MDQ5YTFhOGVhODVk
OGVhNGVlNTZjZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAKQEAgLTEzNCw4ICsxMzQsOCBAQCBzdGF0aWMgRm9udFBsYXRmb3JtRGF0YUNh
Y2hlKiBnRm9udFBsYXRmb3JtRGF0YUNhY2hlID0gMDsKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIGFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lKQog
ewogICAgIC8vIEFsaWFzIENvdXJpZXIgPC0+IENvdXJpZXIgTmV3Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGNvdXJpZXIsICgiQ291cmllciIpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY291cmllck5ldywgKCJDb3VyaWVyIE5ldyIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY291cmllciwgKCJDb3VyaWVy
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjb3VyaWVyTmV3LCAoIkNvdXJpZXIgTmV3IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShmYW1pbHlOYW1lLCBjb3VyaWVyKSkKICAgICAgICAgcmV0dXJuIGNvdXJpZXJOZXc7CiAjaWYg
IU9TKFdJTkRPV1MpCkBAIC0xNDcsMTYgKzE0NywxNiBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBhbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkK
ICNlbmRpZgogCiAgICAgLy8gQWxpYXMgVGltZXMgYW5kIFRpbWVzIE5ldyBSb21hbi4KLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXMsICgiVGltZXMiKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHRpbWVzTmV3Um9tYW4sICgiVGltZXMg
TmV3IFJvbWFuIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB0aW1l
cywgKCJUaW1lcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNOZXdSb21hbiwgKCJUaW1lcyBO
ZXcgUm9tYW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIHRpbWVzKSkKICAgICAgICAgcmV0dXJuIHRp
bWVzTmV3Um9tYW47CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIHRpbWVz
TmV3Um9tYW4pKQogICAgICAgICByZXR1cm4gdGltZXM7CiAgICAgCiAgICAgLy8gQWxpYXMgQXJp
YWwgYW5kIEhlbHZldGljYQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBh
cmlhbCwgKCJBcmlhbCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aGVsdmV0aWNhLCAoIkhlbHZldGljYSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgYXJpYWwsICgiQXJpYWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGhlbHZldGljYSwg
KCJIZWx2ZXRpY2EiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKGZhbWlseU5hbWUsIGFyaWFsKSkKICAgICAgICAgcmV0dXJu
IGhlbHZldGljYTsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmFtaWx5TmFtZSwgaGVsdmV0
aWNhKSkKQEAgLTE2NSwxNCArMTY1LDE0IEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGFs
dGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lKQogI2lmIE9T
KFdJTkRPV1MpCiAgICAgLy8gT24gV2luZG93cywgYml0bWFwIGZvbnRzIGFyZSBibG9ja2VkIGFs
dG9nZXRoZXIgc28gdGhhdCB3ZSBoYXZlIHRvIAogICAgIC8vIGFsaWFzIE1TIFNhbnMgU2VyaWYg
KGJpdG1hcCBmb250KSAtPiBNaWNyb3NvZnQgU2FucyBTZXJpZiAodHJ1ZXR5cGUgZm9udCkKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbXNTYW5zLCAoIk1TIFNhbnMgU2Vy
aWYiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1pY3Jvc29mdFNh
bnMsICgiTWljcm9zb2Z0IFNhbnMgU2VyaWYiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG1zU2FucywgKCJNUyBTYW5zIFNlcmlmIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBtaWNyb3NvZnRTYW5zLCAoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShmYW1pbHlO
YW1lLCBtc1NhbnMpKQogICAgICAgICByZXR1cm4gbWljcm9zb2Z0U2FuczsKIAogICAgIC8vIEFs
aWFzIE1TIFNlcmlmIChiaXRtYXApIC0+IFRpbWVzIE5ldyBSb21hbiAodHJ1ZXR5cGUgZm9udCku
IFRoZXJlJ3Mgbm8gCi0gICAgLy8gJ01pY3Jvc29mdCBTYW5zIFNlcmlmLWVxdWl2YWxlbnQnIGZv
ciBTZXJpZi4gCi0gICAgc3RhdGljIEF0b21pY1N0cmluZyBtc1NlcmlmKCJNUyBTZXJpZiIpOwor
ICAgIC8vICdNaWNyb3NvZnQgU2FucyBTZXJpZi1lcXVpdmFsZW50JyBmb3IgU2VyaWYuCisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1zU2VyaWYsICgiTVMgU2VyaWYiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKGZhbWlseU5hbWUsIG1zU2VyaWYpKQogICAgICAgICByZXR1cm4gdGltZXNOZXdSb21h
bjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCmluZGV4IDM3N2U4ZGM3YTNkZjc3MDZhZTMwOTUyYTdhYTk1ODNiOGVlNjZiYTEu
LmRhOTM1NzBhMGI3YjE3OGNhZTkyM2E5NWVlZjI1NDc2ZTQzYzFhMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTIzOSwxOSAr
MjM5LDE5IEBAIHN0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxh
eWVyIGNvbnN0cnVjdG9yLCBNZWRpYUVuZ2luZVN1cHBvCiAKIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtLCAoImFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgYXBwbGljYXRpb25PY3RldFN0cmVhbSwgKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGFw
cGxpY2F0aW9uT2N0ZXRTdHJlYW07CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHRl
eHRQbGFpbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWluIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCB0ZXh0UGxhaW4sICgidGV4dC9wbGFpbiIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb2RlY3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb2RlY3MsICgiY29kZWNzIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb2RlY3MsICgiY29kZWNzIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjb2RlY3M7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Zv
bnRDYWNoZUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRm9udENhY2hlQW5kcm9pZC5jcHAKaW5kZXggZWJhMjI0YTgzYzE1ZTU4OGJkZjA3ZmFh
M2I2ZTFjNjQxMzY1YTYwNC4uYWE1NGRjMTAxYjFmOTFjMWYxMDdjNWEzNGFiZTA1ZDk4YmIxMTQ2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udENhY2hlQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vRm9udENhY2hlQW5kcm9pZC5jcHAKQEAgLTEyMiw5ICsxMjIsOSBAQCBQYXNz
UmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnQmIGZvbgogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2Fj
aGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2VyaWYsICgiU2VyaWYiKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1vbm9zcGFjZSwgKCJNb25vc3BhY2Ui
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNhbnMsICgi
U2FucyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2Vy
aWYsICgiU2VyaWYiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1vbm9zcGFjZSwgKCJNb25v
c3BhY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNhbnMsICgiU2FucyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEqIGZv
bnRQbGF0Zm9ybURhdGEgPSAwOwogICAgIHN3aXRjaCAoZGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWls
eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IDI4MzUwMWM1M2Q3Njg3NGQ2ZjFmMGY0MTU5N2Y1
ZDQxYWVlMTE3OGEuLjRjYzU2MjJmMDg5ZmFjNjVjOWUzODdjNTUyMmE0MWRhYTY2NThmODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
QWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFBhc3NSZWZQdHI8U291cmNlQWxwaGE+
IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlQWxwaGEiKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNfZWZmZWN0TmFtZSwgKCJT
b3VyY2VBbHBoYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA3NWIxMWRk
ZjdkOWQxMDMzMDNkMzRhODQxNmUwNjk2NWNmMGQxN2MxLi4xOTdkODAyZjVkYzI4NTY4ZmJkNzg5
YzhhZTQyMjQzZmNhZDA2ZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgUGFzc1JlZlB0cjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVy
KiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFt
ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNfZWZm
ZWN0TmFtZSwgKCJTb3VyY2VHcmFwaGljIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlR3JhcGhpYyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
YWNoZU1hYy5tbQppbmRleCBkMWRjODE2MmExNGNlMDk5OTU4ZTBiYTU0YjQ1YmJhNjc0MTEwZTNl
Li4zZmE0MzNmM2QyZDQxY2Q3ZDE0Nzk4Mjg2YTk1ZDRjN2I4MGU5OTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KQEAg
LTE4Miw3ICsxODIsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6Omdl
dFNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnQmIGZvbgogICAgIHdoaWxlIChjdXJy
RmFtaWx5ICYmICFzaW1wbGVGb250RGF0YSkgewogICAgICAgICBpZiAoY3VyckZhbWlseS0+ZmFt
aWx5KCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgIHN0YXRpYyBTdHJpbmcqIG1hdGNoV29yZHNb
M10gPSB7IG5ldyBTdHJpbmcoIkFyYWJpYyIpLCBuZXcgU3RyaW5nKCJQYXNodG8iKSwgbmV3IFN0
cmluZygiVXJkdSIpIH07Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgZ2VlemFTdHIsICgiR2VlemEgUHJvIikpOworICAgICAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGdlZXphU3RyLCAoIkdlZXphIFBybyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBq
IDwgMyAmJiAhc2ltcGxlRm9udERhdGE7ICsraikKICAgICAgICAgICAgICAgICBpZiAoY3VyckZh
bWlseS0+ZmFtaWx5KCkuY29udGFpbnMoKm1hdGNoV29yZHNbal0sIGZhbHNlKSkKICAgICAgICAg
ICAgICAgICAgICAgc2ltcGxlRm9udERhdGEgPSBnZXRDYWNoZWRGb250RGF0YShmb250LmZvbnRE
ZXNjcmlwdGlvbigpLCBnZWV6YVN0cik7CkBAIC0xOTUsNyArMTk1LDcgQEAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRTaW1pbGFyRm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250JiBmb24KIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRM
YXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uLCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCB0aW1lc1N0ciwgKCJUaW1lcyIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICAvLyBGSVhNRTogV291bGQgYmUgZXZlbiBiZXR0
ZXIgdG8gc29tZWhvdyBnZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQgaGVyZS4gIEZvciBub3cg
d2UnbGwgcGljawogICAgIC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVzZXIgd291bGQgZ2V0IHdp
dGhvdXQgY2hhbmdpbmcgYW55IHByZWZzLgpAQCAtMjA3LDcgKzIwNyw3IEBAIFBhc3NSZWZQdHI8
U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpCiAgICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGl0LCB3ZSBmYWxsIGJh
Y2sgb24gTHVjaWRhIEdyYW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8vIGd1YXJhbnRlZWQgdG8g
YmUgdGhlcmUsIGFjY29yZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlzIGlzIGdvb2QgZW5vdWdo
CiAgICAgLy8gdG8gYXZvaWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbHVjaWRhR3JhbmRlU3RyLCAoIkx1Y2lkYSBHcmFuZGUiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGx1Y2lkYUdyYW5kZVN0ciwgKCJM
dWNpZGEgR3JhbmRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBnZXRDYWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGx1Y2lkYUdyYW5kZVN0
ciwgZmFsc2UsIHNob3VsZFJldGFpbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ZvbnRDYWNoZVNraWEuY3BwCmluZGV4IDMzNmFiYzQz
MGE5NWU0ZjYyYWY5YjRmYTk2Y2FlN2Q4YTUwMDBiNjguLmU1OWVmYTVkOTM1MDUxMjVkZTQ4ZWIw
MDExYTQ3NTZhYzBjODA0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvRm9udENhY2hlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9Gb250Q2FjaGVTa2lhLmNwcApAQCAtOTUsOSArOTUsOSBAQCBQYXNz
UmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldFNpbWlsYXJGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnQmIGZvbgogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2Fj
aGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2Fuc1N0ciwgKCJTYW5zIikpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZXJpZlN0ciwgKCJTZXJpZiIpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbW9ub3NwYWNlU3Ry
LCAoIk1vbm9zcGFjZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgc2Fuc1N0ciwgKCJTYW5zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZXJpZlN0
ciwgKCJTZXJpZiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbW9ub3NwYWNlU3RyLCAoIk1v
bm9zcGFjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIEZv
bnRQbGF0Zm9ybURhdGEqIGZvbnRQbGF0Zm9ybURhdGEgPSAwOwogICAgIHN3aXRjaCAoZGVzY3Jp
cHRpb24uZ2VuZXJpY0ZhbWlseSgpKSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgUGFzc1JlZlB0cjxT
aW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0
IEZvbnREZXNjcmkKIAogICAgIGlmICghZm9udFBsYXRmb3JtRGF0YSkgewogICAgICAgICAvLyB3
ZSBzaG91bGQgYXQgbGVhc3QgaGF2ZSBBcmlhbDsgdGhpcyBpcyB0aGUgU2tGb250SG9zdF9mb250
Y29uZmlnIGxhc3QgcmVzb3J0IGZhbGxiYWNrCi0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBhcmlhbFN0ciwgKCJBcmlhbCIpKTsKKyAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFyaWFsU3RyLCAoIkFyaWFsIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBmb250UGxhdGZvcm1E
YXRhID0gZ2V0Q2FjaGVkRm9udFBsYXRmb3JtRGF0YShkZXNjcmlwdGlvbiwgYXJpYWxTdHIpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udENhY2hlV2luLmNwcAppbmRleCAyNTQwZmFlOTcyODM1YjIzYmNlODFiOTlhODEyZTZiZDU4
OGY0ZjM4Li4yYmVjNjJhNGRlNWYwNzAwZWJlNGJlYTUyZjI4N2EzYjE1Zjg0ZWNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2lu
LmNwcApAQCAtMzIzLDExICszMjMsMTEgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9u
dENhY2hlOjpnZXRMYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmkKICAgICAv
LyBTb3J0ZWQgYnkgbW9zdCB0byBsZWFzdCBnbHlwaHMgYWNjb3JkaW5nIHRvIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvVW5pY29kZV90eXBlZmFjZXMKICAgICAvLyBTdGFydCB3aXRoIFRp
bWVzIE5ldyBSb21hbiBhbHNvIHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGlmIHRoZSB1c2VyIGRv
ZXNuJ3QgY2hhbmdlIHByZWZzLgogICAgIHN0YXRpYyBBdG9taWNTdHJpbmcgZmFsbGJhY2tGb250
c1tdID0gewotICAgICAgICBBdG9taWNTdHJpbmcoIlRpbWVzIE5ldyBSb21hbiIpLAotICAgICAg
ICBBdG9taWNTdHJpbmcoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiksCi0gICAgICAgIEF0b21pY1N0
cmluZygiVGFob21hIiksCi0gICAgICAgIEF0b21pY1N0cmluZygiTHVjaWRhIFNhbnMgVW5pY29k
ZSIpLAotICAgICAgICBBdG9taWNTdHJpbmcoIkFyaWFsIikKKyAgICAgICAgQXRvbWljU3RyaW5n
KCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwK
KyAgICAgICAgQXRvbWljU3RyaW5nKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLAorICAgICAgICBBdG9taWNTdHJpbmcoIlRhaG9tYSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLAorICAgICAgICBBdG9taWNTdHJp
bmcoIkx1Y2lkYSBTYW5zIFVuaWNvZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwKKyAgICAgICAgQXRvbWljU3RyaW5nKCJBcmlhbCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpCiAgICAgfTsKICAgICBSZWZQdHI8U2ltcGxlRm9udERhdGE+IHNpbXBs
ZUZvbnQ7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGZhbGxi
YWNrRm9udHMpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3d4L0ZvbnRDYWNoZVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3d4L0ZvbnRDYWNoZVd4LmNwcAppbmRleCBhY2QxZGMzZTE4ODFiYzUyYjVjMDFhMWNlNjAz
MjNmYmMxYTI0MDc1Li41ZTkwZTA1OWEyNDZhODQ1ODkzNTMxZDk3MGI5MTkxZGM2YmY4ZTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250Q2FjaGVX
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvRm9udENhY2hl
V3guY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRD
YWNoZTo6Z2V0U2ltaWxhckZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udCYgZm9uCiAgICAgd2hp
bGUgKGN1cnJGYW1pbHkgJiYgIXNpbXBsZUZvbnREYXRhKSB7CiAgICAgICAgIGlmIChjdXJyRmFt
aWx5LT5mYW1pbHkoKS5sZW5ndGgoKSkgewogICAgICAgICAgICAgc3RhdGljIFN0cmluZyogbWF0
Y2hXb3Jkc1szXSA9IHsgbmV3IFN0cmluZygiQXJhYmljIiksIG5ldyBTdHJpbmcoIlBhc2h0byIp
LCBuZXcgU3RyaW5nKCJVcmR1IikgfTsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBnZWV6YVN0ciwgKCJHZWV6YSBQcm8iKSk7CisgICAgICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZ2VlemFTdHIsICgiR2VlemEgUHJvIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICAgICAgZm9yIChpbnQg
aiA9IDA7IGogPCAzICYmICFzaW1wbGVGb250RGF0YTsgKytqKQogICAgICAgICAgICAgICAgIGlm
IChjdXJyRmFtaWx5LT5mYW1pbHkoKS5jb250YWlucygqbWF0Y2hXb3Jkc1tqXSwgZmFsc2UpKQog
ICAgICAgICAgICAgICAgICAgICBzaW1wbGVGb250RGF0YSA9IGdldENhY2hlZEZvbnREYXRhKGZv
bnQuZm9udERlc2NyaXB0aW9uKCksIGdlZXphU3RyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5kZXggNDg1
NjhlZjZmYTY5N2I2MGJiYWRmMjA4Y2MzODQ1ODZhYTRmNzMzNC4uNTkwMmU3OTYxY2I4YTk4ZjUx
YTBiYjI0NWQwNmJmNTE2MzVmNmRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTI4MCwxMiArMjgw
LDEyIEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnNldEhUVFBIZWFkZXJGaWVsZChjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0CiB7CiAgICAgbGF6eUluaXQoQ29tbW9uQW5k
VW5jb21tb25GaWVsZHMpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGFnZUhlYWRlciwgKCJhZ2UiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbEhlYWRlciwgKCJjYWNoZS1jb250cm9sIikpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkYXRlSGVhZGVyLCAo
ImRhdGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGV4
cGlyZXNIZWFkZXIsICgiZXhwaXJlcyIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgbGFzdE1vZGlmaWVkSGVhZGVyLCAoImxhc3QtbW9kaWZpZWQiKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhlYWRlciwg
KCJwcmFnbWEiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGFnZUhlYWRlciwgKCJhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJv
bEhlYWRlciwgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkYXRl
SGVhZGVyLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGV4cGlyZXNIZWFkZXIs
ICgiZXhwaXJlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGFzdE1vZGlmaWVkSGVhZGVy
LCAoImxhc3QtbW9kaWZpZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhlYWRl
ciwgKCJwcmFnbWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGFnZUhlYWRlcikpCiAgICAgICAgIG1faGF2ZVBh
cnNlZEFnZUhlYWRlciA9IGZhbHNlOwogICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5h
bWUsIGNhY2hlQ29udHJvbEhlYWRlcikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgcHJhZ21h
SGVhZGVyKSkKQEAgLTMxOSwxMSArMzE5LDExIEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpIGNvbnN0CiAgICAgbV9jYWNoZUNvbnRyb2xD
b250YWluc05vQ2FjaGUgPSBmYWxzZTsKICAgICBtX2NhY2hlQ29udHJvbE1heEFnZSA9IG51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0cmluZywgKCJjYWNoZS1jb250cm9s
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub0NhY2hl
RGlyZWN0aXZlLCAoIm5vLWNhY2hlIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBub1N0b3JlRGlyZWN0aXZlLCAoIm5vLXN0b3JlIikpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtdXN0UmV2YWxpZGF0ZURpcmVjdGl2
ZSwgKCJtdXN0LXJldmFsaWRhdGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIG1heEFnZURpcmVjdGl2ZSwgKCJtYXgtYWdlIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYWNoZUNvbnRyb2xTdHJpbmcsICgiY2Fj
aGUtY29udHJvbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9DYWNoZURpcmVjdGl2ZSwg
KCJuby1jYWNoZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9TdG9yZURpcmVjdGl2ZSwg
KCJuby1zdG9yZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbXVzdFJldmFsaWRhdGVEaXJl
Y3RpdmUsICgibXVzdC1yZXZhbGlkYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtYXhB
Z2VEaXJlY3RpdmUsICgibWF4LWFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKIAogICAgIFN0cmluZyBjYWNoZUNvbnRyb2xWYWx1ZSA9IG1faHR0cEhlYWRlckZpZWxk
cy5nZXQoY2FjaGVDb250cm9sU3RyaW5nKTsKICAgICBpZiAoIWNhY2hlQ29udHJvbFZhbHVlLmlz
RW1wdHkoKSkgewpAQCAtMzU3LDcgKzM1Nyw3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OnBhcnNlQ2FjaGVDb250cm9sRGlyZWN0aXZlcygpIGNvbnN0CiAgICAgICAgIC8vIEhhbmRsZSBQ
cmFnbWE6IG5vLWNhY2hlCiAgICAgICAgIC8vIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgZXF1aXZh
bGVudCB0byBDYWNoZS1jb250cm9sOiBuby1jYWNoZQogICAgICAgICAvLyBEb24ndCBib3RoZXIg
dG9rZW5pemluZyB0aGUgdmFsdWUsIGl0IGlzIG5vdCBpbXBvcnRhbnQKLSAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhlYWRlciwgKCJwcmFnbWEi
KSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmFn
bWFIZWFkZXIsICgicHJhZ21hIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgICAgICBTdHJpbmcgcHJhZ21hVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KHBy
YWdtYUhlYWRlcik7CiAKICAgICAgICAgbV9jYWNoZUNvbnRyb2xDb250YWluc05vQ2FjaGUgPSBw
cmFnbWFWYWx1ZS5sb3dlcigpLmNvbnRhaW5zKG5vQ2FjaGVEaXJlY3RpdmUpOwpAQCAtMzg5LDgg
KzM4OSw4IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omhhc0NhY2hlVmFsaWRhdG9yRmll
bGRzKCkgY29uc3QKIHsKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsYXN0TW9kaWZpZWRIZWFkZXIs
ICgibGFzdC1tb2RpZmllZCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgZVRhZ0hlYWRlciwgKCJldGFnIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBsYXN0TW9kaWZpZWRIZWFkZXIsICgibGFzdC1tb2RpZmllZCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZVRhZ0hlYWRlciwgKCJldGFnIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiAhbV9odHRwSGVhZGVyRmll
bGRzLmdldChsYXN0TW9kaWZpZWRIZWFkZXIpLmlzRW1wdHkoKSB8fCAhbV9odHRwSGVhZGVyRmll
bGRzLmdldChlVGFnSGVhZGVyKS5pc0VtcHR5KCk7CiB9CiAKQEAgLTQyMSw3ICs0MjEsNyBAQCBk
b3VibGUgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmRhdGUoKSBjb25zdAogICAgIGxhenlJbml0KENv
bW1vbkZpZWxkc09ubHkpOwogCiAgICAgaWYgKCFtX2hhdmVQYXJzZWREYXRlSGVhZGVyKSB7Ci0g
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1l
LCAoImRhdGUiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBoZWFkZXJOYW1lLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgICAgIG1fZGF0ZSA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFkZXIobV9odHRwSGVh
ZGVyRmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2VkRGF0ZUhlYWRlciA9
IHRydWU7CiAgICAgfQpAQCAtNDMzLDcgKzQzMyw3IEBAIGRvdWJsZSBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6YWdlKCkgY29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAogICAg
IGlmICghbV9oYXZlUGFyc2VkQWdlSGVhZGVyKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImFnZSIpKTsKKyAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRlck5hbWUsICgiYWdlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBTdHJpbmcgaGVh
ZGVyVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KGhlYWRlck5hbWUpOwogICAgICAgICBi
b29sIG9rOwogICAgICAgICBtX2FnZSA9IGhlYWRlclZhbHVlLnRvRG91YmxlKCZvayk7CkBAIC00
NDksNyArNDQ5LDcgQEAgZG91YmxlIFJlc291cmNlUmVzcG9uc2VCYXNlOjpleHBpcmVzKCkgY29u
c3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAogICAgIGlmICghbV9oYXZlUGFy
c2VkRXhwaXJlc0hlYWRlcikgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJleHBpcmVzIikpOworICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJleHBpcmVzIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX2V4cGlyZXMgPSBw
YXJzZURhdGVWYWx1ZUluSGVhZGVyKG1faHR0cEhlYWRlckZpZWxkcywgaGVhZGVyTmFtZSk7CiAg
ICAgICAgIG1faGF2ZVBhcnNlZEV4cGlyZXNIZWFkZXIgPSB0cnVlOwogICAgIH0KQEAgLTQ2MSw3
ICs0NjEsNyBAQCBkb3VibGUgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omxhc3RNb2RpZmllZCgpIGNv
bnN0CiAgICAgbGF6eUluaXQoQ29tbW9uRmllbGRzT25seSk7CiAKICAgICBpZiAoIW1faGF2ZVBh
cnNlZExhc3RNb2RpZmllZEhlYWRlcikgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJsYXN0LW1vZGlmaWVkIikpOworICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJs
YXN0LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
ICAgICBtX2xhc3RNb2RpZmllZCA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFkZXIobV9odHRwSGVhZGVy
RmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2VkTGFzdE1vZGlmaWVkSGVh
ZGVyID0gdHJ1ZTsKICAgICB9CkBAIC00NzIsMTMgKzQ3MiwxMyBAQCBib29sIFJlc291cmNlUmVz
cG9uc2VCYXNlOjppc0F0dGFjaG1lbnQoKSBjb25zdAogewogICAgIGxhenlJbml0KENvbW1vbkFu
ZFVuY29tbW9uRmllbGRzKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBoZWFkZXJOYW1lLCAoImNvbnRlbnQtZGlzcG9zaXRpb24iKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRlck5hbWUsICgiY29udGVudC1k
aXNwb3NpdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBT
dHJpbmcgdmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KGhlYWRlck5hbWUpOwogICAgIHNp
emVfdCBsb2MgPSB2YWx1ZS5maW5kKCc7Jyk7CiAgICAgaWYgKGxvYyAhPSBub3RGb3VuZCkKICAg
ICAgICAgdmFsdWUgPSB2YWx1ZS5sZWZ0KGxvYyk7CiAgICAgdmFsdWUgPSB2YWx1ZS5zdHJpcFdo
aXRlU3BhY2UoKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
YXR0YWNobWVudFN0cmluZywgKCJhdHRhY2htZW50IikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdHRhY2htZW50U3RyaW5nLCAoImF0dGFjaG1lbnQiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdDYXNlKHZhbHVlLCBhdHRhY2htZW50U3RyaW5nKTsKIH0KICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcApp
bmRleCA5MmQwMDI4MjljYzhhMTlhMWQ1MjU1Zjc3MTI4OWI0MWJkNDc5ZDQ5Li5mNDA5OTQzMjZm
M2VhYmY3NTc0ZDFjNmYxYWZiZWQ0YjQyOWIzODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKQEAgLTU5LDcg
KzU5LDcgQEAgZmxvYXQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OmdldEF2Z0NoYXJXaWR0
aChBdG9taWNTdHJpbmcgZmFtaWx5KQogICAgIC8vIFNpbmNlIEx1Y2lkYSBHcmFuZGUgaXMgdGhl
IGRlZmF1bHQgZm9udCwgd2Ugd2FudCB0aGlzIHRvIG1hdGNoIHRoZSB3aWR0aAogICAgIC8vIG9m
IENvdXJpZXIgTmV3LCB0aGUgZGVmYXVsdCBmb250IGZvciB0ZXh0YXJlYXMgaW4gSUUsIEZpcmVm
b3ggYW5kIFNhZmFyaSBXaW4uCiAgICAgLy8gMTIyOSBpcyB0aGUgYXZnQ2hhcldpZHRoIHZhbHVl
IGluIHRoZSBPUy8yIHRhYmxlIGZvciBDb3VyaWVyIE5ldy4KLSAgICBpZiAoZmFtaWx5ID09IEF0
b21pY1N0cmluZygiTHVjaWRhIEdyYW5kZSIpKQorICAgIGlmIChmYW1pbHkgPT0gIkx1Y2lkYSBH
cmFuZGUiKQogICAgICAgICByZXR1cm4gc2NhbGVFbVRvVW5pdHMoMTIyOSk7CiAKICAgICByZXR1
cm4gUmVuZGVyVGV4dENvbnRyb2w6OmdldEF2Z0NoYXJXaWR0aChmYW1pbHkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcAppbmRleCA5NjdmYjJhY2MwZGY4Y2I5MzYxZTFhMWQ1YjhhNzMyYTRkMGNkYTFlLi5jN2Yw
NzVhNGI4Zjk4MDkwZjAxZWU5YTI5OGNmMzVkZjZmZGUyM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApA
QCAtMjgzLDcgKzI4Myw3IEBAIGZsb2F0IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Z2V0
QXZnQ2hhcldpZHRoKEF0b21pY1N0cmluZyBmYW1pbHkpCiAgICAgLy8gb2YgTVMgU2hlbGwgRGxn
LCB0aGUgZGVmYXVsdCBmb250IGZvciB0ZXh0YXJlYXMgaW4gRmlyZWZveCwgU2FmYXJpIFdpbiBh
bmQKICAgICAvLyBJRSBmb3Igc29tZSBlbmNvZGluZ3MgKGluIElFLCB0aGUgZGVmYXVsdCBmb250
IGlzIGVuY29kaW5nIHNwZWNpZmljKS4KICAgICAvLyA5MDEgaXMgdGhlIGF2Z0NoYXJXaWR0aCB2
YWx1ZSBpbiB0aGUgT1MvMiB0YWJsZSBmb3IgTVMgU2hlbGwgRGxnLgotICAgIGlmIChmYW1pbHkg
PT0gQXRvbWljU3RyaW5nKCJMdWNpZGEgR3JhbmRlIikpCisgICAgaWYgKGZhbWlseSA9PSAiTHVj
aWRhIEdyYW5kZSIpCiAgICAgICAgIHJldHVybiBzY2FsZUVtVG9Vbml0cyg5MDEpOwogCiAgICAg
cmV0dXJuIFJlbmRlclRleHRDb250cm9sOjpnZXRBdmdDaGFyV2lkdGgoZmFtaWx5KTsKQEAgLTMw
NCw3ICszMDQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6cHJl
ZmVycmVkQ29udGVudFdpZHRoKGZsb2F0IGNoYXJXaWR0aCkgYwogICAgIC8vIG9mIE1TIFNoZWxs
IERsZywgdGhlIGRlZmF1bHQgZm9udCBmb3IgdGV4dGFyZWFzIGluIEZpcmVmb3gsIFNhZmFyaSBX
aW4gYW5kCiAgICAgLy8gSUUgZm9yIHNvbWUgZW5jb2RpbmdzIChpbiBJRSwgdGhlIGRlZmF1bHQg
Zm9udCBpcyBlbmNvZGluZyBzcGVjaWZpYykuCiAgICAgLy8gNDAyNyBpcyB0aGUgKHhNYXggLSB4
TWluKSB2YWx1ZSBpbiB0aGUgImhlYWQiIGZvbnQgdGFibGUgZm9yIE1TIFNoZWxsIERsZy4KLSAg
ICBpZiAoZmFtaWx5ID09IEF0b21pY1N0cmluZygiTHVjaWRhIEdyYW5kZSIpKQorICAgIGlmIChm
YW1pbHkgPT0gIkx1Y2lkYSBHcmFuZGUiKQogICAgICAgICBtYXhDaGFyV2lkdGggPSBzY2FsZUVt
VG9Vbml0cyg0MDI3KTsKICAgICBlbHNlIGlmIChoYXNWYWxpZEF2Z0NoYXJXaWR0aChmYW1pbHkp
KQogICAgICAgICBtYXhDaGFyV2lkdGggPSByb3VuZGYoc3R5bGUoKS0+Zm9udCgpLnByaW1hcnlG
b250KCktPm1heENoYXJXaWR0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmNwcAppbmRleCBkZGFhMTBlMjZkNjUwNjZiYzk2OGZlYmQzZmIyMTQ4OTA0
YzEyZTYwLi5hNTk5NWZiMzNlZmJkMTAxODdiN2RmZjc4MjllNTlhYjQ1ZDI4YTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCkBAIC00MCw3ICs0
MCw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIHN0YXRpYyBib29sIGF0dHJpYnV0ZVZh
bHVlSXNDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VycmVudENvbG9yLCAoImN1cnJlbnRDb2xv
ciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VycmVu
dENvbG9yLCAoImN1cnJlbnRDb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gdmFsdWUgPT0gY3VycmVudENvbG9yOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCBmMmU0YThhMzUx
MGVmZWZjYjYxYzc5ZDY5MWQwNTkwYzI0NGE4MTBhLi4zMjY4NGFjMDE5MWE3OGFmYzAzMmRlODJl
NDcyNjRhNzg3MWFkZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25F
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKICAgICAK
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYXV0b1ZhbCwgKCJhdXRvIikpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvUmV2ZXJzZSwgKCJhdXRvLXJldmVyc2UiKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9WYWwsICgiYXV0
byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1JldmVyc2UsICgiYXV0by1yZXZlcnNl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgcm90YXRlID0gZ2V0QXR0cmlidXRlKFNWR05hbWVzOjpyb3RhdGVBdHRyKTsKICAg
ICBpZiAocm90YXRlID09IGF1dG9WYWwpCiAgICAgICAgIHJldHVybiBSb3RhdGVBdXRvOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmluZGV4IDhlZGY4MTg0M2Fl
ODQxMTk0NjUzMjJmMWUyNzhmYzI5ZjM4ZTlkNGMuLjUzNzY1YzM3ODMxZjUwODc1N2NhZWE4NTBk
MDk5MGEyMTMyZmNjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAKQEAgLTI5MywxMCArMjkzLDEwIEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6dXBk
YXRlQW5pbWF0aW9uTW9kZSgpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01v
ZGUoY29uc3QgQXRvbWljU3RyaW5nJiBjYWxjTW9kZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGlzY3JldGUsICgiZGlzY3JldGUiKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpbmVhciwgKCJsaW5lYXIiKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBhY2VkLCAoInBh
Y2VkIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzcGxp
bmUsICgic3BsaW5lIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGlu
ZWFyLCAoImxpbmVhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcGFjZWQsICgicGFjZWQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNwbGluZSwgKCJzcGxpbmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGNhbGNNb2RlID09IGRpc2NyZXRl
KQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZURpc2NyZXRlKTsKICAgICBlbHNlIGlmIChj
YWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0zMTEsOCArMzExLDggQEAgdm9pZCBTVkdBbmltYXRpb25F
bGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNhbGNNb2RlKQogCiB2b2lk
IFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29uc3QgQXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVUeXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBjc3MsICgiQ1NTIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB4bWwsICgiWE1MIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBjc3MsICgiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB4bWws
ICgiWE1MIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChh
dHRyaWJ1dGVUeXBlID09IGNzcykKICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQXR0cmlidXRl
VHlwZUNTUzsKICAgICBlbHNlIGlmIChhdHRyaWJ1dGVUeXBlID09IHhtbCkKQEAgLTMzOSwxNCAr
MzM5LDE0IEBAIFN0cmluZyBTVkdBbmltYXRpb25FbGVtZW50Ojpmcm9tVmFsdWUoKSBjb25zdAog
CiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAg
IHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uOwog
fQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3Vt
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphY2N1bXVsYXRlQXR0
cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSAmJiBhbmltYXRpb25Nb2RlKCkgIT0gVG9Bbmlt
YXRpb247CiB9CkBAIC02NTgsNyArNjU4LDcgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50Ojph
ZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdAogc3Rh
dGljIGJvb2wgaW5oZXJpdHNGcm9tUHJvcGVydHkoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkK
IHsKICAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGluaGVyaXQsICgiaW5oZXJpdCIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5oZXJpdCwgKCJpbmhlcml0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0Vt
cHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJpdCB8fCAhdGFyZ2V0RWxlbWVudC0+aXNTdHlsZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggOWE0NGVmODM2NDAxNWRjZDBjMGM0NWI3ODE4
ODVhZDM0MmQyODYwNS4uNWM5NzNkNzFlNmU3NWI3NDMwNTFjMjlmMmFiM2VlZWJmOTc0ODE3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
Y3BwCkBAIC03OSwyNSArNzksMjUgQEAgUGFzc1JlZlB0cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdAogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3Ro
WElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBz
X2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3Ro
WCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0
aFkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlclhJZGVudGlmaWVyKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09y
ZGVyWCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlm
aWVyLCAoIlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yZGVyWSIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNW
R09yZGVyWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDY5NDc4NTUxODYxOGUwNTViODU1NmE2NTY2
Y2FiYTJmOTY5NDA5MGQuLjQ1MWEyMDNlMWJjMTY0MWFhNjhmZjU0NzMwNGNjZWIxODMyMzA2ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwCkBAIC02NywxMyArNjcsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQ+IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvbnMKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRM
ZW5ndGhYSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRM
ZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWUlkZW50aWZpZXIoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5p
dExlbmd0aFkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRl
bnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKaW5kZXggNTUyMzUxYTYzZTQw
ZWI4YjRhMTlmOWQzNmMyMTliM2U1ZWZjMmNiZC4uNjVlZTA3NjFlNmUwNTAyY2Y5NWQ0MWE5NmFl
NTJkNmVhZGZiNjY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dF
bGVtZW50LmNwcApAQCAtNjYsMTMgKzY2LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVEcm9wU2hhZG93
RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3RkRGV2aWF0aW9u
WElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBz
X2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblgiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzdGRE
ZXZpYXRpb25ZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25ZIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9u
WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19p
ZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwCmluZGV4IDg5ZmIzYTVkODZlMTM5NTg2ZDZjZjI5YTNhY2YxMzU4NDhkMTk5
N2MuLjJlNDMyYzc0M2NjYmFjMzIyYTg2MzJkNjk3ZGI4ZDNiZTlmZTM3ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC01OCwxMyAr
NTgsMTMgQEAgUGFzc1JlZlB0cjxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN0ZERldmlhdGlvblhJZGVudGlmaWVyKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0
ZERldmlhdGlvblgiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNf
aWRlbnRpZmllciwgKCJTVkdTdGREZXZpYXRpb25YIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdGREZXZpYXRpb25ZSWRlbnRpZmll
cigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdTdGREZXZpYXRpb25ZIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKaW5kZXggZDY4
OGQ4NTFlMzdjNWY3MDI3NjQ4NmMyNWYyNTllMTAwMjhhZDJhNC4uZDFlNDM0ZTlkMGY1YmVmYmQ2
ZGQ0ODBjMWUxZmU1MmJkMmZjYzkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmNwcApAQCAtNjAsMTMgKzYwLDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVN
b3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6cmFk
aXVzWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpyYWRpdXNZSWRlbnRp
ZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdSYWRpdXNZIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHUmFkaXVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXgg
Y2ViMmZiYWE1NzI2ZjZkMGZkNTM1N2MxMmQyNjkyYjA5OWFhMzg2Mi4uZTYyODIyMDM5NzhiMzI0
MTA3ZGUwYzAzY2EyNmFiOTMzMzI4OGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNzEsMTMgKzcxLDEzIEBAIFBh
c3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6Y3JlYXRlKGNvCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5l
bFVuaXRMZW5ndGhYIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBz
X2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjprZXJuZWxVbml0TGVu
Z3RoWUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVu
Z3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
c19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
dXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHAKaW5kZXggYWExNzc5OTRhYzk3YThkZGJlMzBkNGE2N2Q4YmQxYTVlMjRmYzZh
Ni4uNGZlMTZmNmIxMmIwZWQwOTlhZGVkYjIzYjc2YmJjYTJjYTcxOTMxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNjUsMTMgKzY1LDEz
IEBAIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJidWxlbmNlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVU
dXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VGcmVx
dWVuY3lYIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpiYXNlRnJlcXVlbmN5WUlkZW50aWZpZXIoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHQmFzZUZyZXF1ZW5jeVkiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXggOWI4MTY2N2UwZTVhNWMyZTBj
ZWNhMTZiMTM1OTgzNWUwNDU1NjlmNS4uM2U5OGQwOGJjYzBiMWRiYWQzZDBjYmFlZjBkNTUwOTQz
NTkzODE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtODQs
MTMgKzg0LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRmlsdGVyRWxlbWVudD4gU1ZHRmlsdGVyRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgU1ZHRmlsdGVyRWxlbWVudDo6ZmlsdGVyUmVzWElkZW50aWZpZXIoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHRmlsdGVyUmVz
WCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVy
LCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdG
aWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdGaWx0ZXJSZXNZIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
RmlsdGVyUmVzWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGFuZ1NwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCmlu
ZGV4IDQ0NTA4NDUzN2NjZGY2OWRhZWUzNDZjNGY0NTBmZjBjNTM3NGFkNzIuLmI4YjEwMTNkNjJj
YjdlYmRmNTFmMGExNDkyN2IyYWMyZWRhY2ZiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMYW5nU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3Bh
Y2UuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgU1ZHTGFuZ1NwYWNlOjpzZXRYbWxsYW5nKGNv
bnN0IEF0b21pY1N0cmluZyYgeG1sTGFuZykKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTGFuZ1Nw
YWNlOjp4bWxzcGFjZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NwYWNlKSB7Ci0gICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0U3RyaW5nLCAoImRl
ZmF1bHQiKSk7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBkZWZhdWx0U3RyaW5nLCAoImRlZmF1bHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0U3RyaW5nOwogICAgIH0KIApAQCAtNzEs
NyArNzEsNyBAQCBib29sIFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAKIHZvaWQgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4mIHN1cHBvcnRlZEF0dHJpYnV0ZXMp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhtbFByZWZpeCwgKCJ4
bWwiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhtbFByZWZpeCwg
KCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBRdWFs
aWZpZWROYW1lIGxhbmdXaXRoUHJlZml4ID0gWE1MTmFtZXM6OmxhbmdBdHRyOwogICAgIGxhbmdX
aXRoUHJlZml4LnNldFByZWZpeCh4bWxQcmVmaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuY3BwCmluZGV4IDJhNmViYjFlZjY0OGVhNjlkOGFlYjY3NGJlY2ZlOWNlMDU3MmZk
N2QuLmZkZTAzYTI5NzZiMzkwNWY3ZmJmN2UzOWIyNzBhY2E1MDQwMTE4YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTk0LDEzICs5NCwxMyBAQCBQYXNzUmVm
UHRyPFNWR01hcmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR01hcmtlckVsZW1lbnQ6
Om9yaWVudFR5cGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmllbnRUeXBlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50
aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHTWFya2VyRWxlbWVudDo6b3JpZW50
QW5nbGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudEFuZ2xlIikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JpZW50QW5nbGUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmll
cjsKIH0KIApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c3luY2hy
b25pemVPcmllbnRUeXBlKHZvaWQqIGNvbnRleHRFbGVtZW50KQogICAgIGlmIChvd25lclR5cGUt
Pm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJPcmllbnRBdXRvKQogICAgICAgICByZXR1
cm47CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXV0b1N0cmluZywg
KCJhdXRvIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhdXRvU3Ry
aW5nLCAoImF1dG8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
b3duZXJUeXBlLT5tX29yaWVudFR5cGUuc3luY2hyb25pemUob3duZXJUeXBlLCBvcmllbnRUeXBl
UHJvcGVydHlJbmZvKCktPmF0dHJpYnV0ZU5hbWUsIGF1dG9TdHJpbmcpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggODcxOTg1ZjcwNjgzZDNmODgwN2ViYWZhNWU1
Yzc0ODgwOWM0Mjc2Ni4uOWFjYTkwNjEwMjJmODk4YWNjMTQ2NTliODI5ZDc3ZDlhNDE5YWZjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHZv
aWQgU1ZHU1ZHRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3Vt
ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6OmNvbnRlbnRTY3JpcHRU
eXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlwdCIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlw
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG4gPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpjb250ZW50U2NyaXB0VHlw
ZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KQEAg
LTEzMyw3ICsxMzMsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldENvbnRlbnRTY3JpcHRUeXBl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTVkdF
bGVtZW50Ojpjb250ZW50U3R5bGVUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgi
dGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBuID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6Y29udGVudFN0
eWxlVHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggZTRkNmY2YmMwNDhi
ZDJmMDg5NjUxMzliOTNiN2JiZGY0MmI5NmY4OC4uODQ4ODFlM2IyYzU4ZDQ0OTM4YWQ0M2E5ODJl
YjE1M2ZiMGE2ZjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0
RGlzYWJsZWQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkg
Y29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVm
YXVsdFZhbHVlLCAoInRleHQvY3NzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuID0gZ2V0QXR0
cmlidXRlKFNWR05hbWVzOjp0eXBlQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZh
dWx0VmFsdWUgOiBuOwogfQpAQCAtODAsNyArODAsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6
c2V0VHlwZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkaWEoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgiYWxs
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0
VmFsdWUsICgiYWxsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om1lZGlh
QXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCA4YjcwNDFm
ODlhOWEyNzc2OTJhMDQ4NDk0YjJjZWQxNWYxZDI3ZjliLi41ODdkM2Y3YzYxZDhlMDQ4MzUxZTU2
ZDI1ZWY5ZThkMGRhZjZhMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVt
ZW50Ojpjb2xsZWN0U3R5bGVGb3JBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUs
CiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyaWJ1dGUubmFtZSgpKSkKICAgICAg
ICAgU1ZHU3R5bGVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKGF0dHJpYnV0ZSwg
c3R5bGUpOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0ZS5uYW1lKCkubWF0Y2hlcyhYTUxOYW1lczo6
c3BhY2VBdHRyKSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgcHJlc2VydmVTdHJpbmcsICgicHJlc2VydmUiKSk7CisgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmVzZXJ2ZVN0cmluZywgKCJwcmVzZXJ2ZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgICAgICBpZiAoYXR0
cmlidXRlLnZhbHVlKCkgPT0gcHJlc2VydmVTdHJpbmcpCiAgICAgICAgICAgICBhZGRQcm9wZXJ0
eVRvQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQ
cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKaW5kZXggMDhhYjg1MmYwYjkyMTdmNzA4
Mzc3NDk3MDc2NGViNDg2YzJjYWY0ZC4uM2MxZTc4MDM0YWVjMzY2Zjk1ZjY5ZTJmNmVjZjU5YWVl
M2E4MTFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC04NywxOSArODcsMTkg
QEAgU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1ZpZXdTcGVjOjp2aWV3Qm94SWRlbnRpZmllcigpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdWaWV3U3BlY1ZpZXdCb3hBdHRyaWJ1dGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1ZpZXdCb3hBdHRyaWJ1dGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdWaWV3U3BlYzo6cHJlc2VydmVB
c3BlY3RSYXRpb0lkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0
cmlidXRlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnRyYW5zZm9ybUlkZW50aWZp
ZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHVmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdWaWV3U3BlY1RyYW5zZm9y
bUF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc19pZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IDFlM2IwMTY0MWYwMzU4MThkZTcxMjM5Mjk1MTA4
YzAyZmE5YTk3M2UuLjJiNGUwZDU1YmFlZjc0NjhhZmRhMWE0YzI3Nzk0NDdlZjBiM2M5ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBA
IC0yODAsNyArMjgwLDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQ2xvY2tWYWx1
ZShjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgCiAgICAgU3RyaW5nIHBhcnNlID0gZGF0YS5zdHJp
cFdoaXRlU3BhY2UoKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBpbmRlZmluaXRlVmFsdWUsICgiaW5kZWZpbml0ZSIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5kZWZpbml0ZVZhbHVlLCAoImluZGVmaW5pdGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKHBhcnNlID09
IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7
CiAKQEAgLTYzMiw4ICs2MzIsOCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc0Zyb3plbigpIGNv
bnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6cmVzdGFy
dCgpIGNvbnN0CiB7ICAgIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBuZXZlciwgKCJuZXZlciIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgd2hlbk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0aXZlIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZlciIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgd2hlbk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0aXZlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAgICAg
aWYgKHZhbHVlID09IG5ldmVyKQogICAgICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAtNjQ0
LDcgKzY0NCw3IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0
YXJ0KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxlbWVu
dDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGZyZWV6ZSwgKCJmcmVlemUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGZyZWV6ZSwgKCJmcmVlemUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RH
ZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmZpbGxBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gZnJl
ZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9CkBAIC02NzcsNyArNjc3LDcgQEAgU01J
TFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KCkgY29uc3QKICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6dW5yZXNvbHZlZCgpOwogCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwg
KCJpbmRlZmluaXRlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBpbmRlZmluaXRlVmFsdWUsICgiaW5kZWZpbml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICBpZiAodmFsdWUgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAg
ICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKICAgICBib29sIG9rOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggYjRmZDhlZmVmNzdh
NDg3NjYzNWQ0YmUzZGYxYzM4Njg1ZTViMzU5Ni4uZTZkM2M1Y2E1ZDRhN2I4NmU5NTdkZjkyMTNm
NjlmNDZmYmYyZDcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3MpCiAKIEludGVybmFsU2V0
dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OmZyb20oUGFnZSogcGFnZSkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJJbnRlcm5hbFNldHRpbmdzIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkludGVybmFsU2V0
dGluZ3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKCFT
dXBlclR5cGU6OmZyb20ocGFnZSwgbmFtZSkpCiAgICAgICAgIFN1cGVyVHlwZTo6cHJvdmlkZVRv
KHBhZ2UsIG5hbWUsIGFkb3B0UmVmKG5ldyBJbnRlcm5hbFNldHRpbmdzKHBhZ2UpKSk7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEludGVybmFsU2V0dGluZ3MqPihTdXBlclR5cGU6OmZyb20ocGFn
ZSwgbmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNw
cAppbmRleCAxMmRlZmU1ODY3NzVmMDBhZTk0ZGNiNmQ1ZjU5MzM5NDMwYzFhNGFkLi43ZmFhZGY1
ODIzZDhhMTUxMWU1YzRkNjhhMGE3ZGU0NjQ3ZTBkYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL1hNTFRyZWVCdWlsZGVyLmNwcApAQCAtMTk4LDE0ICsxOTgsMTQgQEAgdm9pZCBY
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1hNTERlY2xhcmF0aW9uKGNvbnN0IEF0b21pY1hNTFRva2Vu
JiB0b2tlbikKIAogdm9pZCBYTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0RPQ1RZUEUoY29uc3QgQXRv
bWljWE1MVG9rZW4mIHRva2VuKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCB4aHRtbFRyYW5zaXRpb25hbCwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlv
bmFsLy9FTiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeGh0bWwx
MSwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIikpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCB4aHRtbFN0cmljdCwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeGh0bWxG
cmFtZXNldCwgKCItLy9XM0MvL0RURCBYSFRNTCAxLjAgRnJhbWVzZXQvL0VOIikpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbEJhc2ljLCAoIi0vL1czQy8vRFRE
IFhIVE1MIEJhc2ljIDEuMC8vRU4iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHhodG1sTWF0aE1MLCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMSBwbHVzIE1hdGhNTCAy
LjAvL0VOIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4aHRtbE1h
dGhNTFNWRywgKCItLy9XM0MvL0RURCBYSFRNTCAxLjEgcGx1cyBNYXRoTUwgMi4wIHBsdXMgU1ZH
IDEuMS8vRU4iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1s
TW9iaWxlLCAoIi0vL1dBUEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEuMC8vRU4iKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sVHJhbnNpdGlvbmFsLCAoIi0v
L1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCB4aHRtbDExLCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHhodG1sU3RyaWN0LCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCB4aHRtbEZyYW1lc2V0LCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMCBG
cmFtZXNldC8vRU4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHhodG1sQmFzaWMsICgiLS8vVzNDLy9E
VEQgWEhUTUwgQmFzaWMgMS4wLy9FTiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeGh0bWxNYXRoTUws
ICgiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIHBsdXMgTWF0aE1MIDIuMC8vRU4iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHhodG1sTWF0aE1MU1ZHLCAoIi0vL1czQy8vRFREIFhIVE1MIDEuMSBwbHVzIE1h
dGhNTCAyLjAgcGx1cyBTVkcgMS4xLy9FTiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeGh0bWxNb2Jp
bGUsICgiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4wLy9FTiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmICghZmFpbE9uVGV4dCgpKQogICAg
ICAgICByZXR1cm47CkBAIC0zMzAsMTEgKzMzMCwxMSBAQCB2b2lkIFhNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzQXR0cmlidXRlcyhjb25zdCBBdG9taWNYTUxUb2tlbiYgdG9rZW4sIE5vZGVTdGFja0l0
ZQogCiB2b2lkIFhNTFRyZWVCdWlsZGVyOjpwcm9jZXNzWE1MRW50aXR5KGNvbnN0IEF0b21pY1hN
TFRva2VuJiB0b2tlbikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
YW1wLCAoImFtcCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXBv
cywgKCJhcG9zIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBndCwg
KCJndCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHQsICgibHQi
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHF1b3QsICgicXVvdCIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYW1wLCAoImFtcCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgYXBvcywgKCJhcG9zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBndCwg
KCJndCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHQsICgibHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHF1b3QsICgicXVvdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYW1wUywgKEFTQ0lJTGl0ZXJhbCgiJiIpKSk7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFwb3NTLCAoQVNDSUlMaXRlcmFsKCIn
IikpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZ3RTLCAoQVNDSUlMaXRlcmFs
KCI+IikpKTsK
</data>
<flag name="review"
          id="187081"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>