<?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>211264</bug_id>
          
          <creation_ts>2020-04-30 16:18:38 -0700</creation_ts>
          <short_desc>Introduce MainThreadNeverDestroyed / MainThreadLazyNeverDestroyed</short_desc>
          <delta_ts>2020-05-03 21:11:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211365</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>211355</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>dstockwell</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647630</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 16:18:38 -0700</bug_when>
    <thetext>They ensure that access and construction are done in the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647708</commentid>
    <comment_count>1</comment_count>
      <attachid>398139</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 19:06:25 -0700</bug_when>
    <thetext>Created attachment 398139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647710</commentid>
    <comment_count>2</comment_count>
      <attachid>398141</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 19:10:44 -0700</bug_when>
    <thetext>Created attachment 398141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647717</commentid>
    <comment_count>3</comment_count>
      <attachid>398141</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-30 19:24:50 -0700</bug_when>
    <thetext>Comment on attachment 398141
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647718</commentid>
    <comment_count>4</comment_count>
      <attachid>398141</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-30 19:35:00 -0700</bug_when>
    <thetext>Comment on attachment 398141
Patch

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

&gt; Source/WebCore/html/InputTypeNames.cpp:37
&gt;      return name;

It seems enough to just add ASSERT(isMainThread()).
What&apos;t the difference?
The return type of this function is just AtomString, not MainThreadNeverDestroyed&lt;const AtomString&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647721</commentid>
    <comment_count>5</comment_count>
      <attachid>398141</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 19:42:53 -0700</bug_when>
    <thetext>Comment on attachment 398141
Patch

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

&gt;&gt; Source/WebCore/html/InputTypeNames.cpp:37
&gt;&gt;      return name;
&gt; 
&gt; It seems enough to just add ASSERT(isMainThread()).
&gt; What&apos;t the difference?
&gt; The return type of this function is just AtomString, not MainThreadNeverDestroyed&lt;const AtomString&gt;.

MainThreadNeverDestroyed declaratively says that this should be accessed from the main thread. And `ASSERT(isMainThread())` is automatically inserted by MainThreadNeverDestroyed, instead of manually inserting it to every places. So I think this prevents us from using AtomString from the main thread accidentally, and this tells good thread-affinity information to readers of the code explicitly :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647725</commentid>
    <comment_count>6</comment_count>
      <attachid>398146</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 19:47:02 -0700</bug_when>
    <thetext>Created attachment 398146
Patch

Patch for landing, resolved Saam&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647731</commentid>
    <comment_count>7</comment_count>
      <attachid>398148</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 20:02:52 -0700</bug_when>
    <thetext>Created attachment 398148
Patch

Patch for landing, resolved Saam&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647741</commentid>
    <comment_count>8</comment_count>
      <attachid>398152</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 20:26:31 -0700</bug_when>
    <thetext>Created attachment 398152
Patch

Patch for landing, resolved Saam&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647752</commentid>
    <comment_count>9</comment_count>
      <attachid>398155</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-30 20:48:37 -0700</bug_when>
    <thetext>Created attachment 398155
Patch

Patch for landing, fixing iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647794</commentid>
    <comment_count>10</comment_count>
      <attachid>398155</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-01 01:34:54 -0700</bug_when>
    <thetext>Comment on attachment 398155
Patch

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

&gt; Source/WTF/wtf/text/AtomString.cpp:137
&gt; +WTF_EXPORT_PRIVATE MainThreadLazyNeverDestroyed&lt;const AtomString&gt; nullAtomData;
&gt; +WTF_EXPORT_PRIVATE MainThreadLazyNeverDestroyed&lt;const AtomString&gt; emptyAtomData;

Crash looks like due to nullAtom and emptyAtom. But they are specially OK Atoms since those definitions are the same and can be shared between multiple threads (since they are not actually registered in AtomStringTable).
I&apos;ll slightly modify to handle them specially (just using LazyNeverDestroyed&lt;&gt;) to see the results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647795</commentid>
    <comment_count>11</comment_count>
      <attachid>398168</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-01 01:42:15 -0700</bug_when>
    <thetext>Created attachment 398168
Patch

Patch for landing, fixing Windows builds and Debug crash due to nullAtom &amp; emptyAtom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647878</commentid>
    <comment_count>12</comment_count>
      <attachid>398192</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-01 09:50:27 -0700</bug_when>
    <thetext>Created attachment 398192
Patch

Patch for landing, fixing Windows builds and Debug crash due to nullAtom &amp; emptyAtom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647989</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-01 12:47:47 -0700</bug_when>
    <thetext>Committed r261013: &lt;https://trac.webkit.org/changeset/261013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647991</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-01 12:48:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/62742993&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398139</attachid>
            <date>2020-04-30 19:06:25 -0700</date>
            <delta_ts>2020-04-30 19:10:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430190624.patch</filename>
            <type>text/plain</type>
            <size>166389</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmY3Njk1MGY5YzJhODZjMDQxNjIwOGIxNWQ5MzZlNzZjNTE1Yzgx
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ6Ok1haW5U
aHJlYWROZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDo6b3BlcmF0b3IgVCYpOgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ6OmdldCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3BlcmF0
b3ItPik6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3BlcmF0b3Ig
Y29uc3QgVCYgY29uc3QpOgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ6
OmdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3Bl
cmF0b3ItPiBjb25zdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ6OmNvbnN0cnVjdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ry
b3llZDo6Z2V0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDo6
b3BlcmF0b3ItPik6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ6
Om9wZXJhdG9yIGNvbnN0IFQmIGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlO
ZXZlckRlc3Ryb3llZDo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlO
ZXZlckRlc3Ryb3llZDo6b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgICogd3RmL3RleHQvQXRv
bVN0cmluZy5jcHA6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0
LTI5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtXaW5dIERlYWRsb2NrIGluIFdURjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0
d29ya1Byb2Nlc3MuZXhlIGlzIGV4aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2Fh
MWRjNjM2MjkzYmMyN2ZhNzhiYTVjNGVlLi5kMGY0NDY4MjZmNjM4ZmJhOTc2MTc1MGJkYzNlY2Fk
ZDllMjIxZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjY0IEBACisyMDIwLTA0LTMwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZCAvIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4gQWRkaW5nIGFzc2VydGlvbnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxl
cy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAg
ICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
aXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFjazo6a2luZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrOjpjb250ZW50SGludCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6
CisgICAgICAgIChXZWJDb3JlOjphcnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgor
ICAgICAgICAqIGRvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1
c3RvbUVsZW1lbnROYW1lKToKKyAgICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICog
ZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAg
ICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxl
KToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJpbnRXcmFwcGVy
RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAqIGh0bWwvQXV0b2NhcGl0YWxpemUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yQXV0b2NhcGl0YWxpemVUeXBlKToKKyAgICAgICAgKiBo
dG1sL0F1dG9maWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29udGFjdFRva2VuKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtS2V5R2VuZXJhdG9y
Ojpmb3JtS2V5KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3TGluayBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdW1tYXJ5U2xv
dE5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9WYWxpZERpclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnRydWVOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZhbHNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGFpbnRleHRPbmx5
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxl
bWVudDo6YXV0b2NvbXBsZXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6bG9hZGluZ0ZvckJp
bmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE91
dHB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNlbGxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50OjpzY29w
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpkaXJlY3Rpb25TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6Cisg
ICAgICAgICogaHRtbC9JbnB1dE1vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2Rl
TmFtZXM6Om5vbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnRlbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dE1vZGVOYW1lczo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVz
OjplbWFpbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6bnVtZXJpYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZGVjaW1hbCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dE1vZGVOYW1lczo6c2VhcmNoKToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZU5h
bWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpidXR0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZU5hbWVzOjpjb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmVtYWlsKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZU5hbWVzOjpmaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpoaWRkZW4pOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjptb250aCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6bnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjpwYXNzd29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmFkaW8p
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnJhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZU5hbWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6c2VhcmNoKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpzdWJt
aXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6dGltZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6
dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjp3ZWVrKToKKyAgICAgICAg
KiBodG1sL01lZGlhQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0
YXRlV2FpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0YXRlUGxheWluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0YXRlRW5kZWQpOgorICAgICAgICAqIGh0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUpOgorICAgICAgICAq
IGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
RmllbGRJbnB1dFR5cGU6OmNyZWF0ZURhdGFMaXN0RHJvcGRvd25JbmRpY2F0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVDb250YWluZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbik6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzTWFy
a2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRyb2wpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OlRleHRDb250cm9sUGxhY2Vob2xkZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OllvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6dHJ5Q3JlYXRl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29udHJvbHNSb290RWxlbWVudDo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjptYWlu
RGVzY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6dHJhbnNsYXRpb25L
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3Jk
KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y2FwdGlv
bnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y2hhcHRlcnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFk
YXRhS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpmb3JjZWRLZXl3b3JkKToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1
ZTo6Y3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3Vl
OjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6cmVidWlsZERpc3BsYXlUcmVlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVFJlZ2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcyk6CisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrUmVnaW9uU2hhZG93UHNl
dWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFjazo6Y2FwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNpZ25L
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb2N1c0Rp
cmVjdGlvbkZvcktleSk6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UXVpcmtzOjpzaG91bGRCeXBhc3NCYWNrRm9yd2FyZENhY2hlIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmV2
ZW50TmFtZUFsbCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6ZXZlbnROYW1lQWxsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjphbHRlcm5hdGVG
YW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbk9jdGV0U3RyZWFtKToKKyAgICAgICAgKFdl
YkNvcmU6OnRleHRQbGFpbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZh
dGVGYWlyUGxheVN0cmVhbWluZzo6c2luZk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6bWV0YWRhdGFUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnNpbWlsYXJGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c3lzdGVtRm9udFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9p
b3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRDdXN0
b21GYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpsYXN0UmVz
b3J0RmFsbGJhY2tGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6cGxhdGZvcm1B
bHRlcm5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVzcG9uc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RIVFRQU3Rh
dHVzVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBsZXhMaW5lTGF5b3V0OjpjaGVja0xpbmVzRm9yVGV4dE92ZXJm
bG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlM
aW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzIGNvbnN0KToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlv
bkVsZW1lbnQ6OnNldENhbGNNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9u
RWxlbWVudDo6aXNBZGRpdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRp
b25FbGVtZW50Ojppc0FjY3VtdWxhdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmluaGVy
aXRzRnJvbVByb3BlcnR5KToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhIGNvbnN0KToKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVt
ZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OnJlc3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OmZpbGwg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50IGNv
bnN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVl
RnVuY3Rpb25JbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkNvbG9yRnVu
Y3Rpb246OmNvbG9yRnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvcjo6
YWRqdXN0Rm9ySW5oZXJpdGFuY2UgY29uc3QpOgorCiAyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgU29tZSBIVE1MIGVsZW1lbnQgY3JpdGlj
YWwgcGF0aHMgaW5jbHVkZSBBdG9tU3RyaW5nIG1hdGVyaWFsaXphdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFjZGM3MTMyYjlmNzg1NTkyYzk4ZmQ3
M2IxZDM2ZmU4MGI5YzM0My4uZWMxOTljOGJmYjdlMGJhMTY4MzQyNjJiNzYxYjQ0YjAyNzlmZmQ5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MDQsNiAr
NzA0LDcgQEAKIAkJRTE1NTU2RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvZ3Jh
cGhpY1V0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTU1NkY0
MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwMEU1MjEyMDNENjQ1RjAwREE3OUJFIC8qIFVuaXF1ZUFy
cmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuaXF1ZUFycmF5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMDRDQ0I5MjQ1QkE3MTUwMDMwOTA0MSAvKiBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMTFGQjE1MUYwQTU2
OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUaHJlYWRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMTFGQjE2MUYwQTU2OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzE0OUEzQTIyOEJEQ0FCMDBCRkE2QzcgLyogQ29uY3VycmVudEJ1ZmZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25jdXJyZW50QnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwOTEsNiArMTA5Miw3IEBACiAJCQkJ
N0E2RUJBMzIyMDc0NkMzMzAwNEY5QzQ0IC8qIE1hY2hTZW5kUmlnaHQuaCAqLywKIAkJCQlBOEE0
NzJDNjE1MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgKi8sCiAJCQkJQThBNDcyQzcx
NTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuaCAqLywKKwkJCQlFMzA0Q0NCOTI0NUJBNzE1
MDAzMDkwNDEgLyogTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmggKi8sCiAJCQkJMUEyMzNDN0Mx
N0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oICovLAogCQkJCTMwNENBNEU0MTM3NTQzN0VC
RTkzMUQwMyAvKiBNYXJrYWJsZS5oICovLAogCQkJCUE4QTQ3MkM5MTUxQTgyNUIwMDQxMjNGRiAv
KiBNYXRoRXh0cmFzLmggKi8sCkBAIC0xNDM5LDggKzE0NDEsOCBAQAogCQlBOEE0NzM0RjE1MUE4
MjVCMDA0MTIzRkYgLyogaWN1ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQk1MkIyMjhDMTI0NThEQzgyMDA3NTNEOTEgLyogSUNVSGVscGVycy5oICovLAog
CQkJCUE4QTQ3MzUwMTUxQTgyNUIwMDQxMjNGRiAvKiBDb2xsYXRvcklDVS5jcHAgKi8sCisJCQkJ
NTJCMjI4QzEyNDU4REM4MjAwNzUzRDkxIC8qIElDVUhlbHBlcnMuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQK
aW5kZXggZDdhOWU5NjliYjQ4ZGZhNjI2M2EyNzAyNzE1NjhlMDkzYTM2NjQ0MC4uMTNmZDVmNTJk
ODYxZGY0OGU3OGEwN2Q4MmE0MGMzYjVlYThiMjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAg
LTEyOCw2ICsxMjgsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgTWFjaFNlbmRSaWdo
dC5oCiAgICAgTWFpblRocmVhZC5oCiAgICAgTWFpblRocmVhZERhdGEuaAorICAgIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZC5oCiAgICAgTWFsbG9jUHRyLmgKICAgICBNYXJrYWJsZS5oCiAgICAg
TWF0aEV4dHJhcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU5NjM0NGFjZjYzMjRjODU4ZGJmNWVhZmRlZDcxYWZkMDExMjc2NjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaApA
QCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZCk7CisgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CitwdWJsaWM6CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQo
QXJncyYmLi4uIGFyZ3MpCisgICAgICAgIDogbV9kYXRhKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgfQorCisg
ICAgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkKE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCYmIG90
aGVyKQorICAgICAgICA6IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkpCisgICAgeworICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIH0KKworICAgIG9wZXJhdG9yIFQmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBt
X2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCYgZ2V0KCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBtX2RhdGEuZ2V0KCk7CisgICAgfQor
CisgICAgVCogb3BlcmF0b3ItPigpCisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgICAgICByZXR1cm4gJm1fZGF0YS5nZXQoKTsKKyAgICB9CisKKyAgICBvcGVyYXRv
ciBjb25zdCBUJigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAgIGNvbnN0IFQmIGdl
dCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAgIGNvbnN0IFQqIG9wZXJhdG9yLT4o
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAg
cmV0dXJuICZtX2RhdGEuZ2V0KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIE5ldmVyRGVzdHJv
eWVkPFQ+IG1fZGF0YTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQpOworICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwor
cHVibGljOgorICAgIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQoKSA9IGRlZmF1bHQ7CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQgY29uc3RydWN0KEFyZ3Mm
Ji4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAg
ICAgbV9kYXRhLmNvbnN0cnVjdChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgIH0K
KworICAgIG9wZXJhdG9yIFQmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgICAgIHJldHVybiBtX2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCYgZ2V0KCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBt
X2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCogb3BlcmF0b3ItPigpCisgICAgeworICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gJm1fZGF0YS5nZXQoKTsK
KyAgICB9CisKKyAgICBvcGVyYXRvciBjb25zdCBUJigpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAg
IH0KKworICAgIGNvbnN0IFQmIGdldCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAg
IGNvbnN0IFQqIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICAgICAgcmV0dXJuICZtX2RhdGEuZ2V0KCk7CisgICAgfQorCitwcml2
YXRlOgorICAgIExhenlOZXZlckRlc3Ryb3llZDxUPiBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXVEY7CisKK3VzaW5nIFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDsKK3Vz
aW5nIFdURjo6TWFpblRocmVhZE5ldmVyRGVzdHJveWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmlu
Zy5jcHAKaW5kZXggNzA2OGY1ZmZhNDgyZGIwNzA1ODUxZWNmNGQyZmQ1M2EzZmY3NGJkMS4uN2Yx
ODYxNjNkMzgxMjZiMjM0YTQ1ZWFjYzZhZDdlNTcxZDVlNDA0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0
b21TdHJpbmcuY3BwCkBAIC0xMzMsMTEgKzEzMywxMSBAQCB2b2lkIEF0b21TdHJpbmc6OnNob3co
KSBjb25zdAogCiAjZW5kaWYKIAotV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUg
TGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKLVdURl9FWFBPUlRf
UFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7Ci1XVEZf
RVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbG5zQXRvbURh
dGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVh
ZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOworV1RG
X0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc3RhckF0b21EYXRhOworV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sQXRvbURhdGE7CitXVEZfRVhQT1JUX1BS
SVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxu
c0F0b21EYXRhOwogCiB2b2lkIEF0b21TdHJpbmc6OmluaXQoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21T
dHJpbmcuaAppbmRleCA4OGI0ZWJhYzMyNzFiZDNlYjNjMTQxM2Q1ZjQ4MGJhM2ViY2MyMmQ0Li5m
NjQxOTQ5ZTExOTA5ZjY0OWMwMjg0MTg0YzlmNjAxNTBlNTMyZTg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0
b21TdHJpbmcuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L01h
aW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiAjaWYgT1MoV0lORE9XUykKQEAgLTI5MCwxMSArMjkxLDExIEBAIGlubGluZSBBdG9tU3Ry
aW5nOjpBdG9tU3RyaW5nKE5TU3RyaW5nICpzdHJpbmcpCiAKIC8vIERlZmluZSBleHRlcm5hbCBn
bG9iYWwgdmFyaWFibGVzIGZvciB0aGUgY29tbW9ubHkgdXNlZCBhdG9tIHN0cmluZ3MuCiAvLyBU
aGVzZSBhcmUgb25seSB1c2FibGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi1leHRlcm4gV1RGX0VY
UE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7
Ci1leHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBlbXB0eUF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc3RhckF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFU
RSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7Ci1leHRlcm4gV1RG
X0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4bWxuc0F0b21E
YXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BS
SVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbXB0
eUF0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQ
T1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB4bWxBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxuc0F0b21EYXRhOwogCiBpbmxpbmUg
Y29uc3QgQXRvbVN0cmluZyYgbnVsbEF0b20oKSB7IHJldHVybiBudWxsQXRvbURhdGEuZ2V0KCk7
IH0KIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBlbXB0eUF0b20oKSB7IHJldHVybiBlbXB0eUF0
b21EYXRhLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBs
YXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVu
dC5jcHAKaW5kZXggNWM4NGM4NWVjNzcxZGQ1ODc3OWI0Mzk2NTg2NTgzY2JiOWU1YzBiMS4uYmQw
NTQ3NGIwM2QwYzgwOWQzN2IxM2VlMWViNzJjYmI5ZTQxZDk1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1
ZGUgIldlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaCIKIAogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIApAQCAtMzcsOCArMzcsOCBAQCBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudCk7
CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmdGb3JQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eShib29sIGF2YWlsYWJsZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5v
dEF2YWlsYWJsZVN0cmluZygibm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxhYmxlIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbm90QXZhaWxhYmxlU3RyaW5nKCJub3QtYXZhaWxhYmxlIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIGF2YWlsYWJsZSA/IGF2
YWlsYWJsZVN0cmluZyA6IG5vdEF2YWlsYWJsZVN0cmluZzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3Bw
CmluZGV4IDdjNTQ2ZGM2MDBiMTJjNTc2ZGQwODI3OWFiN2M2NjdmYTU1ZmI5MTMuLjdhM2VlN2Q5
MWQ1NTg3MDlmYzQ3OTNhODM4ZTg5NDcxN2FjNjQwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcApA
QCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KLSNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKICNpZiBIQVZFKEZBSVJQTEFZ
U1RSRUFNSU5HX0NFTkNfSU5JVERBVEEpCkBAIC0yNTgsMTkgKzI1OCwxOSBAQCB2b2lkIEluaXRE
YXRhUmVnaXN0cnk6OnJlZ2lzdGVySW5pdERhdGFUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGluaXRE
YXRhVHlwZSwgSW5pdAogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5OjpjZW5j
TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoImNlbmMiKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMi
KSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMiKSB9OwogICAgIHJldHVy
biBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5Ojp3ZWJtTmFt
ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgid2VibSIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIndlYm0iKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApp
bmRleCA2MGVhNmU3ZDEwNTYzZWUxNzk0MGZjNTkzM2U4MzNlOWEwY2ZhZDFhLi5iNGJjNTJlYjg3
MGRjODU2NWJjMTBlMTcyYmRjOThkNTBiMTY1MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAg
LTM3LDMxICszNywzMiBAQAogI2luY2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgIlRleHRU
cmFja0xpc3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvVVVJRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIE1l
ZGlhQ29udHJvbHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXV0b21hdGljOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25seUtleXdvcmQoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JjZWRPbmx5
KCJmb3JjZWQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZE9u
bHkoImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBmb3JjZWRPbmx5OwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYWx3YXlz
T25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGFsd2F5c09uKCJhbHdheXMtb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGFsd2F5c09uOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWFu
dWFsS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGFsd2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBh
bHdheXNPbigibWFudWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBhbHdheXNPbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggZDBiMmNiOWZkMGFhMWJk
MWYyOWFjZWRjNWI2MDkzOTc3NGExMWNiMC4uYmIxZjAzZGM2MGQyODg5NDBjZTI5NDZkY2UwNjll
ZjFhOTkwN2EyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwOSw4ICsxMDksOCBAQCBNZWRpYVN0cmVh
bVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2aWRlb0tpbmQoInZp
ZGVvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXVkaW9LaW5kKCJhdWRpbyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9wcml2YXRlLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBh
dWRpb0tpbmQ7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhU3RyZWFt
VHJhY2s6OmxhYmVsKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFTdHJlYW1UcmFj
azo6Y29udGVudEhpbnQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRldGFpbEhpbnQoImRl
dGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQoInRleHQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHNwZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBkZXRhaWxIaW50KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0
ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vdGlvbkhp
bnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3
aXRjaCAobV9wcml2YXRlLT5jb250ZW50SGludCgpKSB7CiAgICAgY2FzZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6SGludFZhbHVlOjpFbXB0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggNmEwZGYwNGY1MWZi
Yjk4ZjllMjgyOTkyMGJjNWVmMDEzYmFlOWNhZC4uMzI2MjY1MGJlNTdkN2IwZDQ2YzJlNjRjNWU0
YmRkNzFjNGVmYWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlclZpZXcu
aD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxMyArNDMsMTMgQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFJUQ0RhdGFDaGFubmVsKTsKIAogc3RhdGljIGNvbnN0IEF0b21TdHJp
bmcmIGJsb2JLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gYmxvYigiYmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJsb2IoImJs
b2IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGJsb2I7
CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhcnJheWJ1ZmZlcktleXdvcmQoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXli
dWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJy
YXlidWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGFycmF5YnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwMmM3NTcwMGE4NWIz
YzcyNTY2OTc3YmEyZGJjMWUzYWY4MjkxNGI1Li5jMmZlNTA4ODk2Mzc1NjljZTk4YjI3NzViMmZj
ODI4ZWViZGQ3MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQAog
I2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFj
dGVyTmFtZXMuaD4KIApAQCAtMzQxMCw3ICszNDEwLDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25TdGF0dXMoKSBjb25zdAogCiBjb25zdCBTdHJp
bmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdExp
dmVSZWdpb25SZWxldmFudCgiYWRkaXRpb25zIHRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiBy
ZWxldmFudCA9IGdldEF0dHJpYnV0ZShhcmlhX3JlbGV2YW50QXR0cik7CiAKICAgICAvLyBEZWZh
dWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCmluZGV4IGZkMTQyZjdkZWFiMDc0OGU5NmExOWM1YjBk
YWVkOTA2MjcwZDMwYjIuLmQzYjBjMzBhMTk5YWUxOWM2ZTllYTZmZjI4YzQ1Y2Y5ZDY3OTFlOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQcm9wZXJ0eU1hcC5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKICNpbmNsdWRlICJDU1NWYXJpYWJsZURhdGEuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNTAsMTUgKzUwLDE1IEBAIGNvbnN0IENvbnN0YW50UHJvcGVydHlNYXA6
OlZhbHVlcyYgQ29uc3RhbnRQcm9wZXJ0eU1hcDo6dmFsdWVzKCkgY29uc3QKIAogY29uc3QgQXRv
bVN0cmluZyYgQ29uc3RhbnRQcm9wZXJ0eU1hcDo6bmFtZUZvclByb3BlcnR5KENvbnN0YW50UHJv
cGVydHkgcHJvcGVydHkpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHNhZmVBcmVhSW5zZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0UmlnaHROYW1lKCJzYWZlLWFyZWEtaW5zZXQtcmlnaHQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRCb3R0b21OYW1lKCJzYWZlLWFyZWEtaW5z
ZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0TGVmdE5hbWUoInNhZmUt
YXJlYS1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRUb3BOYW1l
KCJmdWxsc2NyZWVuLWluc2V0LXRvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0
TGVmdE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNj
cmVlbkluc2V0Qm90dG9tTmFtZSgiZnVsbHNjcmVlbi1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGZ1bGxzY3JlZW5JbnNldFJpZ2h0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1yaWdodCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb25OYW1lKCJmdWxsc2Ny
ZWVuLWF1dG8taGlkZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHNhZmVBcmVhSW5zZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgic2FmZS1hcmVhLWlu
c2V0LXJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNl
dEJvdHRvbU5hbWUoInNhZmUtYXJlYS1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0TGVmdE5hbWUoInNhZmUtYXJlYS1pbnNldC1sZWZ0
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0VG9wTmFt
ZSgiZnVsbHNjcmVlbi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmdWxsc2NyZWVuSW5zZXRMZWZ0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1sZWZ0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0Qm90dG9tTmFtZSgiZnVs
bHNjcmVlbi1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBm
dWxsc2NyZWVuSW5zZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtcmlnaHQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbk5hbWUo
ImZ1bGxzY3JlZW4tYXV0by1oaWRlLWR1cmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewogICAgIGNhc2UgQ29uc3RhbnRQ
cm9wZXJ0eTo6U2FmZUFyZWFJbnNldFRvcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM2
ZDk1OGIyNWQxYmY1MzZjMjc0YjdlNTJmOWM1M2I1YWYyYjVmMGMuLmEyZTVlODkzM2VhOWU4NDI4
YzI2YWY0NTI0NzFiNTZkNmZjNTFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjUy
LDcgKzI1Miw3IEBACiAjaW5jbHVkZSA8Y3RpbWU+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcu
aD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgpAQCAtMTI1OSw3ICsxMjU5LDcgQEAgQ3VzdG9tRWxl
bWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIERvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnRO
YW1lKGNvbnN0IEF0b20KICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIGNvbnN0IGF1dG8mIGFubm90
YXRpb25YbWxMb2NhbE5hbWUgPSBNYXRoTUxOYW1lczo6YW5ub3RhdGlvbl94bWxUYWctPmxvY2Fs
TmFtZSgpOwogI2Vsc2UKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYW5ub3RhdGlvblhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lKCJhbm5vdGF0aW9uLXht
bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICNlbmRpZgogCiAgICAgaWYg
KGxvY2FsTmFtZSA9PSBTVkdOYW1lczo6Y29sb3JfcHJvZmlsZVRhZy0+bG9jYWxOYW1lKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKaW5kZXggZmIyOTU5
MGRmMzBlNzQ2NGZmOTc4YWM1OTU0YWU0ZDg4YmJmZmZmYy4uZjFhMjgxZmJlYmMzMDI5NzYxNGVj
NWY3ZDFlZmQ2OTQ4Y2JlNjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGlu
ZVN0eWxlU2hlZXRPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxl
U2hlZXRPd25lci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29u
dGVudHMuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTE0OSw3ICsxNDksNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTQ29udGVudFR5cGUoRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKICAgICAvLyBGSVhNRTogU2hvdWxk
IE1JTUUgdHlwZXMgcmVhbGx5IGJlIGNhc2Ugc2Vuc2l0aXZlIGluIFhNTCBkb2N1bWVudHM/IERv
ZXNuJ3Qgc2VlbSBsaWtlIHRoZXkgc2hvdWxkLAogICAgIC8vIGV2ZW4gdGhvdWdoIG90aGVyIHRo
aW5ncyBhcmUgY2FzZSBzZW5zaXRpdmUgaW4gdGhhdCBjb250ZXh0LiBNSU1FIHR5cGVzIHNob3Vs
ZCBuZXZlciBiZSBjYXNlIHNlbnNpdGl2ZS4KICAgICAvLyBXZSBzaG91bGQgdmVyaWZ5IHRoaXMg
YW5kIHRoZW4gcmVtb3ZlIHRoZSBpc0hUTUxFbGVtZW50IGNoZWNrIGhlcmUuCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNzc0NvbnRlbnRUeXBlKCJ0ZXh0L2Nz
cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNzc0NvbnRlbnRUeXBlKCJ0ZXh0
L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZWxl
bWVudC5pc0hUTUxFbGVtZW50KCkgPyBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBl
LCAidGV4dC9jc3MiKSA6IHR5cGUgPT0gY3NzQ29udGVudFR5cGU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25SZWNvcmQuY3BwCmluZGV4IDUxOTMyMGQ0Njk5MWMxNGIzNzI3ODFhY2NlYWM3
NDkwM2MwODJhMTguLjI3NDZmYjlkNWYyZjAwMjNmNjYzM2U3Y2QyYzczOGM3ZWU1OGZjMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJT
dGF0aWNOb2RlTGlzdC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGNs
YXNzIE11dGF0aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBNdXRhdGlv
blJlY29yZCB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRM
aXN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hpbGRMaXN0KCJjaGlsZExp
c3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoaWxk
TGlzdDsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJp
YnV0ZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRy
aWJ1dGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBh
dHRyaWJ1dGVzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0
eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY2hhcmFjdGVy
RGF0YSgiY2hhcmFjdGVyRGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNo
YXJhY3RlckRhdGEoImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFt
ZXMucGwKaW5kZXggNzA0MWYxMjE3MWRlMDNlOTUwYTg4ODI3ZjdmZDExZjlkOGQ3MjVmYS4uNWU2
YjlkYTA3NWMxNWIyMzc4N2JmZGQ3M2FkYTdmMTQ1N2ExZWE2MCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2Vf
bmFtZXMucGwKQEAgLTExMSwxMSArMTExLDExIEBACiAKICAgICBwcmludExpY2Vuc2VIZWFkZXIo
JEYpOwogICAgIHByaW50SGVhZGVySGVhZCgkRiwgIkNTUyIsICRmYW1pbHlOYW1lc0ZpbGVCYXNl
LCA8PEVORCwgIiIpOwotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
U3RyaW5nLmg+CiBFTkQKIAotICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIExhenlOZXZlckRl
c3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAg
cHJpbnRNYWNyb3MoJEYsICJleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CiAgICAgcHJpbnQgRiAiI2Vu
ZGlmXG5cbiI7CiAKICAgICBwcmludEluaXQoJEYsIDEpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIEVO
RAogCiAgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRl
cnMpOwogCi0gICAgcHJpbnRNYWNyb3MoJEYsICJMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RG
OjpBdG9tU3RyaW5nPiIsICIiLCBcJXBhcmFtZXRlcnMpOworICAgIHByaW50TWFjcm9zKCRGLCAi
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIs
IFwlcGFyYW1ldGVycyk7CiAKICAgICBwcmludEluaXQoJEYsIDApOwogCkBAIC03MTQsNyArNzE0
LDcgQEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAKICAgICBwcmludExpY2Vuc2VIZWFkZXIo
JEYpOwogICAgIHByaW50SGVhZGVySGVhZCgkRiwgIkRPTSIsICRwYXJhbWV0ZXJze25hbWVzcGFj
ZX0sIDw8RU5ELCAiY2xhc3MgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfVF1YWxpZmllZE5hbWUgOiBw
dWJsaWMgUXVhbGlmaWVkTmFtZSB7IH07XG5cbiIpOwotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgog
RU5ECkBAIC03MjIsNyArNzIyLDcgQEAgRU5ECiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVBy
ZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCiAgICAgcHJpbnQgRiAi
Ly8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYgIldFQkNPUkVfRVhQT1JUIGV4dGVybiBMYXp5
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFj
ZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQg
ZXh0ZXJuIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5n
PiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBp
ZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdzXG4iOwpAQCAtNzYw
LDcgKzc2MCw3IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogICAgIAogICAgIG15ICRsb3dlcmNh
c2VOYW1lc3BhY2VQcmVmaXggPSBsYygkcGFyYW1ldGVyc3tuYW1lc3BhY2VQcmVmaXh9KTsKIAot
ICAgIHByaW50IEYgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiAke2xvd2Vy
Y2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAgcHJpbnQgRiAiTWFp
blRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5h
bWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBwcmludCBGIFN0YXRpY1N0
cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlYWxsU3RyaW5ncyk7CiAKQEAgLTk2Myw3ICs5NjMsNyBA
QCBFTkQKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBzdWIgcHJpbnRXcmFw
cGVyRmFjdG9yeUNwcEZpbGUKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiBFTkQKIDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKaW5kZXggM2EwZjkxMTk5YjZiYjdiODQ3Y2M1ODUwNjE4
ODMzZGI3ZTAxZWE3NS4uOWU3OTczYTExYzIyYzczMWQ0ODhjYTExNjgyNTkwYjU5NzYyZDBmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKQEAgLTI4LDcgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShBVVRPQ0FQSVRBTElaRSkKIAotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NywxOSArNTcsMTkgQEAgY29uc3QgQXRvbVN0cmluZyYg
c3RyaW5nRm9yQXV0b2NhcGl0YWxpemVUeXBlKEF1dG9jYXBpdGFsaXplVHlwZSB0eXBlKQogICAg
IGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlRGVmYXVsdDoKICAgICAgICAgcmV0dXJuIG51bGxBdG9t
KCk7CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVOb25lOiB7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZU5vbmUoIm5vbmUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVOb25lKCJub25lIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWVOb25lOwogICAg
IH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVNlbnRlbmNlczogewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVTZW50ZW5jZXMoInNlbnRl
bmNlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVNlbnRlbmNl
cygic2VudGVuY2VzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICByZXR1cm4gdmFsdWVTZW50ZW5jZXM7CiAgICAgfQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVU
eXBlV29yZHM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgICAgICByZXR1cm4gdmFsdWVXb3JkczsKICAgICB9CiAgICAgY2FzZSBBdXRvY2FwaXRh
bGl6ZVR5cGVBbGxDaGFyYWN0ZXJzOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiB2YWx1ZUFsbENoYXJhY3RlcnMoImNoYXJhY3RlcnMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVBbGxDaGFyYWN0ZXJzKCJjaGFyYWN0
ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4g
dmFsdWVBbGxDaGFyYWN0ZXJzOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F1dG9maWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3Bw
CmluZGV4IGEwYTdkNzdiNWM5MjVmMDBkMDExNTg4NWVkOGViOGMwNDFhODE0ZjQuLmYyNzM0MWJl
NWY2MzgxM2QwYzNiODU3MTc1NmFlNjNjNzE1NTljZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQXV0b2ZpbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwu
Y3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTEzMiwxMSArMTMyLDExIEBAIEF1dG9maWxsRmll
bGROYW1lIHRvQXV0b2ZpbGxGaWVsZE5hbWUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRhY3RUb2tlbihjb25zdCBBdG9tU3RyaW5nJiB0b2tlbikK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaG9tZSgiaG9tZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gd29yaygid29yayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9iaWxlKCJtb2Jp
bGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGZheCgiZmF4IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBwYWdlcigi
cGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBob21lKCJob21lIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd29yaygid29yayIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG1vYmlsZSgibW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBw
YWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBy
ZXR1cm4gdG9rZW4gPT0gaG9tZSB8fCB0b2tlbiA9PSB3b3JrIHx8IHRva2VuID09IG1vYmlsZSB8
fCB0b2tlbiA9PSBmYXggfHwgdG9rZW4gPT0gcGFnZXI7CiB9CkBAIC0xNjEsOCArMTYxLDggQEAg
c3RhdGljIHVuc2lnbmVkIG1heFRva2Vuc0ZvckF1dG9maWxsRmllbGRDYXRlZ29yeShBdXRvZmls
bENhdGVnb3J5IGNhdGVnb3J5KQogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvZm9ybXMuaHRtbCNwcm9jZXNzaW5nLW1vZGVsLTMKIEF1dG9maWxsRGF0YSBBdXRvZmls
bERhdGE6OmNyZWF0ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IC8vIExhYmVsOiBEZWZhdWx0CiAgICAgLy8gMjYuIExldCB0aGUgZWxlbWVudCdzIElETC1leHBv
c2VkIGF1dG9maWxsIHZhbHVlIGJlIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBpdHMgYXV0b2ZpbGwg
aGludCBzZXQgYW5kIGF1dG9maWxsIHNjb3BlIGJlIGVtcHR5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggZWJiN2QyYThiMDAzZjQ0ZTQ4
MWVmYjAyNjg2Njk5ZjgzNmU2MDVhMy4uNTg4NjcyNTRkZDhkNzU5OGY1ZWJkZDQ5YWZkM2UyZmYz
YzlhNjZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKLSNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTksNyArOTksNyBAQCBi
b29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3Vz
ZUV2ZW50cykKIAogU3RyaW5nIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmZhbGxiYWNrVmFsdWUo
KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBv
bigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9uLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDdiMTA2MWZlMWExZjQ5MTMyYWRmNDNkNTljYjg3NWVk
YmY3ZmU2MTAuLjVjMjkyMGY3MGYwOTUxNWMzOGEzOWZjZmRkN2IxODBmNjgwM2U1YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUlu
ZGljYXRvci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02MSw3ICs2MSw3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQt
ZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZh
bHVlQ29udGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBhdXRvIHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCkt
PmRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA5
ZTJmMDRjNDAwMDU2NTc5ZDU0YzQ1MjQ2OGNhMmRjODFhYjFlNjcyLi5jZmQyYTkyMGQxZjAyZWM2
YTliZmIwNzc1ZDhlN2VkMWM1MGQ5ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMTQzLDkgKzE0NCw4IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChl
bGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRj
aCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hXcmFwcGVyTmFtZSgi
LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hOYW1l
KCItd2Via2l0LWNvbG9yLXN3YXRjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHdlYmtpdENvbG9yU3dhdGNoV3JhcHBlck5hbWUoIi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBw
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB3cmFwcGVyRWxlbWVu
dCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAKaW5kZXggYThlZGM5OWYwYjdkOTVmZGI2ZTNhMjUzNTliYjg3ZGMyODFj
ZGUwNi4uYzg5NzVhY2MyYzMxMjZiY2ZmZTMzMTA2NDdkMjJiMmNlMjRhYWZhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTg5LDkgKzkwLDggQEAgUmVmPFVwbG9hZEJ1
dHRvbkVsZW1lbnQ+IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKERvY3Vt
ZW50JiBkb2N1bWUKIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1dFRhZywgZG9jdW1l
bnQsIDAsIGZhbHNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdEZp
bGVVcGxvYWRCdXR0b25OYW1lKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0
dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFR5cGUoYnV0dG9uTmFtZSk7CiAg
ICAgc2V0UHNldWRvKHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggNzlkYjM0MWUxYzk1NjVmMWQwZjkxM2QyYzdj
N2QzYzQ2YjI2Y2Y1Yi4uYjhkOWI5MzViOWIxZGY1MjljNGQ0ZjdkYzQzMzg1MTQ5OTQ1YmM5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAK
ICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCi0jaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtMzIwLDcgKzMyMCw3IEBAIEF0b21T
dHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlJiBjb250CiB7CiAgICAgYXV0byBmb3JtID0gbWFrZVJlZlB0cihvd25lckZv
cm1Gb3JTdGF0ZShjb250cm9sKSk7CiAgICAgaWYgKCFmb3JtKSB7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25lcigiTm8gb3duZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9ybUtleUZvck5vT3duZXIoIk5v
IG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1
cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuY3BwCmluZGV4IDAwOWY1NTQ3OGQzYTZlODYxOTg4ZTZiYmYyNWNlNDBiMjEz
OGNjYmMuLjlkZGY3NWU4OWQ2NjQxMDUzOGE2MTE1M2JkNTY4OWQwNzdmN2VmMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KQEAgLTI1Myw5ICsyNTQsOSBAQCB2b2lkIEhUTUxBbmNob3JFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaQogICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgIH0gZWxzZSBpZiAobmFtZSA9PSByZWxB
dHRyKSB7CiAgICAgICAgIC8vIFVwZGF0ZSBIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCgpIGlm
IG1vcmUgcmVsIGF0dHJpYnV0ZXMgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuCi0gICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub1JlZmVycmVyKCJub3JlZmVycmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVyIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBub09wZW5lcigibm9vcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIGNvbnN0IGJvb2wgc2hvdWxkRm9sZENhc2UgPSB0cnVlOwogICAgICAgICBTcGFj
ZVNwbGl0U3RyaW5nIHJlbFZhbHVlKHZhbHVlLCBzaG91bGRGb2xkQ2FzZSk7CiAgICAgICAgIGlm
IChyZWxWYWx1ZS5jb250YWlucyhub1JlZmVycmVyKSkKQEAgLTM4MSw3ICszODIsNyBAQCBib29s
IEhUTUxBbmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkgY29uc3QKICAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc3lzdGVtUHJldmlld0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHN5c3RlbVByZXZpZXdSZWxWYWx1ZSgiYXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1QcmV2aWV3UmVsVmFsdWUoImFyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFyZWxMaXN0KCkuY29udGFpbnMo
c3lzdGVtUHJldmlld1JlbFZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCA3MWZlMWEwYjc4NThjZjBmMzA5
MjZmOTBmNzRmZjc3NGZmNTdmZTE4Li5lNmZlZTIzMzIwOGRhNmZiNzdjZjNiYjI3NThjZDc4ZWIy
NDhkYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJCdXR0b24uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2Nv
cGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTc0LDE1ICs3NSwxNSBA
QCBjb25zdCBBdG9tU3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFNVQk1JVDogewot
ICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1Ym1p
dCgic3VibWl0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJt
aXQoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
ICAgIHJldHVybiBzdWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAg
ICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b24o
ImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9u
KCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAg
ICByZXR1cm4gYnV0dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVTRVQ6IHsKLSAgICAg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVz
ZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJlc2V0KCJyZXNl
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVy
biByZXNldDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcAppbmRleCA2MGRkMWZiMjUyMDM4NjBkM2Q5MmE3YTVhY2IzMzFjMmFiMDRi
NTkxLi4yYTY3NDQ2MGZkNDM3MDE1NTdlZTVlMzdiNzk0YWYyNmYyZjRiODQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAj
aW5jbHVkZSAiU2xvdEFzc2lnbm1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgRGV0YWlsRXZlbnRTZW5kZXImIGRl
dGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHN1bW1h
cnlTbG90TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN1
bW1hcnlTbG90KCJzdW1tYXJ5U2xvdCIpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7CiAgICAg
cmV0dXJuIHN1bW1hcnlTbG90OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDdhNmE2ZmUzZTkxNGU4NWI5ODkzZDE2OTY0MjczZDZiMmM1YmE5NjMuLmIyM2MyNzMzMDA0
MDYzMDIzNTcwZDU3YWJmNDM2Zjc5NDA5NjExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCkBAIC02Nyw3ICs2Nyw3IEBACiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCkBAIC01MDUsOSArNTA1LDkgQEAgc3RhdGljIFJlZjxEb2N1bWVudEZy
YWdtZW50PiB0ZXh0VG9GcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGUKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2xpbWl0ZWQtdG8tb25seS1rbm93
bi12YWx1ZXMKIHN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgdG9WYWxpZERpclZhbHVl
KGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBydGxWYWx1ZSgicnRs
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBhdXRvVmFsdWUoImF1dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gcnRsVmFsdWUoInJ0bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1
dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJsdHIiKSkKICAgICAgICAg
cmV0dXJuIGx0clZhbHVlOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2
YWx1ZSwgInJ0bCIpKQpAQCAtNjYyLDIyICs2NjIsMTkgQEAgU3RyaW5nIEhUTUxFbGVtZW50Ojpj
b250ZW50RWRpdGFibGUoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgdHJ1ZU5h
bWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cnVl
VmFsdWUoInRydWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJ1ZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbVN0cmluZyYgZmFsc2VOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VWYWx1ZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlVmFsdWUo
ImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBm
YWxzZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgcGxhaW50ZXh0
T25seU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBwbGFpbnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpbnRleHRPbmx5
VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBwbGFpbnRleHRPbmx5VmFsdWUuZ2V0KCk7CiB9CiAKQEAgLTExMTcsOSAr
MTExNCw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OnNob3VsZEF1dG9jb3JyZWN0KCkgY29uc3QKIAog
dm9pZCBIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QoYm9vbCBhdXRvY29ycmVjdCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb25OYW1lKCJvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUoIm9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oYXV0b2NvcnJlY3RBdHRyLCBhdXRvY29ycmVjdCA/IG9uTmFtZS5nZXQoKSA6IG9mZk5h
bWUuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcAppbmRleCA1MWFiMDE4Nzk4MDQ4N2IzYWZkNGU1MzVlNmFmYzVjYWUwZDI3ZmUyLi41MGJl
ZTQ0YzFjMzkyODg5YzNmYTYzYzJiZGZlMGE0ZDg4YjkxOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xNTQsNyArMTU1LDcgQEAgYm9vbCBIVE1MRmllbGRTZXRFbGVt
ZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgSFRNTEZpZWxk
U2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmaWVsZHNldDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDYyMGQyYzQyMWEyMTI0YmI5MmEy
YTg0YTRmYTA4YWNlMzFlY2VkNmYuLjc1MjFlNTYwNDc1YTYwOThhOWNmNTY0OTk4YjY1MGExNzU2
OGMxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTUyLDYg
KzUyLDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKQEAgLTkwNiw4ICs5MDcsOCBAQCB2b2lkIEhUTUxGb3Jt
RWxlbWVudDo6c2V0QXV0b2NvbXBsZXRlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogCiBjb25z
dCBBdG9tU3RyaW5nJiBIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSgpIGNvbnN0CiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXV0b2NvbXBsZXRlQXR0ciksICJv
ZmYiKSA/IG9mZiA6IG9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKaW5kZXggY2EwMDYzOWNlYjNiOGQ0N2NhMGJkYzgwOTJiNmZkOTNkNjNlZjIyNC4uZjk5MmU2
MDc0ZGYyZTdhOGMxMzdiZGMxN2FjYjU3NWUzMTZkYjc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogI2luY2x1ZGUgIlNpemVzQXR0cmlidXRlUGFyc2VyLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfQ09OVFJPTFMpCkBAIC05MDMsOCArOTA0LDggQEAgc2l6ZV90IEhUTUxJbWFnZUVs
ZW1lbnQ6OnBlbmRpbmdEZWNvZGVQcm9taXNlc0NvdW50Rm9yVGVzdGluZygpIGNvbnN0CiAKIGNv
bnN0IEF0b21TdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncygpIGNv
bnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGVhZ2VyKCJlYWdl
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbGF6eSgibGF6eSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGVhZ2VyKCJlYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0
byYgYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6bG9hZGluZ0F0dHIpOwogICAgIHJldHVybiBoYXNMYXp5TG9hZGFibGVBdHRyaWJ1dGVW
YWx1ZShhdHRyaWJ1dGVWYWx1ZSkgPyBsYXp5IDogZWFnZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IDc4MGI3OTE5M2Q5ODc2MzJiNTkyYzliMjRk
ODU4MGI0ZWM2YThlNDAuLjI2YThhZDYyOTI4NzUxOGEzNDQxNDUwZDk3MWQ0ZjQ0MThmN2E0MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC0zNiw3ICsz
Niw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDcgKzU3
LDcgQEAgY2xhc3MgS2V5Z2VuU2VsZWN0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MU2VsZWN0
RWxlbWVudCB7CiAgICAgS2V5Z2VuU2VsZWN0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgICAgIDogSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVudCwgMCkKICAgICB7
Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBwc2V1ZG9JZCgiLXdl
YmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHBzZXVkb0lkKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogCkBAIC0x
MzAsNyArMTMwLDcgQEAgYm9vbCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRE9N
Rm9ybURhdGEmIGZvcm1EYXRhLCBib29sKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MS2V5Z2Vu
RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4ga2V5Z2VuKCJrZXlnZW4iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA5ZmU5ZTE0YjU2NTE1OTA2OTlmMDlhOTU1
YzZjYjYyNDMyYmVkNmYwLi4yODVkYzBmNzU0NmM2NWRmODA3M2UyYzI0ZWRkNmQwNjQxMGE4ODUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTdHls
ZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OCw3ICs2OSw3IEBAIGJvb2wgSFRN
TE9wdEdyb3VwRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogCiBjb25zdCBBdG9tU3RyaW5n
JiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9wdGdyb3VwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IDU2Yjcy
MDZhZTNiZThmMTBhODgxNGFlOWFmYWM2MmJmZWI1NjA5YWMuLjA3NTU2ODVkOWUyMjc2MDNjOTM4
ZmM3NDIyZTZmYWVhNjdiZjIxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsNyAr
NTcsNyBAQCBSZWY8SFRNTE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1M
T3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3V0cHV0KCJvdXRwdXQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBvdXRwdXQoIm91dHB1dCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb3V0cHV0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3ZjAzNTRmNWM4Mzlm
NDVjNWEyYTZjYzZkNTc1MWQ0ZGNkN2JiNDRiLi5lOTA3OTFiYzUzN2I2MjM3MmY2NDQ3ZTFjOGQ5
NGVlNGNmZDdjYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9D
YXRjaFNjb3BlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNHbG9iYWxPYmplY3RJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDIyLDcgKzQyMyw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNlckFn
ZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogCiBib29sIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheShjb25zdCBFdmVudFRhcmdldCogdGFyZ2V0KSBj
b25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzZWxlY3Rvcigi
LnNuYXBzaG90LW92ZXJsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzZWxl
Y3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgYXV0byBzaGFkb3cgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgaWYgKCFz
aGFkb3cpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZWU0MzczNjY3MmJlZDIzYjQ3OWYxYTM0ZDIyNzA0NzE3NGYx
ZTllYi4uOTA5NzUxYmVlZjY0YjgwM2Y4YjFhNWJiMTUwYjk5NTBkMTU3OGExOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1i
ZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMCw4ICsxMDEsOCBAQCB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdl
KQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c2VsZWN0TXVsdGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c2VsZWN0T25lKCJzZWxlY3Qtb25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c2VsZWN0TXVsdGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHNlbGVjdE9uZSgic2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbV9tdWx0aXBsZSA/IHNlbGVjdE11bHRpcGxlIDogc2Vs
ZWN0T25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
Y3BwCmluZGV4IGE2MDAzOGZlOTRmMjk4YjA4ZWE0YWI2ZWRhY2Q3ZDE1NTdhYTg3NTUuLjA5MzEw
Y2IwYjkzZWUwODg2MjhlZDk2Mjg2MDY2OTY5YjQ1YTc1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE2OSwxMCArMTcw
LDEwIEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNldFJvd1NwYW5Gb3JCaW5kaW5ncyh1
bnNpZ25lZCBuKQogY29uc3QgQXRvbVN0cmluZyYgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNjb3Bl
KCkgY29uc3QKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS90YWJsZXMuaHRtbCNhdHRyLXRoLXNjb3BlCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHJvdygicm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2woImNv
bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiByb3coInJvdyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNv
bCgiY29sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dy
b3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sZ3JvdXAoImNvbGdyb3Vw
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
c2NvcGVBdHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKaW5kZXggZTE5NTA0YmQ5Yjg3MGI2NjgzM2RjYWIyZmM1NTJmNjE0NmYzMTA0Yi4uMjk1Njcy
ODRkNDlmNGQyZjYyZmI3OTA2MTBjYjJmYTRhNDUyYTY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogCkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpk
aWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAKIGNvbnN0IEF0b21T
dHJpbmcmIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVhKCJ0ZXh0
YXJlYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVhKCJ0ZXh0YXJl
YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdGV4dGFy
ZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKaW5kZXggMzg4ZWNiOGIwMWEwZmM3NzE3NjEyNzA5NDc4OTc1NjRhNjRjOWVh
Ni4uM2Y3Y2Q2OWQ5ZmM5ZjI3MzJmMzRiYmQ0MzIwZjhhM2U5OWVkYTNlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTUx
LDYgKzUxLDcgQEAKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOTcsOSArMzk4LDkgQEAg
aW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uRW5kKCkgY29u
c3QKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBm
b3J3YXJkKCJmb3J3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dh
cmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGJhY2t3YXJkKCJiYWNrd2FyZCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2Fz
ZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKQEAgLTUzNSw5ICs1MzYsOCBAQCBib29sIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpIGNvbnN0
CiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkoKQogewogICAgIGlmIChhdXRvIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1l
bnQoKSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpblRleHRPbmx5TmFtZSgi
cGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFs
c2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAg
ICAgY29uc3QgYXV0byYgdmFsdWUgPSBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpID8gcGxh
aW5UZXh0T25seU5hbWUuZ2V0KCkgOiBmYWxzZU5hbWUuZ2V0KCk7CiAgICAgICAgIGlubmVyVGV4
dC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihjb250ZW50ZWRpdGFibGVBdHRy
LCB2YWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1vZGUuY3BwCmluZGV4IGEyMGVhY2Nm
ZjljNmQwNTc2OWI5OGQ2OGM3M2Y1YWZjMWI5YmU2YmUuLmVhODBmYmU2OTZkMTcxNjZlY2NkMjU4
MTRhZTQ0MzZkYTJhZmQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRN
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0TW9kZS5jcHAKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKIAot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Miw0OSArODIs
NDkgQEAgbmFtZXNwYWNlIElucHV0TW9kZU5hbWVzIHsKIAogY29uc3QgQXRvbVN0cmluZyYgbm9u
ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoIm5vbmUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJub25lIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbW9kZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInRl
eHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBlbWFpbCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImVtYWlsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgiZW1haWwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21T
dHJpbmcmIG51bWVyaWMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBtb2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgi
bnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGVjaW1hbCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImRlY2ltYWwiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBzZWFy
Y2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJzZWFy
Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJzZWFyY2giLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKaW5kZXggYThhNmU3OWRjYzY4YjI5NmJm
ZDg3MTk3Y2NmNGI0NmU5YTdmOWVlNC4uNjcxNGRlZDFhYTY2MTVkMTllNTU0OTk1OWRkZjQ0NGI0
MTk5Njk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKQEAgLTIyLDcg
KzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5o
IgogCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzLDEz
OSArMzMsMTM5IEBAIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1lcyB7CiAKIGNvbnN0IEF0b21TdHJp
bmcmIGJ1dHRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5h
bWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImJ1dHRv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIAogY29uc3QgQXRvbVN0cmluZyYgY2hlY2tib3goKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBjb2xvcigp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImNvbG9yIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiY29sb3IiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIGRhdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBuYW1lKCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiZGF0
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBkYXRldGlt
ZWxvY2FsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgi
ZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJk
YXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZW1haWwoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJlbWFpbCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBmaWxl
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZmlsZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImZpbGUiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUo
ImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgaW1hZ2UoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBtb250aCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIm1vbnRoIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgibW9udGgiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21T
dHJpbmcmIG51bWJlcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIm51
bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFt
ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcGFzc3dvcmQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29yZCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiByYWRp
bygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInJhZGlv
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgicmFkaW8iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0
IEF0b21TdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcmVzZXQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBzZWFyY2goKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJzZWFyY2giLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJzZWFyY2giLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUo
InN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVsZXBob25lKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGV4dCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIHRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1l
KCJ0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGltZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWVrKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgid2VlayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVy
LmNwcAppbmRleCBlNDgyYjM2MmIxOGE3YTU0OTQ1Mzc2NDY0NGNjZmU3Y2JmNTE1MmIzLi4zMjEx
NTBjYTdlZjk0MjFkNzRkY2Q1MmQ4ZDZjMjcyOGMwMWI1N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4OSwxOSBAQCB2b2lkIE1lZGlhQ29u
dHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
cGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHBsYXli
YWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBs
YXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBwbGF5YmFja1N0
YXRlRW5kZWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbmRl
ZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbmRlZCgiZW5kZWQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGVuZGVkOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGRiNjM2ZTI2OWEw
YzViOTc5ZjM0NTJmYmJiOWFjMDVlNmYxMjMxYjcuLjg2NWFhZDZjYTE4MjZiYzQ2ODA5ZDhiZDIz
MmI3OTcyZWFlM2QzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBA
IC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNsaWRl
clRodW1iRWxlbWVudC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNTUsOCArMjU2LDcgQEAgdm9pZCBSYW5nZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNr
TmFtZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNsaWRlclJ1
bm5hYmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xpZGVyUnVubmFibGVU
cmFja05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IDc3
MWNmNDcxMjMyYjg1ZWMzMGIyMjY1NTRhMzI5ZDgwYjI1YTAzNjEuLjhiODY3NjQzNTNkYmE3MDhk
YjAzZDdlYTgxZjMyNzI1ZGJmMjE3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTZWFyY2hGaWVsZC5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxl
bWVudHMuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjQsMTAgKzY1LDkgQEAgdm9pZCBTZWFyY2hJbnB1dFR5
cGU6OmFkZFNlYXJjaFJlc3VsdCgpCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVJlc3VsdEJ1dHRvblBz
ZXVkb1R5cGUoU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudCYgcmVzdWx0QnV0dG9uLCBp
bnQgbWF4UmVzdWx0cykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0U2VhcmNoRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWRlY29yYXRp
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3VsdHNEZWNvcmF0aW9u
TmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVz
dWx0cy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaERlY29yYXRpb25OYW1lKCItd2Via2l0LXNl
YXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29y
YXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1
bHRzQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKCFtYXhSZXN1bHRzKQogICAgICAgICBy
ZXN1bHRCdXR0b24uc2V0UHNldWRvKHdlYmtpdFNlYXJjaFJlc3VsdHNEZWNvcmF0aW9uTmFtZSk7
CiAgICAgZWxzZSBpZiAobWF4UmVzdWx0cyA8IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAKaW5kZXggMmY1OWU0NTM5MjI5NjQzZDFjODAzYmM2Y2UwMjRlYzZl
NDUwZTAzOC4uNmJjYWE4ODUyNTY1NjQwYzE3NjdmMTczZjk4YmU2NWRkOGQwMmE5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNjAsNiArNjAsNyBA
QAogI2luY2x1ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiVXNlclR5cGluZ0dl
c3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgpAQCAtMzQ4LDggKzM0OSw3IEBA
IHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB9CiAK
ICAgICBpZiAoc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKSB7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDYXBzTG9ja0luZGljYXRvck5h
bWUoIi13ZWJraXQtY2Fwcy1sb2NrLWluZGljYXRvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDYXBz
TG9ja0luZGljYXRvck5hbWUoIi13ZWJraXQtY2Fwcy1sb2NrLWluZGljYXRvciIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvciA9
IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBtX2NhcHNMb2NrSW5k
aWNhdG9yLT5zZXRQc2V1ZG8od2Via2l0Q2Fwc0xvY2tJbmRpY2F0b3JOYW1lKTsKIApAQCAtNDU3
LDggKzQ1Nyw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bk
b3duSW5kaWNhdG9yKCkKICAgICBpZiAoIW1fY29udGFpbmVyKQogICAgICAgICBjcmVhdGVDb250
YWluZXIoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRMaXN0QnV0dG9uTmFtZSgiLXdlYmtpdC1saXN0LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TGlz
dEJ1dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpFdmVudEFsbG93ZWRTY29w
ZSBhbGxvd2VkU2NvcGUoKm1fY29udGFpbmVyKTsKICAgICBtX2RhdGFMaXN0RHJvcGRvd25JbmRp
Y2F0b3IgPSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50
KCksICp0aGlzKTsKICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1fZGF0YUxpc3REcm9w
ZG93bkluZGljYXRvcik7CkBAIC03ODIsOCArNzgxLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAgQVNTRVJUKCFtX2NvbnRhaW5lcik7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3JhdGlvbkNvbnRhaW5lck5hbWUoIi13ZWJraXQtdGV4
dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRUZXh0ZmllbGREZWNvcmF0
aW9uQ29udGFpbmVyTmFtZSgiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWluZXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBTY3JpcHREaXNhbGxv
d2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93ZWRTY29wZSgqZWxlbWVudCgpLT51c2Vy
QWdlbnRTaGFkb3dSb290KCkpOwogCkBAIC04MDMsOCArODAxLDcgQEAgdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmls
bEJ1dHRvblQKICAgICBpZiAoYXV0b0ZpbGxCdXR0b25UeXBlID09IEF1dG9GaWxsQnV0dG9uVHlw
ZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0
dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIEFTU0VSVChlbGVt
ZW50KCkpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24gPSBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9u
LT5zZXRQc2V1ZG8oYXV0b0ZpbGxCdXR0b25UeXBlVG9BdXRvRmlsbEJ1dHRvblBzZXVkb0NsYXNz
TmFtZShhdXRvRmlsbEJ1dHRvblR5cGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAKaW5kZXggYzhjYzZiNDllNDZlMGNmOTBiYWIzMjY1ZDE5YmRjMDIwOGM3NGNl
MC4uMGQwNDQ2Y2I3NDIwMjI1MWE1NWJlNDRmZjBiNjkwYTJhMjIyZGQzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE4MSwxNSArMTgyLDE0IEBAIHZv
aWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSgpCiAKICAgICBTaGFkb3dSb290
JiBzaGFkb3dSb290ID0gbV9lbGVtZW50LT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRh
dGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd0NsaXBwZXJOYW1lKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtYXJyb3ciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVN
ZXNzYWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSWNvbk5hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRh
dGlvbkJ1YmJsZVRleHRCbG9ja05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtdGV4dC1i
bG9jayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUhlYWRp
bmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVCb2R5TmFtZSgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTmFtZSgiLXdlYmtp
dC12YWxpZGF0aW9uLWJ1YmJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdl
YmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd0NsaXBwZXJOYW1lKCItd2Via2l0LXZhbGlkYXRpb24t
YnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LWFycm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlv
bkJ1YmJsZU1lc3NhZ2VOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSWNv
bk5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVUZXh0QmxvY2tOYW1lKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSGVhZGluZ05hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHdlYmtpdFZhbGlkYXRpb25CdWJibGVCb2R5TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJs
ZS1ib2R5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRG9jdW1l
bnQmIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogICAgIG1fYnViYmxlID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggMmYxNjZmNzIyMjU2MWQ4
OWMzOWU5MGY4MmNiNzcyMTQxMDhhMGNmZC4uZTQ3ZWIxMWRkNWZhMTNhNDNlYmIyNzc3MzBjNDc3
OWVmYWI5OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWls
c01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxTdW1t
YXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHNNYXJrZXIuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw4ICs1MCw3IEBAIFJl
ZjxEZXRhaWxzTWFya2VyQ29udHJvbD4gRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiBEZXRhaWxzTWFya2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRy
b2woRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpk
aXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2VyTmFtZSgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0RGV0YWlsc01hcmtlck5hbWUoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdERl
dGFpbHNNYXJrZXJOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
LmNwcAppbmRleCA0ZjUxYjUyZTZjNDY3YjQwMzhiNDdjYTA1NTk3NGU0ZGE3YTVhMGExLi4yOGI0
MjcwNjMyOGE3YmZiZDk1MjM0NDE4M2Y0NTg5YzEzMGE0ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIlZUVFJl
Z2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Nyw4ICs3OCw3IEBAIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQoRG9jCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAg
ICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVsZW1lbnQpKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRNZWRpYVRleHRUcmFja0NvbnRh
aW5lck5hbWUoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNv
bnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1
ZG8od2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKaW5kZXgg
NmJjMTE3MGZkNGZiOTg5Yjg0OWFkZTRlN2NjMzZjMmFhYjg1MzY4NS4uYzAzMzEwODdkOTQ5YjBm
ZmRkMjJkM2Y1YWFkMjA4YmU1M2I1OGE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNz
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTEs
OCArOTIsNyBAQCB2b2lkIFByb2dyZXNzVmFsdWVFbGVtZW50OjpzZXRXaWR0aFBlcmNlbnRhZ2Uo
ZG91YmxlIHdpZHRoKQogCiBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0lubmVyRWxlbWVudE5hbWUo
Ii13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UHJvZ3Jlc3NJbm5l
ckVsZW1lbnROYW1lKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50PiBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiAg
ICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnROYW1lKTsKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtMTAwLDggKzEwMCw3IEBAIFJlZjxQcm9ncmVzc0lubmVyRWxl
bWVudD4gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAK
IFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiByZXN1
bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzQmFyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHJl
c3VsdC0+c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzQmFyTmFtZSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTEwOSw4ICsxMDgsNyBAQCBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0Jh
ckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlZjxQcm9ncmVzc1ZhbHVl
RWxlbWVudD4gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBy
b2dyZXNzVmFsdWVOYW1lKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9n
cmVzc1ZhbHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICByZXN1
bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCmluZGV4IDM1MzNlOGJhODA3NzRkYzJkNjZjMTVhNDgxMjFjNjM3OGRkYWU2YTkuLmQxNzc3
ZWJjMmI3MTBmZGJhYTEyMjg4ZGRhNzM4NTA2MmUxYmJkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNDcsNiArNDcsNyBA
QAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtNTg3LDggKzU4OCw4IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVt
ZW50U3R5bGU+IFNsaWRlclRodW1iRWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxlKGNvbnN0IFJl
bmRlCiB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNvbXB1dGUgc3R5bGUuIFRoaXMg
aXMganVzdCBhIGhhY2sgdG8gcGljayBzaGFkb3cgcHNldWRvIGlkIHdoZW4gaG9zdCBzdHlsZSBp
cyBrbm93bi4KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
bGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXNsaWRlci10aHVtYiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1l
ZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRl
clRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXRodW1iIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCItd2Vi
a2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpA
QCAtNjQxLDggKzY0Miw4IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNsaWRlckNv
bnRhaW5lckVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25zdCBSCiB7CiAgICAgLy8gVGhp
cyBkb2Vzbid0IGFjdHVhbGx5IGNvbXB1dGUgc3R5bGUuIFRoaXMgaXMganVzdCBhIGhhY2sgdG8g
cGljayBzaGFkb3cgcHNldWRvIGlkIHdoZW4gaG9zdCBzdHlsZSBpcyBrbm93bi4KIAotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtZWRpYVNsaWRlckNvbnRhaW5l
cigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzbGlkZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xpZGVyQ29udGFpbmVyKCItd2Via2l0LW1lZGlh
LXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzbGlk
ZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3Bp
bkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRv
bkVsZW1lbnQuY3BwCmluZGV4IDllMzI4ZjZjNmIxYWNhN2ZjZDEwZWZlNWJjNGZlMjI0ZGNmYWQ0
MjMuLjg2Njc2NjEzZmVmM2Y4MjMzNGZkNmVkN2RiOGNhZTVjZmI5N2RjMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIldoZWVsRXZl
bnQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU1LDggKzU2LDcgQEAgaW5saW5lIFNwaW5CdXR0b25FbGVtZW50
OjpTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYK
ICAgICAsIG1fcHJlc3NTdGFydGluZ1N0YXRlKEluZGV0ZXJtaW5hdGUpCiAgICAgLCBtX3JlcGVh
dGluZ1RpbWVyKCp0aGlzLCAmU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlcGVhdGluZ1RpbWVyRmlyZWQp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdElu
bmVyU3BpbkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dElubmVyU3BpbkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZl
Q2FsbGJhY2tzKCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdElubmVyU3BpbkJ1dHRvbk5hbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAKaW5kZXggNzkzNGRkYzVlMjZjZWJlZTA5NmE2ODhhMDZjNTJmNjUyMzBj
MmRjNy4uMTliM2I0YjdmZDk1NjZlMWQwNDZiMzVjYjgyOThkOGM0MjdmZDY2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVu
dHMuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODIsOCArMTgzLDcgQEAgT3B0
aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUoY28KIGlubGluZSBUZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVu
dDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhY2Vob2xkZXJOYW1lKCJwbGFjZWhvbGRlciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gcGxhY2Vob2xkZXJOYW1lKCJwbGFjZWhvbGRlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8ocGxhY2Vob2xkZXJOYW1lKTsKICAgICBzZXRI
YXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KQEAgLTI1Niw5ICsyNTYsOCBAQCBi
b29sIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKIGlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1M
RGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hDYW5jZWxCdXR0b25OYW1lKCItd2Via2l0
LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b25OYW1l
KCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaENhbmNlbEJ1dHRvbk5hbWUoIi13ZWJraXQtc2Vh
cmNoLWNhbmNlbC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0
b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcApp
bmRleCAyMmY2MjA5NmRjYjBmY2U4YTYzZDBmOGM0OGQ0NTlhZDAzMWQxYTVkLi4zNzgyZDhjNzc4
OGU5N2YwZTgwMmJhYTJlMjJmZmIwMDNkODdmZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOCArNDIsNyBAQCBSZWY8WW91
VHViZUVtYmVkU2hhZG93RWxlbWVudD4gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2MpCiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KEhU
TUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKCItd2Via2l0LXBs
dWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKCItd2Vi
a2l0LXBsdWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBzZXRQc2V1ZG8od2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggOTY0MzE2YTIyZTJhZjNhNDI5N2U5OGU3
MzEzNDYyNTc2NWFjOWRmNi4uMDNlNDE1NDc4MWNlNWEzY2U4ZjMzNmFkNThjYjFmZTBhZDM2YWQ4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTQsOCArOTUsNyBAQCBS
ZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjOjp0cnlDcmVhdGUoRAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Via2l0LWltYWdlLWNv
bnRyb2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdl
YmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNvbnRy
b2xzQnV0dG9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IDJmOWRmNDlj
MjJlYmVhMGI4ZTQ1OTJhZjFhNTY0N2I2NzY1MWYyOWIuLmFjMGVlNzkxMWJkMjE1NmQzOGUwMjQ4
Mjc3ZTFiNzI3ZTUzZGJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2
LDggKzg3LDcgQEAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9s
c1Jvb3RFbGVtZW50Ojp0cnlDcmVhdGUoRG9jdW1lbnQmIGQKICAgICBpZiAoIWRvY3VtZW50LnBh
Z2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKCJ4LXdlYmtpdC1p
bWFnZS1jb250cm9scyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKCJ4LXdlYmtpdC1p
bWFnZS1jb250cm9scyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IFJlZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5l
dyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBjb250cm9scy0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmNsYXNzQXR0ciwg
eFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suY3BwCmluZGV4IDAyMDlmOWVjMWMwMmM5NzRmZDRlNjBiMWZkNDAwMzc4NjM4MzYwYzMu
LjliMmM4NzQ1MmQ3ODM3OTM4MWU1NzAxODM4NjdhZjA5MzE3Nzc1YzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMzUsNDMgKzM1LDQzIEBACiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgotI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9tU3RyaW5nJiBB
dWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBkZXNjcmlwdGlvbigiZGVzY3JpcHRp
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXNjcmlwdGlvbigiZGVzY3Jp
cHRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRl
c2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1haW4oIm1haW4i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtYWluKCJtYWluIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtYWluOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluRGVzY0tleXdvcmQoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtYWluRGVzYygibWFpbi1kZXNjIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWFpbkRlc2MoIm1haW4tZGVzYyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFpbkRlc2M7CiB9CiAKIGNvbnN0
IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJhbnNs
YXRpb247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3
b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY29tbWVudGFy
eSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbW1lbnRh
cnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmNwcAppbmRleCBjNjVhMTE4NzllNjUxMzIzOTUxMzE0MzcyODA3YmNjZDZlMWZjYzY0Li41MWFk
ZDY5OWZiMjNjNjczN2Y4Y2VmYzM5NGRkMjE3ODc5NjQxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC00NCw3ICs0NCw3IEBACiAjaW5jbHVkZSAiVlRUUmVn
aW9uLmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTUyLDM3ICs1MiwzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNr
KTsKIAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJz
dWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1
YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
c3VidGl0bGVzOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY2FwdGlvbnNLZXl3b3Jk
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlv
bnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMo
ImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBjYXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRlc2NyaXB0aW9uc0tl
eXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZXNjcmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIHN0YXRpYyBjb25zdCBB
dG9tU3RyaW5nJiBjaGFwdGVyc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgbWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAgICAKIHN0YXRpYyBj
b25zdCBBdG9tU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggNjU1MTA4YTU5N2M5NTNmYzA4NzllZjA4YTgz
MmMxMjQ0YjhkZmRhMS4uNDAwNjVhMDVmZGU0MDQwYzllOTI3NzY0MGFmMjlmYmJmOGU5OTllMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNTIsOCAr
NTIsOCBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtNjQsMTkg
KzY0LDE5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVCb3gpOwog
CiBjb25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNl
dWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ry
b3BTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ry
b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNrZHJvcFNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNrZHJvcCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlQmFja2Ryb3BTaGFk
b3dQc2V1ZG9JZDsKIH0KIApAQCAtNDg4LDggKzQ4OCw3IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpy
ZWJ1aWxkRGlzcGxheVRyZWUoKQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxv
d2VkU2NvcGUgYWxsb3dlZFNjb3BlRm9yUmVmZXJlbmNlVHJlZSgqbV9jdWVOb2RlKTsKIAogICAg
IGlmICghbV9kaXNwbGF5VHJlZSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdlbmVyaWMt
Y3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0
LWdlbmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgICAgIG1fZGlzcGxheVRyZWUgPSBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShvd25lckRvY3Vt
ZW50KCksICp0aGlzKTsKICAgICAgICAgbV9kaXNwbGF5VHJlZS0+c2V0UHNldWRvKHdlYmtpdEdl
bmVyaWNDdWVSb290TmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCmluZGV4IDNhNmU0NzIxZTc3MmQ4ZmQxZGI1OWVkODMzZmU3YjJkNTQxNjgzNmYuLjJm
NjdkYzU0NWMxMjk1ZWU0MmFkNzcwMjRjY2M2MTUwZDlhOTE0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJWVFRD
dWUuaCIKICNpbmNsdWRlICJWVFRTY2FubmVyLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgi
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNiw3ICsxMjcsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUg
dmFsdWUpCiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB1cEtleXdvcmQoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtleXdvcmQoInVwIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdXBLZXl3b3JkOwogfQogCkBAIC0y
NjIsMjEgKzI2MywyMSBAQCB2b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVnaW9u
U2V0dGluZyBzZXR0aW5nLCBWVFRTY2FubmVyJiBpbnB1dCkKIAogY29uc3QgQXRvbVN0cmluZyYg
VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29u
dGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGlu
ZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFj
a1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0NsYXNzOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVD
b250YWluZXJQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWlu
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRh
aW5lclBzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uLWNvbnRhaW5lciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1Jl
Z2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdp
b246OnRleHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1yZWdpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1
cm4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suY3BwCmluZGV4IGI1ZGYxODNhYmQyZmY4Y2UxYjhmMzllYmZkMWQyMGY1NjBj
MDU5YTMuLjJmNGMxMTIyM2Q1N2E1NWEwYWY1YWFkMTg4NGI3NzBhNGRhYjM4MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiAj
aW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0Lmgi
Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWROZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICNpbmNsdWRl
ICJTb3VyY2VCdWZmZXIuaCIKQEAgLTQ2LDM3ICs0NiwzNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVybmF0aXZl
KCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVybmF0
aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6
OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVv
VHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gY2FwdGlvbnMoIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6
OnNpZ25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc2lnbigic2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpZ24o
InNpZ24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNp
Z247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRs
ZXMoInN1YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxl
cygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1l
bnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZTRh
OTRhNTA1OTYxYWEzNzk3ZmE2ZDA0ZWE2NWM2NDU2NWFkOTZkZC4uZjU4NGMxZmNmY2U0Y2EzMmE5
ZGRkMTg3Njk2YzYyYzliYzBmZWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAKICNp
bmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKLSNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODIsNyArODIsNyBAQCBjb25zdCBBdG9tU3Ry
aW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAogICAgIGlm
ICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9y
TmFtZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBkZWZhdWx0TmFt
ZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0TmFtZSgi
b3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRl
ZmF1bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODli
NmI2ZDdlMWY0YzFhOTFlZTZlMjUyMTU1MDA3ZGZlMDlhMDA5OC4uOWJiZjM2ODVlMDJlMjNiZDYw
NjlmYWJjNDczOWY4Yjg5YTIzNTJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMTA2LDcgKzEwNiw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgi
CiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTM0MDYsMTAgKzM0MDYsMTAgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQKIAogc3RhdGljIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGly
ZWN0aW9uRm9yS2V5KGNvbnN0IEF0b21TdHJpbmcmIGtleUlkZW50aWZpZXIpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IERvd24oIkRvd24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IFVwKCJVcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gTGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gUmlnaHQoIlJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gRG93bigi
RG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IFVwKCJVcCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IExlZnQoIkxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbk5vbmU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAyMjk2YThmOWRkNTlmMmFlOTg0NWQ2ZTIyN2Ez
Nzg1M2QxZmM1OTVlLi44YzAwOTM2NTI2ZWY5OTJhODVmZjI0Y2UyNjZhYjRlZjJlMTg4YzczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVXNl
ckFnZW50LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4NCw3ICs2ODUsNyBAQCBib29sIFF1aXJrczo6c2hv
dWxkQnlwYXNzQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0CiAgICAgLy8gYmVjYXVzZSBpdCBwdXRz
IGFuIG92ZXJsYXkgKHdpdGggY2xhc3MgImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIp
IG92ZXIgdGhlIHBhZ2Ugd2hlbiBuYXZpZ2F0aW5nIGF3YXkgYW5kIGZhaWxzCiAgICAgLy8gdG8g
cmVtb3ZlIGl0IHdoZW4gY29taW5nIGJhY2sgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIChl
LmcuIGluICdwYWdlc2hvdycgZXZlbnQgaGFuZGxlcikuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTc2
NzAwNjQ+LgogICAgIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGZvciBkb2NzLmdv
b2dsZS5jb20gaG9zdCBiZWNhdXNlIG9mIGhvc3RlZCBHIFN1aXRlIGFwcHMuCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xh
c3MoImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1m
cmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBh
dXRvKiBmaXJzdENoaWxkSW5Cb2R5ID0gbV9kb2N1bWVudC0+Ym9keSgpID8gbV9kb2N1bWVudC0+
Ym9keSgpLT5maXJzdENoaWxkKCkgOiBudWxscHRyOwogICAgIGlmIChpczxIVE1MRGl2RWxlbWVu
dD4oZmlyc3RDaGlsZEluQm9keSkpIHsKICAgICAgICAgYXV0byYgZGl2ID0gZG93bmNhc3Q8SFRN
TERpdkVsZW1lbnQ+KCpmaXJzdENoaWxkSW5Cb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IGVlMGQ1Njg4Y2I4
ODFhZGRlMDBhNjlkNmI2M2Q5ZWNlOWFkNjczN2QuLmM4Y2RjNGM0YTRmNjA4NTFjZDFhM2Y5M2Ji
Njc3NTNiODM3ODY1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgIlJl
bmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlN0eWxl
QWRqdXN0ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBDb21w
b3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBSZW5kZXIKICAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3JkZXIgbWFwLgogICAg
IG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5jbGVhcigpOwogCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIAogICAgIC8vIE5vdyBtYXJrIGFueSBzdGlsbCBhY3RpdmUgYW5pbWF0aW9u
cyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMuCiAgICAgaWYgKHRhcmdldFN0
eWxlLmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRl
eCBiMTQ5NTE4NDQ3M2RjYWUxYWZjNWNhOTdkNDQ0YWJjNjU5MTdiOGM4Li43MzFjMjg3ODI1Njkw
NGQzZjhkNjM1YmNiNTA2NmY3ZWM1MWJlY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQpAQCAtNDIsNyArNDIsNyBAQAogI2ltcG9ydCAiVGV4dFRyYWNrTGlzdC5oIgogI2lt
cG9ydCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+
Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00MDMsNyArNDAzLDcgQEAgY29uc3QgVmVjdG9yPEF0b21TdHJpbmc+
JiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6b2JzZXJ2ZWRFdmVudE5hbWVzKCkK
IAogY29uc3QgQXRvbVN0cmluZyYgIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojpl
dmVudE5hbWVBbGwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBl
dmVudE5hbWVBbGwoImFsbEV2ZW50cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBldmVudE5hbWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQubW0KaW5kZXggZThlMzljOTI2M2Q3YTU4NzNiYTljMTc0YjU4ZTQxZmY4M2Q3N2Q0
MC4uNTFmNWFhYmFmNmIxNTIyZDk1YWMxYTlmMmY4ZTM2YzM2MzAxZjRhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTQyLDcgKzQyLDcgQEAKICNpbXBvcnQgIlRleHRU
cmFja0xpc3QuaCIKICNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUv
Q29yZUFuaW1hdGlvbi5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0
IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg0LDcgKzE4NCw3IEBAIGNvbnN0IFZl
Y3RvcjxBdG9tU3RyaW5nPiYgVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6Om9ic2Vy
dmVkRXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0g
ImFsbEV2ZW50cyI7CiAgICAgcmV0dXJuIHNFdmVudE5hbWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4IDdmY2FhNDRkNTRh
Mzg3NDJmN2RkNTg3NDAwNmFhNDM3NmUyNTg0OGMuLmU3ZjQ2Y2UwNTdlMzI0NWE2N2QxYjQxZWI3
ZTI2MGJlYTZjOGVkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmNwcApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtMTQ5
LDEyICsxNDksMTIgQEAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGFDYWNoZSYgZm9udFBsYXRmb3Jt
RGF0YUNhY2hlKCkKIAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjphbHRlcm5hdGVGYW1p
bHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291
cmllcigiQ291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXci
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiB0aW1lcygiVGltZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5l
dyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoIkNvdXJpZXIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyTmV3KCJDb3VyaWVyIE5ldyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFuIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYg
cGxhdGZvcm1TcGVjaWZpY0FsdGVybmF0ZSA9IHBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShm
YW1pbHlOYW1lKTsKICAgICBpZiAoIXBsYXRmb3JtU3BlY2lmaWNBbHRlcm5hdGUuaXNOdWxsKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
aW5kZXggYzgyOGJiZTdlNzc1NWVlNzExMjE3MjNlOWYxNzAyN2VkMWZhZTI0Ni4uYWI2OTFlODg3
NzdjY2U3NmVmOGQzMTkxZTE0N2Q2YmNkMGQwNzUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpA
QCAtMjk3LDEzICsyOTcsMTMgQEAgc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUGxheWVyRmFjdG9yeT4mJiBmYWN0b3J5KQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxp
Y2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXBwbGljYXRpb25PY3RldFN0cmVh
bTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHRleHRQbGFpbigpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQbGFpbigidGV4dC9wbGFp
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQbGFpbigidGV4dC9wbGFp
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdGV4dFBs
YWluOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAppbmRl
eCAyZDZlOWFhNjNjNGUxOTlkZDk5MmUxNzQ0MmU1ZGFlMGU2MzQxOGJlLi45YTg5Mjg0N2FkOWE3
OWYxOTk3MTQzMGQ0MWFkNzA2MGU5NTY1NDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWly
UGxheVN0cmVhbWluZy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvQWxnb3Jp
dGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dl
ckhlbHBlci5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQu
aD4KIAogI2lmIEhBVkUoQVZDT05URU5US0VZU0VTU0lPTikKQEAgLTc1LDEzICs3NSwxMyBAQCBj
b25zdCBWZWN0b3I8Rm91ckNDPiYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2YWxpZEZh
aXJQbGF5U3RyZWFtaW5nU2NoZW1lcwogCiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Qcml2YXRlRmFp
clBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJzaW5mIikgfTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYg
eyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFt
ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNrZCB7IE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJza2QiKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
InNrZCIpIH07CiAgICAgcmV0dXJuIHNrZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggOTlhOTNjMjU5OGQ0NzZjMTQyNjliNDRmOTFiMTMwN2Q0YzU3Yjk4ZC4uZWY4ZTkyZjQ2OWIy
ZTgxNmZmZTM2YWQ1ZmFlMmUwMTk5NmUxYjBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC05MSw3ICs5MSw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9MaXN0SGFzaFNldC5oPgotI2lt
cG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbXBvcnQgPHd0Zi9V
UkwuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgpAQCAtMzAxOCwxMiArMzAx
OCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEJ1ZmZl
cmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaQogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVF
KQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIG1ldGFkYXRhVHlwZShOU1N0cmluZyAqYXZNZXRh
ZGF0YUtleVNwYWNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBxdWlja1RpbWVVc2VyRGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS51ZHRhIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS5tZHRhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBpVHVuZXNNZXRhZGF0YSgiY29tLmFwcGxlLml0dW5lcyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEoIm9yZy5pZDMiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGhsc0RhdGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLkhMUyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVzZXJEYXRhKCJjb20u
YXBwbGUucXVpY2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBp
c29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cXVpY2tUaW1lTWV0YWRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUubWR0YSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRhKCJjb20uYXBwbGUuaXR1bmVzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEoIm9yZy5pZDMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBobHNEYXRlUmFuZ2VNZXRhZGF0YSgiY29t
LmFwcGxlLnF1aWNrdGltZS5ITFMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAKICAgICBpZiAoW2F2TWV0YWRhdGFLZXlTcGFjZSBpc0VxdWFsVG9TdHJpbmc6QVZNZXRhZGF0
YUtleVNwYWNlUXVpY2tUaW1lVXNlckRhdGFdKQogICAgICAgICByZXR1cm4gcXVpY2tUaW1lVXNl
ckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggZjYyOGFjMmI2Y2U3NGZmYzUyMDZi
MWEyZDljZmY1NzkyMTkwOTdkNS4uNWI2NzMwZjljODg0NjY5M2MwYTkxNzg5NzU1ODBlZGQzNTgw
Yjg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtMzYsOCArMzYsOCBAQAogCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNk
ZWZpbmUgSEFTX0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUgKFBMQVRGT1JNKE1BQykgfHwgKFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDExMDAwMCkpCiAKQEAgLTcwNSwxMyArNzA1LDEzIEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6
OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IEF0
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBTdWJzdGl0dXRlIHRoZSBkZWZhdWx0
IG1vbm9zcGFjZSBmb250IGZvciB3ZWxsLWtub3duIG1vbm9zcGFjZSBmb250cy4KICAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibW9uYWNvIikgfHwgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibWVubG8iKSkgewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllcigiY291cmllciIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyKCJjb3VyaWVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gZm9udEZvckZhbWlseShk
ZXNjcmlwdGlvbiwgY291cmllcik7CiAgICAgfQogCiAgICAgLy8gU3Vic3RpdHV0ZSBWZXJkYW5h
IGZvciBMdWNpZGEgR3JhbmRlLgogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShmYW1pbHksICJsdWNpZGEgZ3JhbmRlIikpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHZlcmRhbmEoInZlcmRhbmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdmVyZGFuYSgidmVyZGFuYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIHZl
cmRhbmEpOwogICAgIH0KICNlbmRpZgpAQCAtNzIwLDggKzcyMCw4IEBAIFJlZlB0cjxGb250PiBG
b250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IGNvbnN0IEF0CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcGFzaHRvKE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJQYXNodG8iKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdXJkdShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXJkdSIpKTsKICAgICBzdGF0
aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0geyAmYXJhYmljLmdldCgpLCAmcGFzaHRvLmdldCgp
LCAmdXJkdS5nZXQoKSB9OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBn
ZWV6YVBsYWluKCJHZWV6YVBybyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZ2VlemFCb2xkKCJHZWV6YVBy
by1Cb2xkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ2VlemFQbGFpbigiR2Vl
emFQcm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBnZWV6YUJvbGQoIkdlZXph
UHJvLUJvbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgZm9yIChT
dHJpbmcqIG1hdGNoV29yZCA6IG1hdGNoV29yZHMpIHsKICAgICAgICAgaWYgKGZhbWlseS5jb250
YWluc0lnbm9yaW5nQVNDSUlDYXNlKCptYXRjaFdvcmQpKQogICAgICAgICAgICAgcmV0dXJuIGZv
bnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGlzRm9udFdlaWdodEJvbGQoZGVzY3JpcHRpb24ud2Vp
Z2h0KCkpID8gZ2VlemFCb2xkIDogZ2VlemFQbGFpbik7CkBAIC0xNTA3LDEwICsxNTA3LDEwIEBA
IGNvbnN0IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1l
KGNvbnN0IEF0b21TdHJpbmcmIGZhbWlsCiAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHdlaXJ1YW5Z
YUhlaVN0cmluZ1tdID0geyAweDVmYWUsIDB4OGY2ZiwgMHg5NmM1LCAweDllZDEgfTsKICAgICBz
dGF0aWMgY29uc3QgVUNoYXIgd2VpcnVhblpoZW5nSGVpdGlTdHJpbmdbXSA9IHsgMHg1ZmFlLCAw
eDhlZGYsIDB4NmI2MywgMHg5ZWQxLCAweDlhZDQgfTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBzb25ndGlTQygiU29uZ3RpIFNDIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBz
b25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoZWl0aVNDUmVwbGFjZW1lbnQo
IlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoZWl0aVRDUmVwbGFjZW1lbnQoIlBpbmdG
YW5nIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc29uZ3RpU0MoIlNvbmd0
aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNvbmd0aVRDKCJTb25ndGkg
VEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWl0aVNDUmVwbGFjZW1lbnQo
IlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVpdGlUQ1Jl
cGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgIHN3aXRjaCAoZmFtaWx5TmFtZS5sZW5ndGgoKSkgewogICAgIGNhc2UgMjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZv
bnREYXRhYmFzZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcAppbmRleCBjYzRlMmJjNDQ2ZjI4
ZTQ5ZGViNTMzNmEzM2IwYmJmNzk4NmZjMmQwLi42ZWIwNmM5YWEyYTEzMDc5ZmU5ZGFjNzgwNmFj
YzBiMzc4NWE2MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJG
b250Q2FzY2FkZURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKQEAgLTIxMywyMiArMjE0LDIyIEBAIFN5c3RlbUZvbnREYXRhYmFzZUNv
cmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6
OnN5CiAKICAgICBzd2l0Y2ggKHN5c3RlbUZvbnRLaW5kKSB7CiAgICAgY2FzZSBTeXN0ZW1Gb250
S2luZDo6U3lzdGVtVUk6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygic3lzdGVtLXVpIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygic3lzdGVtLXVpIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXN1bHQuZm9udE5hbWUg
PSBzeXN0ZW1VSS5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3lzdGVt
Rm9udEtpbmQ6OlVJU2VyaWY6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHN5c3RlbVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1zZXJpZiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSVNlcmlmID0gQXRvbVN0cmluZygidWkt
c2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3Vs
dC5mb250TmFtZSA9IHN5c3RlbVVJU2VyaWYuZ2V0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSU1vbm9zcGFjZTogewotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5n
KCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lz
dGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5nKCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJ
TW9ub3NwYWNlLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1G
b250S2luZDo6VUlSb3VuZGVkOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBzeXN0ZW1VSVJvdW5kZWQgPSBBdG9tU3RyaW5nKCJ1aS1yb3VuZGVkIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJUm91bmRlZCA9IEF0b21TdHJp
bmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJUm91bmRlZC5nZXQoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCBhMGFhMjUwM2VhNWViZWM5Y2JlYTVhYzcy
N2Y3MDYwNTkzOTQ1NzU1Li5jYjBiNGMzYjA4YTU1MWE0YmJkZTZjM2FhOTZlNzFjYmQ0NzNhMTk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgi
CiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC0zNyw3ICszNyw3IEBAIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0
ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlQWxwaGE6
OmVmZmVjdE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzX2VmZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFw
aGljLmNwcAppbmRleCAwNDVlZTAxZjIyM2U0MjJmZmYwNDZmZWEyZjRjYTJkZGUwZGRkNzEyLi42
Y2E4OGJhYjQwZDI3YmYzMTMzYTYzNzk1OGUxYTlhNDE0ZGRhMmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhp
Yy5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYsNyArMzYsNyBAQCBSZWY8U291cmNlR3JhcGhp
Yz4gU291cmNlR3JhcGhpYzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyKQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VHcmFwaGljIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VHcmFwaGlj
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzX2VmZmVj
dE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9p
b3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDRmMDhjYTA2ZDI0ZTlkYzNmYTA0MzQxOGMzY2JmYzI4
Mjc2ZWUxZDEuLjg0YjdhMzg5YzA5ZDQwZmY4N2RhNzc5ZDAyOWVkMDAxYTQ4ZjI2OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlP
Uy5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NT
UEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KICNpbXBvcnQgPHd0
Zi9IYXNoU2V0Lmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtNTMsOCArNTMsOCBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldEN1c3Rv
bUZhbGxiYWNrRm9udChjb25zdCBVSW50MzIgYywgY29uc3QgRm9udERlcwogewogICAgIEFTU0VS
VChyZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChjKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gaGVsdmV0aWNhRmFtaWx5KCJIZWx2ZXRpY2EgTmV1ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gdGltZXNOZXdSb21hblBTTVRGYW1pbHkoIlRpbWVzTmV3Um9tYW5QU01UIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVsdmV0aWNhRmFtaWx5KCJIZWx2ZXRp
Y2EgTmV1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW5Q
U01URmFtaWx5KCJUaW1lc05ld1JvbWFuUFNNVCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKIAogICAgIEF0b21TdHJpbmcqIGZhbWlseSA9IG51bGxwdHI7CiAgICAgc3dpdGNo
IChjKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCmluZGV4IDE3Y2I1
MGUzYTU1NTEwNTViMzNiNTZkM2E1MWE2NjgzYjc3ZmMwMjMuLjhjY2FmZDMwMWQ0ZGQzNDQyYzdm
ZjRjMmJkMjVjN2UxMjQ4MGYzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVy
cy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFRFWE1BUF9ERUNMQVJFX1ZBUklBQkxFKEFjY2Vzc29y
LCBOYW1lLCBUeXBlKSBcCiAgICAgR0x1aW50IEFjY2Vzc29yIyNMb2NhdGlvbigpIHsgXAotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZShOYW1lLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7IFwKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKE5hbWUsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAogICAgICAgICByZXR1cm4gZ2V0TG9jYXRpb24o
bmFtZS5nZXQoKSwgVHlwZSk7IFwKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggNjhkNDhlODc2NDk1
YTgyNjdlNzU4OTczZjFkZTVhYmMyZTE4MTVmOC4uMmNiMjQ5MzgwZmFlMTY1ZmNmMzRjZmM4MDZi
ZjNjMjRmMDk4Njk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxt
bGFuZy5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
QEAgLTM3Myw3ICszNzMsNyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpmb250RnJvbURlc2Ny
aXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbgogCiBSZWY8Rm9udD4g
Rm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBmYWxsYmFja0ZvbnROYW1lOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZmFsbGJhY2tGb250TmFtZTsKIAogICAgIGlmICghZmFsbGJhY2tG
b250TmFtZS5nZXQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAqZm9udEZvckZhbWlseShm
b250RGVzY3JpcHRpb24sIGZhbGxiYWNrRm9udE5hbWUpOwpAQCAtMzg0LDcgKzM4NCw3IEBAIFJl
ZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpCiAgICAgLy8gU2VhcmNoIGFsbCB0eXBpY2FsIFdpbmRvd3Mt
aW5zdGFsbGVkIGZ1bGwgVW5pY29kZSBmb250cy4KICAgICAvLyBTb3J0ZWQgYnkgbW9zdCB0byBs
ZWFzdCBnbHlwaHMgYWNjb3JkaW5nIHRvIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW5p
Y29kZV90eXBlZmFjZXMKICAgICAvLyBTdGFydCB3aXRoIFRpbWVzIE5ldyBSb21hbiBhbHNvIHNp
bmNlIGl0IGlzIHRoZSBkZWZhdWx0IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2hhbmdlIHByZWZzLgot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBm
YWxsYmFja0ZvbnRzW10gPSB7CiAgICAgICAgIEF0b21TdHJpbmcoIlRpbWVzIE5ldyBSb21hbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKICAgICAgICAgQXRvbVN0cmluZygi
TWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCks
CiAgICAgICAgIEF0b21TdHJpbmcoIlRhaG9tYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSwKQEAgLTY5NCw4ICs2OTQsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3Jt
RGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogCiBj
b25zdCBBdG9tU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShj
b25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJpZigiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtaWNyb3NvZnRTYW5zU2VyaWYoIk1p
Y3Jvc29mdCBTYW5zIFNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgc3dpdGNoIChmYW1pbHlOYW1lLmxlbmd0aCgpKSB7CiAgICAgLy8gT24gV2luZG93cywg
d2UgZG9uJ3Qgc3VwcG9ydCBiaXRtYXAgZm9udHMsIGJ1dCBsZWdhY3kgY29udGVudCBleHBlY3Rz
IHN1cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCmluZGV4IDg1YWExZTE0MTViMDBm
NTExOWVkN2ExYjY0M2I5NmFmZDIwYjc1MDkuLjEwYjZjZGFlZDhjZDRiNDM1NjM2MzZiZGU3OWNl
NDA4NDM5ZThmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCkBAIC0zMyw3ICszMyw3
IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPGxpbWl0cz4K
ICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5o
PgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAtMTUwLDcgKzE1MCw3IEBAIHN0
YXRpYyBpbmxpbmUgQXRvbVN0cmluZyBleHRyYWN0SFRUUFN0YXR1c1RleHQoQ0ZIVFRQTWVzc2Fn
ZVJlZiBtZXNzYWdlUmVmKQogICAgIGlmIChhdXRvIGh0dHBTdGF0dXNMaW5lID0gYWRvcHRDRihD
RkhUVFBNZXNzYWdlQ29weVJlc3BvbnNlU3RhdHVzTGluZShtZXNzYWdlUmVmKSkpCiAgICAgICAg
IHJldHVybiBleHRyYWN0UmVhc29uUGhyYXNlRnJvbUhUVFBTdGF0dXNMaW5lKGh0dHBTdGF0dXNM
aW5lLmdldCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBkZWZh
dWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZh
dWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGRlZmF1bHRTdGF0dXNUZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAppbmRleCAyOWViZTU2YWYwOTExMmIzMWU1MzY5
ZmU4OWVhNzg5NzRiZjc3ZTAwLi5lMWJhMjNkOTlmNjFmMmYzZWQzYjU0MzNiMzc0NGNhNjJhYzNj
MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5j
cHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRy
YWlsaW5nRmxvYXRzUm9vdElubGluZUJveC5oIgogI2luY2x1ZGUgIlZlcnRpY2FsUG9zaXRpb25D
YWNoZS5oIgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIxNTgs
NyArMjE1OSw3IEBAIHZvaWQgQ29tcGxleExpbmVMYXlvdXQ6OmNoZWNrTGluZXNGb3JUZXh0T3Zl
cmZsb3coKQogICAgIC8vIERldGVybWluZSB0aGUgd2lkdGggb2YgdGhlIGVsbGlwc2lzIHVzaW5n
IHRoZSBjdXJyZW50IGZvbnQuCiAgICAgLy8gRklYTUU6IENTUzMgc2F5cyB0aGlzIGlzIGNvbmZp
Z3VyYWJsZSwgYWxzbyBuZWVkIHRvIHVzZSAweDAwMkUgKEZVTEwgU1RPUCkgaWYgaG9yaXpvbnRh
bCBlbGxpcHNpcyBpcyAibm90IHJlbmRlcmFibGUiCiAgICAgY29uc3QgRm9udENhc2NhZGUmIGZv
bnQgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNTdHIo
Jmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAgICAgY29uc3QgRm9udENhc2NhZGUmIGZpcnN0TGlu
ZUZvbnQgPSBtX2Zsb3cuZmlyc3RMaW5lU3R5bGUoKS5mb250Q2FzY2FkZSgpOwogICAgIGZsb2F0
IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggPSBmaXJzdExpbmVGb250LndpZHRoKG1fZmxvdy5jb25z
dHJ1Y3RUZXh0UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIG1fZmxvdy5maXJzdExpbmVTdHls
ZSgpKSk7CiAgICAgZmxvYXQgZWxsaXBzaXNXaWR0aCA9IChmb250ID09IGZpcnN0TGluZUZvbnQp
ID8gZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA6IGZvbnQud2lkdGgobV9mbG93LmNvbnN0cnVjdFRl
eHRSdW4oJmhvcml6b250YWxFbGxpcHNpcywgMSwgc3R5bGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApp
bmRleCA4MTUwZjU1ZmRlMjZhNjQ3YTdlZDgwM2EzZGI3NzMzNmM0YTcwOThiLi4xZTk4MDA2YWVh
M2I0ZTZjMzA4Y2VjZDM2NzRiZDIyZTBmNWU0YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCkBAIC05OTEs
OCArOTkyLDggQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNs
YW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIGNvbnN0IFVDaGFyIGVsbGlwc2lzQW5kU3BhY2VbMl0gPSB7IGhvcml6b250
YWxFbGxpcHNpcywgJyAnIH07Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBlbGxpcHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOwotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxF
bGxpcHNpcywgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihlbGxpcHNpc0FuZFNwYWNlLCAyKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICAgICAgY29uc3QgUmVu
ZGVyU3R5bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9PSAxID8gZmlyc3RMaW5lU3R5
bGUoKSA6IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gbGluZVN0
eWxlLmZvbnRDYXNjYWRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCmluZGV4IDFkN2YwMzFjZmU1MWEyMjRhNWFmOGEwNmUyZGI4N2U4ZDQ5
ZGVmMjcuLmJlNDE2MGNhMTdkYmY4NzI1ZjBlOTM4ZDM4Y2RhYjVmNDc0Mzg5YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDgsNiAr
NDgsNyBAQAogI2luY2x1ZGUgIlN0eWxlU2VsZkFsaWdubWVudERhdGEuaCIKICNpbmNsdWRlICJT
dHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldpbGxDaGFuZ2VEYXRhLmgiCisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJDb21wYXJpc29uLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgpAQCAtMTU2Niw4ICsxNTY3LDggQEAgY29uc3QgQXRvbVN0cmluZyYg
UmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBoeXBoZW5h
dGlvblN0cmluZzsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBkZXBlbmQgb24gbG9jYWxl
LgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoeXBoZW5NaW51c1N0cmlu
ZygmaHlwaGVuTWludXMsIDEpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoeXBoZW5NaW51c1N0cmluZygmaHlwaGVuTWludXMs
IDEpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4sIDEpOwogICAgIHJldHVybiBmb250Q2FzY2FkZSgpLnBy
aW1hcnlGb250KCkuZ2x5cGhGb3JDaGFyYWN0ZXIoaHlwaGVuKSA/IGh5cGhlblN0cmluZyA6IGh5
cGhlbk1pbnVzU3RyaW5nOwogfQogCkBAIC0xNTc5LDI4ICsxNTgwLDI4IEBAIGNvbnN0IEF0b21T
dHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKICAgICBj
YXNlIFRleHRFbXBoYXNpc01hcms6OkN1c3RvbToKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNp
c0N1c3RvbU1hcmsoKTsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkRvdDogewotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkRG90U3RyaW5nKCZidWxs
ZXQsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkRv
dFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERvdFN0cmluZygmYnVsbGV0LCAxKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1w
aGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkRG90U3RyaW5n
IDogb3BlbkRvdFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDaXJj
bGU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZENp
cmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVDaXJjbGUsIDEpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxl
ZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5DaXJjbGVTdHJpbmcoJndoaXRl
Q2lyY2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1w
aGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xlU3RyaW5n
OwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkRvdWJsZUNpcmNsZTogewotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkRG91YmxlQ2lyY2xl
U3RyaW5nKCZmaXNoZXllLCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKKyAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWREb3Vi
bGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1
bGxzZXllLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1w
aGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91Ymxl
Q2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OlRyaWFuZ2xl
OiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmaWxsZWRUcmlh
bmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpOwotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlblRyaWFuZ2xlU3RyaW5nKCZ3aGl0ZVVwUG9p
bnRpbmdUcmlhbmdsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkVHJpYW5nbGVTdHJpbmcoJmJsYWNrVXBQb2ludGlu
Z1RyaWFuZ2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBvcGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFu
Z2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFz
aXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9wZW5UcmlhbmdsZVN0cmlu
ZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpTZXNhbWU6IHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZFNlc2FtZVN0cmluZygmc2Vz
YW1lRG90LCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9w
ZW5TZXNhbWVTdHJpbmcoJndoaXRlU2VzYW1lRG90LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWRTZXNhbWVTdHJpbmco
JnNlc2FtZURvdCwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gb3BlblNlc2FtZVN0cmluZygmd2hpdGVTZXNhbWVEb3QsIDEpOwog
ICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZp
bGxlZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7CiAgICAgfQogICAg
IGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6QXV0bzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1
c3Rlci5jcHAKaW5kZXggMjIxZWU2NWQ5Yjk4N2VmYTMyMmUzNjljMTQzMGYxZTI4MGVhZjg2OS4u
NjM3M2MyZmFhZjA1MTMxZTk1Yjg0YTk5MjcyMjA4OGRjMmVjZjQzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJTVkdV
UklSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC01NDUsMjAgKzU0NiwyMCBAQCB2b2lkIEFk
anVzdGVyOjphZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5bGUmIHN0eWxlKSBj
b25zdAogCiAgICAgaWYgKG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNHTWFpbE92ZXJmbG93U2Ny
b2xsUXVpcmsoKSkgewogICAgICAgICAvLyBUaGlzIHR1cm5zIHNpZGViYXIgc2Nyb2xsYWJsZSB3
aXRob3V0IG1vdXNlIG1vdmUgZXZlbnQuCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiByb2xlVmFsdWUoIm5hdmlnYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBpZiAoc3R5bGUub3ZlcmZsb3dZKCkgPT0gT3ZlcmZs
b3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
cm9sZUF0dHIpID09IHJvbGVWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNldE92ZXJmbG93WShP
dmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1aXJrcygpLm5lZWRz
WW91VHViZU92ZXJmbG93U2Nyb2xsUXVpcmsoKSkgewogICAgICAgICAvLyBUaGlzIHR1cm5zIHNp
ZGViYXIgc2Nyb2xsYWJsZSB3aXRob3V0IGhvdmVyLgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gaWRWYWx1ZSgiZ3VpZGUtaW5uZXItY29udGVudCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZFZhbHVlKCJndWlkZS1pbm5lci1jb250ZW50
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBpZiAoc3R5bGUu
b3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQtPmlkRm9yU3R5bGVS
ZXNvbHV0aW9uKCkgPT0gaWRWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNldE92ZXJmbG93WShP
dmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1aXJrcygpLm5lZWRz
RnVsbHNjcmVlbkRpc3BsYXlOb25lUXVpcmsoKSkgewogICAgICAgICBpZiAoaXM8SFRNTERpdkVs
ZW1lbnQ+KG1fZWxlbWVudCkgJiYgc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpOb25l
KSB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
aW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKCJpbnN0cmVhbS1uYXRpdmUtdmlkZW8tLW1vYmls
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0VsZW1lbnRJRCgidmpzX3Zp
ZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
ICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MoImluc3RyZWFtLW5hdGl2ZS12aWRlby0tbW9i
aWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0VsZW1l
bnRJRCgidmpzX3ZpZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogCiAgICAgICAgICAgICBhdXRvJiBkaXYgPSBkb3duY2FzdDxIVE1MRGl2RWxlbWVu
dD4oKm1fZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoZGl2Lmhhc0NsYXNzKCkgJiYgZGl2LmNs
YXNzTmFtZXMoKS5jb250YWlucyhpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCA1ZDA1
MjExOWM2NDRjYmVmMjQwMmEyYzM5NmY2Nzc3Njk2MWM4OTE4Li5kMGE2MmU0ZTg0NDAxZDI2MTdh
Nzc1NThkMzBlYjJkODAyODk2MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTVkdQYXRo
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBAIC0xMDksOCArMTEw
LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAKIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlKCkgY29u
c3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1Zh
bCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2UoImF1dG8tcmV2ZXJz
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9WYWwoImF1dG8iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZlcnNlIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcm
IHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6cm90YXRlQXR0cik7CiAgICAgaWYgKHJv
dGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4gUm90YXRlQXV0bzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAxYjQ2MWI0NzMxODY4MDY0MjBj
OGEwZWQ3YTM3YzE2ODk2NmQzYjMyLi5hMTRiYzk4NGM4OWFlOTI4YmQzZjFhZTFhNjU2ZWY5NTcx
MmJjM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBA
IC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCiAjaW5jbHVk
ZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Cisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yNzYsMTAg
KzI3NiwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUo
KQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21TdHJp
bmcmIGNhbGNNb2RlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBkaXNjcmV0ZSgiZGlzY3JldGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGxpbmVhcigi
bGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbGluZWFyKCJsaW5lYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNl
ZCgicGFjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzcGxpbmUoInNwbGlu
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoY2FsY01vZGUg
PT0gZGlzY3JldGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNNb2RlOjpEaXNjcmV0ZSk7CiAg
ICAgZWxzZSBpZiAoY2FsY01vZGUgPT0gbGluZWFyKQpAQCAtMjk0LDggKzI5NCw4IEBAIHZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbVN0cmluZyYgY2FsY01v
ZGUpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRlVHlwZShjb25zdCBB
dG9tU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sKCJY
TUwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykKICAgICAgICAgbV9h
dHRyaWJ1dGVUeXBlID0gQXR0cmlidXRlVHlwZTo6Q1NTOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0
ZVR5cGUgPT0geG1sKQpAQCAtMzIxLDE0ICszMjEsMTQgQEAgU3RyaW5nIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNB
ZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtKCJz
dW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjph
ZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgp
ID09IEFuaW1hdGlvbk1vZGU6OkJ5OwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6Omlz
QWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1
bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1l
czo6YWNjdW11bGF0ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gJiYgYW5pbWF0aW9u
TW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRvOwogfQpAQCAtNjA2LDcgKzYwNiw3IEBAIHZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6Y29tcHV0ZUNTU1Byb3BlcnR5VmFsdWUoU1ZHRWxlbWVudCog
ZWxlbWVudCwgQ1NTUHJvcGVyCiAKIHN0YXRpYyBib29sIGluaGVyaXRzRnJvbVByb3BlcnR5KFNW
R0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJp
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50
LmNwcAppbmRleCA2Y2U3NWVlNzUzMzI0YjhkZTYzMWEzMDY0M2Y5YmQ4ZWY4MWQ4NjlkLi4zMTg3
OWY1N2RmNzYwZjhmYWJjMjEzZjM2M2E1NTJiMmM1YTcyYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY0LDcgKzY1
LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQp
CiAKIGNvbnN0IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgi
dGV4dC9jc3MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFsdWUo
InRleHQvY3NzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0
IEF0b21TdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICBy
ZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZS5nZXQoKSA6IG47CiB9CkBAIC03Niw3ICs3
Nyw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21TdHJpbmcmIHR5
cGUpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkaWEoKSBjb25zdAog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFs
dWUoImFsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgi
YWxsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21T
dHJpbmcmIG4gPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjptZWRp
YUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAK
aW5kZXggNDQ5YjE0Y2Q1MDFkZjI1NTg3NGVjY2ZjNTg0OWM4OTRmMjgxMTZmZC4uNzZhMmViODdj
YzE0ODc5OWViZmE3MDEyYzkzYWFiOGI3ODc3Y2FhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNs
dWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM0MCw3ICszNDEsNyBA
QCBTTUlMVGltZSBTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYg
ZGF0YSkKICAgICAKICAgICBTdHJpbmcgcGFyc2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwog
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVW
YWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVm
aW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBpZiAocGFyc2UgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAgICAgICByZXR1cm4gU01J
TFRpbWU6OmluZGVmaW5pdGUoKTsKIApAQCAtNjUyLDggKzY1Myw4IEBAIGJvb2wgU1ZHU01JTEVs
ZW1lbnQ6OmlzRnJvemVuKCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNW
R1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKIHsgICAgCi0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5ldmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2hlbk5vdEFjdGl2ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5ldmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdoZW5Ob3RBY3RpdmUoIndoZW5Ob3RBY3RpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVl
ID09IG5ldmVyKQogICAgICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAtNjY0LDcgKzY2NSw3
IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29u
c3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgp
IGNvbnN0CiB7ICAgCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGZyZWV6ZSgiZnJlZXplIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnJlZXpl
KCJmcmVlemUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05h
bWVzOjpmaWxsQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/IEZpbGxGcmVlemUg
OiBGaWxsUmVtb3ZlOwogfQpAQCAtNjk3LDcgKzY5OCw3IEBAIFNNSUxUaW1lIFNWR1NNSUxFbGVt
ZW50OjpyZXBlYXRDb3VudCgpIGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm4gU01JTFRpbWU6OnVucmVzb2x2ZWQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHZhbHVlID09IGlu
ZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7CiAg
ICAgYm9vbCBvazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAK
aW5kZXggNzJiMjViNWI4Y2MyZmMxZTcwMWM3OTE5ZTMzOTI3NjdjMjMxNDA1ZC4uMDVmYmFhNzVl
MzIwYjgxYTlhZTQxZDdhOGVhZjVmYWE2NDJjOTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRp
dmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaW5jbHVkZSAi
UmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29s
b3IgU1ZHQW5pbWF0aW9uQ29sb3JGdW5jdGlvbjo6Y29sb3JGcm9tU3RyaW5nKFNWR0VsZW1lbnQq
IHRhcmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdXJyZW50Q29sb3IoImN1cnJlbnRDb2xvciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1cnJlbnRDb2xvcigiY3VycmVudENv
bG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKHN0cmlu
ZyAhPSBjdXJyZW50Q29sb3IuZ2V0KCkpCiAgICAgICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0
czxDb2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaAppbmRleCAyMWU4ODNmZTI0NDgzOGZm
Mzc0Njg2OWJmMTFhM2RmNDZmZjRiZTJhLi41YTIxZTQ1YzkxZDRmMWYwMDU5NTY1YmUwNWIyMGVk
Njc3ZjY2OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlBbmltYXRvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlQYXJzZXIuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBbmltYXRvci5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTcyLDcgKzczLDcgQEAgY2xhc3MgU1ZH
UHJvcGVydHlBbmltYXRvciA6IHB1YmxpYyBTVkdBdHRyaWJ1dGVBbmltYXRvciB7CiAKICAgICBT
dHJpbmcgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBpbmhlcml0ID8gY29t
cHV0ZUluaGVyaXRlZENTU1Byb3BlcnR5VmFsdWUodGFyZ2V0RWxlbWVudCkgOiB2YWx1ZTsKICAg
ICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398141</attachid>
            <date>2020-04-30 19:10:44 -0700</date>
            <delta_ts>2020-04-30 19:24:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430191043.patch</filename>
            <type>text/plain</type>
            <size>166401</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmY3Njk1MGY5YzJhODZjMDQxNjIwOGIxNWQ5MzZlNzZjNTE1Yzgx
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ6Ok1haW5U
aHJlYWROZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDo6b3BlcmF0b3IgVCYpOgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ6OmdldCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3BlcmF0
b3ItPik6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3BlcmF0b3Ig
Y29uc3QgVCYgY29uc3QpOgorICAgICAgICAoV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ6
OmdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDo6b3Bl
cmF0b3ItPiBjb25zdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ6OmNvbnN0cnVjdCk6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ6Om9wZXJhdG9yIFQmKToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ry
b3llZDo6Z2V0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDo6
b3BlcmF0b3ItPik6CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ6
Om9wZXJhdG9yIGNvbnN0IFQmIGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlO
ZXZlckRlc3Ryb3llZDo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6TWFpblRocmVhZExhenlO
ZXZlckRlc3Ryb3llZDo6b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgICogd3RmL3RleHQvQXRv
bVN0cmluZy5jcHA6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0
LTI5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFtXaW5dIERlYWRsb2NrIGluIFdURjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0
d29ya1Byb2Nlc3MuZXhlIGlzIGV4aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2Fh
MWRjNjM2MjkzYmMyN2ZhNzhiYTVjNGVlLi5kMGY0NDY4MjZmNjM4ZmJhOTc2MTc1MGJkYzNlY2Fk
ZDllMjIxZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjY0IEBACisyMDIwLTA0LTMwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZCAvIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNo
YW5nZS4gQWRkaW5nIGFzc2VydGlvbnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxl
cy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAg
ICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
aXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5
d29yZCk6CisgICAgICAgIChXZWJDb3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFjazo6a2luZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrOjpjb250ZW50SGludCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6
CisgICAgICAgIChXZWJDb3JlOjphcnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgor
ICAgICAgICAqIGRvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1
c3RvbUVsZW1lbnROYW1lKToKKyAgICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICog
ZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAg
ICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxl
KToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJpbnRXcmFwcGVy
RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAqIGh0bWwvQXV0b2NhcGl0YWxpemUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yQXV0b2NhcGl0YWxpemVUeXBlKToKKyAgICAgICAgKiBo
dG1sL0F1dG9maWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29udGFjdFRva2VuKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVudCk6CisgICAgICAgICogaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtS2V5R2VuZXJhdG9y
Ojpmb3JtS2V5KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3TGluayBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdW1tYXJ5U2xv
dE5hbWUpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9WYWxpZERpclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnRydWVOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZhbHNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwbGFpbnRleHRPbmx5
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxl
bWVudDo6YXV0b2NvbXBsZXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6bG9hZGluZ0ZvckJp
bmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE91
dHB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNlbGxF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50OjpzY29w
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpkaXJlY3Rpb25TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6Cisg
ICAgICAgICogaHRtbC9JbnB1dE1vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2Rl
TmFtZXM6Om5vbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnRlbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dE1vZGVOYW1lczo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVz
OjplbWFpbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6bnVtZXJpYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZGVjaW1hbCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dE1vZGVOYW1lczo6c2VhcmNoKToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZU5h
bWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpidXR0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmNoZWNrYm94KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZU5hbWVzOjpjb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmVtYWlsKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZU5hbWVzOjpmaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpoaWRkZW4pOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjptb250aCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6bnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjpwYXNzd29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmFkaW8p
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnJhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0VHlwZU5hbWVzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6c2VhcmNoKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpzdWJt
aXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6dGltZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6
dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjp3ZWVrKToKKyAgICAgICAg
KiBodG1sL01lZGlhQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0
YXRlV2FpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0YXRlUGxheWluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1N0YXRlRW5kZWQpOgorICAgICAgICAqIGh0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUpOgorICAgICAgICAq
IGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
RmllbGRJbnB1dFR5cGU6OmNyZWF0ZURhdGFMaXN0RHJvcGRvd25JbmRpY2F0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVDb250YWluZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbik6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpW
YWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzTWFy
a2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRyb2wpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVt
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZSk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OlRleHRDb250cm9sUGxhY2Vob2xkZXJF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OllvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OllvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6dHJ5Q3JlYXRl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29udHJvbHNSb290RWxlbWVudDo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjptYWlu
RGVzY0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6dHJhbnNsYXRpb25L
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3Jk
KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y2FwdGlv
bnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2NyaXB0aW9uc0tleXdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y2hhcHRlcnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFk
YXRhS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpmb3JjZWRLZXl3b3JkKToKKyAgICAgICAg
KiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJh
Y2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1
ZTo6Y3VlQm94U2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3Vl
OjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
a0N1ZTo6cmVidWlsZERpc3BsYXlUcmVlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVFJlZ2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cEtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcyk6CisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrUmVnaW9uU2hhZG93UHNl
dWRvSWQpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFjazo6Y2FwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6Om1haW5LZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNpZ25L
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb2N1c0Rp
cmVjdGlvbkZvcktleSk6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UXVpcmtzOjpzaG91bGRCeXBhc3NCYWNrRm9yd2FyZENhY2hlIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmV2
ZW50TmFtZUFsbCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6ZXZlbnROYW1lQWxsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjphbHRlcm5hdGVG
YW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbk9jdGV0U3RyZWFtKToKKyAgICAgICAgKFdl
YkNvcmU6OnRleHRQbGFpbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZh
dGVGYWlyUGxheVN0cmVhbWluZzo6c2luZk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNUHJp
dmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6bWV0YWRhdGFUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnNpbWlsYXJGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c3lzdGVtRm9udFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmVmZmVjdE5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9p
b3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpnZXRDdXN0
b21GYWxsYmFja0ZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpsYXN0UmVz
b3J0RmFsbGJhY2tGb250KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6cGxhdGZvcm1B
bHRlcm5hdGVGYW1pbHlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVzcG9uc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RIVFRQU3Rh
dHVzVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBsZXhMaW5lTGF5b3V0OjpjaGVja0xpbmVzRm9yVGV4dE92ZXJm
bG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlM
aW5lQ2xhbXApOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzIGNvbnN0KToKKyAgICAg
ICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUgY29uc3QpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlv
bkVsZW1lbnQ6OnNldENhbGNNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9u
RWxlbWVudDo6aXNBZGRpdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRp
b25FbGVtZW50Ojppc0FjY3VtdWxhdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmluaGVy
aXRzRnJvbVByb3BlcnR5KToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlRWxlbWVudDo6dHlwZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6Om1lZGlhIGNvbnN0KToKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVt
ZW50OjpwYXJzZUNsb2NrVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OnJlc3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OmZpbGwg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50IGNv
bnN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVl
RnVuY3Rpb25JbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkNvbG9yRnVu
Y3Rpb246OmNvbG9yRnJvbVN0cmluZyk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvcjo6
YWRqdXN0Rm9ySW5oZXJpdGFuY2UgY29uc3QpOgorCiAyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgU29tZSBIVE1MIGVsZW1lbnQgY3JpdGlj
YWwgcGF0aHMgaW5jbHVkZSBBdG9tU3RyaW5nIG1hdGVyaWFsaXphdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFjZGM3MTMyYjlmNzg1NTkyYzk4ZmQ3
M2IxZDM2ZmU4MGI5YzM0My4uZWMxOTljOGJmYjdlMGJhMTY4MzQyNjJiNzYxYjQ0YjAyNzlmZmQ5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MDQsNiAr
NzA0LDcgQEAKIAkJRTE1NTU2RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvZ3Jh
cGhpY1V0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNTU1NkY0
MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwMEU1MjEyMDNENjQ1RjAwREE3OUJFIC8qIFVuaXF1ZUFy
cmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuaXF1ZUFycmF5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzMDRDQ0I5MjQ1QkE3MTUwMDMwOTA0MSAvKiBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMTFGQjE1MUYwQTU2
OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUaHJlYWRHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMTFGQjE2MUYwQTU2OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzE0OUEzQTIyOEJEQ0FCMDBCRkE2QzcgLyogQ29uY3VycmVudEJ1ZmZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25jdXJyZW50QnVmZmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwOTEsNiArMTA5Miw3IEBACiAJCQkJ
N0E2RUJBMzIyMDc0NkMzMzAwNEY5QzQ0IC8qIE1hY2hTZW5kUmlnaHQuaCAqLywKIAkJCQlBOEE0
NzJDNjE1MUE4MjVBMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgKi8sCiAJCQkJQThBNDcyQzcx
NTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuaCAqLywKKwkJCQlFMzA0Q0NCOTI0NUJBNzE1
MDAzMDkwNDEgLyogTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmggKi8sCiAJCQkJMUEyMzNDN0Mx
N0RBQTZFMzAwQTkzQUNGIC8qIE1hbGxvY1B0ci5oICovLAogCQkJCTMwNENBNEU0MTM3NTQzN0VC
RTkzMUQwMyAvKiBNYXJrYWJsZS5oICovLAogCQkJCUE4QTQ3MkM5MTUxQTgyNUIwMDQxMjNGRiAv
KiBNYXRoRXh0cmFzLmggKi8sCkBAIC0xNDM5LDggKzE0NDEsOCBAQAogCQlBOEE0NzM0RjE1MUE4
MjVCMDA0MTIzRkYgLyogaWN1ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQk1MkIyMjhDMTI0NThEQzgyMDA3NTNEOTEgLyogSUNVSGVscGVycy5oICovLAog
CQkJCUE4QTQ3MzUwMTUxQTgyNUIwMDQxMjNGRiAvKiBDb2xsYXRvcklDVS5jcHAgKi8sCisJCQkJ
NTJCMjI4QzEyNDU4REM4MjAwNzUzRDkxIC8qIElDVUhlbHBlcnMuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQK
aW5kZXggZDdhOWU5NjliYjQ4ZGZhNjI2M2EyNzAyNzE1NjhlMDkzYTM2NjQ0MC4uMTNmZDVmNTJk
ODYxZGY0OGU3OGEwN2Q4MmE0MGMzYjVlYThiMjYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAg
LTEyOCw2ICsxMjgsNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgTWFjaFNlbmRSaWdo
dC5oCiAgICAgTWFpblRocmVhZC5oCiAgICAgTWFpblRocmVhZERhdGEuaAorICAgIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZC5oCiAgICAgTWFsbG9jUHRyLmgKICAgICBNYXJrYWJsZS5oCiAgICAg
TWF0aEV4dHJhcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU5NjM0NGFjZjYzMjRjODU4ZGJmNWVhZmRlZDcxYWZkMDExMjc2NjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaApA
QCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZCk7CisgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CitwdWJsaWM6CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQo
QXJncyYmLi4uIGFyZ3MpCisgICAgICAgIDogbV9kYXRhKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdz
KS4uLikKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgfQorCisg
ICAgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkKE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCYmIG90
aGVyKQorICAgICAgICA6IG1fZGF0YShXVEZNb3ZlKG90aGVyLm1fZGF0YSkpCisgICAgeworICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIH0KKworICAgIG9wZXJhdG9yIFQmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBt
X2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCYgZ2V0KCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBtX2RhdGEuZ2V0KCk7CisgICAgfQor
CisgICAgVCogb3BlcmF0b3ItPigpCisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgICAgICByZXR1cm4gJm1fZGF0YS5nZXQoKTsKKyAgICB9CisKKyAgICBvcGVyYXRv
ciBjb25zdCBUJigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAgIGNvbnN0IFQmIGdl
dCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAgIGNvbnN0IFQqIG9wZXJhdG9yLT4o
KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAg
cmV0dXJuICZtX2RhdGEuZ2V0KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIE5ldmVyRGVzdHJv
eWVkPFQ+IG1fZGF0YTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQpOworICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwor
cHVibGljOgorICAgIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQoKSA9IGRlZmF1bHQ7CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIHZvaWQgY29uc3RydWN0KEFyZ3Mm
Ji4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAg
ICAgbV9kYXRhLmNvbnN0cnVjdChzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgIH0K
KworICAgIG9wZXJhdG9yIFQmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgICAgIHJldHVybiBtX2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCYgZ2V0KCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHJldHVybiBt
X2RhdGEuZ2V0KCk7CisgICAgfQorCisgICAgVCogb3BlcmF0b3ItPigpCisgICAgeworICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gJm1fZGF0YS5nZXQoKTsK
KyAgICB9CisKKyAgICBvcGVyYXRvciBjb25zdCBUJigpIGNvbnN0CisgICAgeworICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAg
IH0KKworICAgIGNvbnN0IFQmIGdldCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4gbV9kYXRhLmdldCgpOworICAgIH0KKworICAg
IGNvbnN0IFQqIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICAgICAgcmV0dXJuICZtX2RhdGEuZ2V0KCk7CisgICAgfQorCitwcml2
YXRlOgorICAgIExhenlOZXZlckRlc3Ryb3llZDxUPiBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXVEY7CisKK3VzaW5nIFdURjo6TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDsKK3Vz
aW5nIFdURjo6TWFpblRocmVhZE5ldmVyRGVzdHJveWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmlu
Zy5jcHAKaW5kZXggNzA2OGY1ZmZhNDgyZGIwNzA1ODUxZWNmNGQyZmQ1M2EzZmY3NGJkMS4uN2Yx
ODYxNjNkMzgxMjZiMjM0YTQ1ZWFjYzZhZDdlNTcxZDVlNDA0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0
b21TdHJpbmcuY3BwCkBAIC0xMzMsMTEgKzEzMywxMSBAQCB2b2lkIEF0b21TdHJpbmc6OnNob3co
KSBjb25zdAogCiAjZW5kaWYKIAotV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUg
TGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKLVdURl9FWFBPUlRf
UFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7Ci1XVEZf
RVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbG5zQXRvbURh
dGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVh
ZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOworV1RG
X0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc3RhckF0b21EYXRhOworV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sQXRvbURhdGE7CitXVEZfRVhQT1JUX1BS
SVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxu
c0F0b21EYXRhOwogCiB2b2lkIEF0b21TdHJpbmc6OmluaXQoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21T
dHJpbmcuaAppbmRleCA4OGI0ZWJhYzMyNzFiZDNlYjNjMTQxM2Q1ZjQ4MGJhM2ViY2MyMmQ0Li43
M2VlNzdkMzgzMWZhNWI2OWU2MDVlNWFkNjg2YTg2MmY2Mzg0MGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0
b21TdHJpbmcuaApAQCAtMjEsNyArMjEsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx1
dGlsaXR5PgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
SW1wbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTI5MCwxMSArMjkwLDExIEBAIGlu
bGluZSBBdG9tU3RyaW5nOjpBdG9tU3RyaW5nKE5TU3RyaW5nICpzdHJpbmcpCiAKIC8vIERlZmlu
ZSBleHRlcm5hbCBnbG9iYWwgdmFyaWFibGVzIGZvciB0aGUgY29tbW9ubHkgdXNlZCBhdG9tIHN0
cmluZ3MuCiAvLyBUaGVzZSBhcmUgb25seSB1c2FibGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi1l
eHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBu
dWxsQXRvbURhdGE7Ci1leHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBM
YXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3RhckF0b21EYXRhOwotZXh0ZXJuIFdURl9F
WFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7
Ci1leHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiB4bWxuc0F0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6
eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsKK2V4dGVybiBX
VEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBlbXB0eUF0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhy
ZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKK2V4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFp
blRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxuc0F0b21EYXRh
OwogCiBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgbnVsbEF0b20oKSB7IHJldHVybiBudWxsQXRv
bURhdGEuZ2V0KCk7IH0KIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBlbXB0eUF0b20oKSB7IHJl
dHVybiBlbXB0eUF0b21EYXRhLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlFdmVudC5jcHAKaW5kZXggNWM4NGM4NWVjNzcxZGQ1ODc3OWI0Mzk2NTg2NTgzY2Ji
OWU1YzBiMS4uYmQwNTQ3NGIwM2QwYzgwOWQzN2IxM2VlMWViNzJjYmI5ZTQxZDk1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxh
eS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcApAQCAtMjcsNyArMjcs
NyBAQAogI2luY2x1ZGUgIldlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaCIK
IAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgog
CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIApAQCAtMzcsOCArMzcsOCBA
QCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlFdmVudCk7CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmdGb3JQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG5vdEF2YWlsYWJsZVN0cmluZygibm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxhYmxlIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm90QXZhaWxhYmxlU3RyaW5nKCJub3QtYXZhaWxh
YmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIGF2
YWlsYWJsZSA/IGF2YWlsYWJsZVN0cmluZyA6IG5vdEF2YWlsYWJsZVN0cmluZzsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdp
c3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRh
UmVnaXN0cnkuY3BwCmluZGV4IDdjNTQ2ZGM2MDBiMTJjNTc2ZGQwODI3OWFiN2M2NjdmYTU1ZmI5
MTMuLjdhM2VlN2Q5MWQ1NTg3MDlmYzQ3OTNhODM4ZTg5NDcxN2FjNjQwY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
LSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKICNpZiBI
QVZFKEZBSVJQTEFZU1RSRUFNSU5HX0NFTkNfSU5JVERBVEEpCkBAIC0yNTgsMTkgKzI1OCwxOSBA
QCB2b2lkIEluaXREYXRhUmVnaXN0cnk6OnJlZ2lzdGVySW5pdERhdGFUeXBlKGNvbnN0IEF0b21T
dHJpbmcmIGluaXREYXRhVHlwZSwgSW5pdAogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJl
Z2lzdHJ5OjpjZW5jTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9T
VEFUSUNfU1RSSU5HX0lNUEwoImNlbmMiKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNOYW1lKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19J
TVBMKCJrZXlpZHMiKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMiKSB9
OwogICAgIHJldHVybiBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lz
dHJ5Ojp3ZWJtTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgid2VibSIpIH07CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIndlYm0iKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmNwcAppbmRleCA2MGVhNmU3ZDEwNTYzZWUxNzk0MGZjNTkzM2U4MzNlOWEwY2ZhZDFh
Li5iNGJjNTJlYjg3MGRjODU2NWJjMTBlMTcyYmRjOThkNTBiMTY1MGVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xz
SG9zdC5jcHAKQEAgLTM3LDMxICszNywzMiBAQAogI2luY2x1ZGUgIlRleHRUcmFjay5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1Zh
bHVlSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0
b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0
aWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRp
YyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXV0b21h
dGljOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25s
eUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmb3JjZWRPbmx5KCJmb3JjZWQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGZvcmNlZE9ubHkoImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBmb3JjZWRPbmx5OwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgYWx3YXlzT25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gYWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGFsd2F5c09uKCJhbHdheXMtb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFsd2F5c09uOwogfQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgbWFudWFsS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGFsd2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBhbHdheXNPbigibWFudWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBhbHdheXNPbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggZDBi
MmNiOWZkMGFhMWJkMWYyOWFjZWRjNWI2MDkzOTc3NGExMWNiMC4uYmIxZjAzZGM2MGQyODg5NDBj
ZTI5NDZkY2UwNjllZjFhOTkwN2EyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01MCw3ICs1MCw3IEBA
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZl
ckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwOSw4ICsxMDksOCBA
QCBNZWRpYVN0cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAKIGNvbnN0IEF0b21TdHJp
bmcmIE1lZGlhU3RyZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2
aWRlb0tpbmQoInZpZGVvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXVkaW9L
aW5kKCJhdWRpbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvS2luZCgi
dmlkZW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9w
cml2YXRlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAg
ICAgIHJldHVybiBhdWRpb0tpbmQ7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBjb25zdCBTdHJpbmcm
IE1lZGlhU3RyZWFtVHJhY2s6OmxhYmVsKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgTWVk
aWFTdHJlYW1UcmFjazo6Y29udGVudEhpbnQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRl
dGFpbEhpbnQoImRldGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQoInRleHQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBkZXRhaWxIaW50KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB0ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgIHN3aXRjaCAobV9wcml2YXRlLT5jb250ZW50SGludCgpKSB7CiAgICAgY2FzZSBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6SGludFZhbHVlOjpFbXB0eToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXgg
NmEwZGYwNGY1MWZiYjk4ZjllMjgyOTkyMGJjNWVmMDEzYmFlOWNhZC4uMzI2MjY1MGJlNTdkN2Iw
ZDQ2YzJlNjRjNWU0YmRkNzFjNGVmYWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJh
eUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxMyArNDMsMTMgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ0RhdGFDaGFubmVsKTsKIAogc3RhdGljIGNv
bnN0IEF0b21TdHJpbmcmIGJsb2JLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gYmxvYigiYmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGJsb2IoImJsb2IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGJsb2I7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhcnJheWJ1ZmZlcktl
eXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhcnJheWJ1
ZmZlcigiYXJyYXlidWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcnJh
eWJ1ZmZlcigiYXJyYXlidWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGFycmF5YnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAw
MmM3NTcwMGE4NWIzYzcyNTY2OTc3YmEyZGJjMWUzYWY4MjkxNGI1Li5jMmZlNTA4ODk2Mzc1Njlj
ZTk4YjI3NzViMmZjODI4ZWViZGQ3MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQAogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgotI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIApAQCAtMzQxMCw3ICszNDEwLDcgQEAgY29uc3QgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25TdGF0dXMoKSBjb25zdAog
CiBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2
YW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCgiYWRkaXRpb25zIHRleHQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50KCJhZGRpdGlv
bnMgdGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBB
dG9tU3RyaW5nJiByZWxldmFudCA9IGdldEF0dHJpYnV0ZShhcmlhX3JlbGV2YW50QXR0cik7CiAK
ICAgICAvLyBEZWZhdWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCmluZGV4IGZkMTQyZjdkZWFiMDc0
OGU5NmExOWM1YjBkYWVkOTA2MjcwZDMwYjIuLmQzYjBjMzBhMTk5YWUxOWM2ZTllYTZmZjI4YzQ1
Y2Y5ZDY3OTFlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3Bl
cnR5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQcm9wZXJ0eU1hcC5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJDU1NWYXJpYWJsZURhdGEuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTAsMTUgKzUwLDE1IEBAIGNvbnN0IENvbnN0YW50
UHJvcGVydHlNYXA6OlZhbHVlcyYgQ29uc3RhbnRQcm9wZXJ0eU1hcDo6dmFsdWVzKCkgY29uc3QK
IAogY29uc3QgQXRvbVN0cmluZyYgQ29uc3RhbnRQcm9wZXJ0eU1hcDo6bmFtZUZvclByb3BlcnR5
KENvbnN0YW50UHJvcGVydHkgcHJvcGVydHkpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQt
dG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0UmlnaHROYW1lKCJzYWZlLWFyZWEt
aW5zZXQtcmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRCb3R0b21OYW1lKCJz
YWZlLWFyZWEtaW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0TGVm
dE5hbWUoInNhZmUtYXJlYS1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVu
SW5zZXRUb3BOYW1lKCJmdWxsc2NyZWVuLWluc2V0LXRvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVs
bHNjcmVlbkluc2V0TGVmdE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gZnVsbHNjcmVlbkluc2V0Qm90dG9tTmFtZSgiZnVsbHNjcmVlbi1pbnNldC1ib3R0b20i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldFJpZ2h0TmFtZSgiZnVsbHNjcmVlbi1p
bnNldC1yaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb25O
YW1lKCJmdWxsc2NyZWVuLWF1dG8taGlkZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgi
c2FmZS1hcmVhLWluc2V0LXJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c2FmZUFyZWFJbnNldEJvdHRvbU5hbWUoInNhZmUtYXJlYS1pbnNldC1ib3R0b20iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0TGVmdE5hbWUoInNhZmUtYXJl
YS1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVl
bkluc2V0VG9wTmFtZSgiZnVsbHNjcmVlbi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRMZWZ0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1s
ZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0Qm90
dG9tTmFtZSgiZnVsbHNjcmVlbi1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtcmln
aHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuQXV0b0hpZGVE
dXJhdGlvbk5hbWUoImZ1bGxzY3JlZW4tYXV0by1oaWRlLWR1cmF0aW9uIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewogICAgIGNh
c2UgQ29uc3RhbnRQcm9wZXJ0eTo6U2FmZUFyZWFJbnNldFRvcDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IGM2ZDk1OGIyNWQxYmY1MzZjMjc0YjdlNTJmOWM1M2I1YWYyYjVmMGMuLmEyZTVl
ODkzM2VhOWU4NDI4YzI2YWY0NTI0NzFiNTZkNmZjNTFkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMjUyLDcgKzI1Miw3IEBACiAjaW5jbHVkZSA8Y3RpbWU+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KLSNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5
c3RlbVRyYWNpbmcuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgpAQCAtMTI1OSw3ICsxMjU5LDcg
QEAgQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIERvY3VtZW50Ojp2YWxpZGF0ZUN1
c3RvbUVsZW1lbnROYW1lKGNvbnN0IEF0b20KICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIGNvbnN0
IGF1dG8mIGFubm90YXRpb25YbWxMb2NhbE5hbWUgPSBNYXRoTUxOYW1lczo6YW5ub3RhdGlvbl94
bWxUYWctPmxvY2FsTmFtZSgpOwogI2Vsc2UKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gYW5ub3RhdGlvblhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lKCJh
bm5vdGF0aW9uLXhtbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICNlbmRp
ZgogCiAgICAgaWYgKGxvY2FsTmFtZSA9PSBTVkdOYW1lczo6Y29sb3JfcHJvZmlsZVRhZy0+bG9j
YWxOYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0
T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAK
aW5kZXggZmIyOTU5MGRmMzBlNzQ2NGZmOTc4YWM1OTU0YWU0ZDg4YmJmZmZmYy4uZjFhMjgxZmJl
YmMzMDI5NzYxNGVjNWY3ZDFlZmQ2OTQ4Y2JlNjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJT
dHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkQ1NTQ29udGVu
dFR5cGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKICAgICAvLyBG
SVhNRTogU2hvdWxkIE1JTUUgdHlwZXMgcmVhbGx5IGJlIGNhc2Ugc2Vuc2l0aXZlIGluIFhNTCBk
b2N1bWVudHM/IERvZXNuJ3Qgc2VlbSBsaWtlIHRoZXkgc2hvdWxkLAogICAgIC8vIGV2ZW4gdGhv
dWdoIG90aGVyIHRoaW5ncyBhcmUgY2FzZSBzZW5zaXRpdmUgaW4gdGhhdCBjb250ZXh0LiBNSU1F
IHR5cGVzIHNob3VsZCBuZXZlciBiZSBjYXNlIHNlbnNpdGl2ZS4KICAgICAvLyBXZSBzaG91bGQg
dmVyaWZ5IHRoaXMgYW5kIHRoZW4gcmVtb3ZlIHRoZSBpc0hUTUxFbGVtZW50IGNoZWNrIGhlcmUu
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNzc0NvbnRlbnRU
eXBlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNzc0NvbnRl
bnRUeXBlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkgPyBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh0eXBlLCAidGV4dC9jc3MiKSA6IHR5cGUgPT0gY3NzQ29udGVudFR5cGU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCmluZGV4IDUxOTMyMGQ0Njk5MWMxNGIz
NzI3ODFhY2NlYWM3NDkwM2MwODJhMTguLjI3NDZmYjlkNWYyZjAwMjNmNjYzM2U3Y2QyYzczOGM3
ZWU1OGZjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcApAQCAtMzQsNyAr
MzQsNyBAQAogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJKU05vZGUuaCIK
ICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE3NCwxOSAr
MTc0LDE5IEBAIGNsYXNzIE11dGF0aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSBmaW5hbCA6IHB1
YmxpYyBNdXRhdGlvblJlY29yZCB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIENoaWxkTGlzdFJlY29y
ZDo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoaWxk
TGlzdCgiY2hpbGRMaXN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hpbGRM
aXN0KCJjaGlsZExpc3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGNoaWxkTGlzdDsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXR0cmlidXRlc1JlY29y
ZDo6dHlwZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF0dHJp
YnV0ZXMoImF0dHJpYnV0ZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdHRy
aWJ1dGVzKCJhdHRyaWJ1dGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBhdHRyaWJ1dGVzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGFyYWN0ZXJE
YXRhUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gY2hhcmFjdGVyRGF0YSgiY2hhcmFjdGVyRGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNoYXJhY3RlckRhdGEoImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKaW5kZXggNzA0MWYxMjE3MWRlMDNlOTUwYTg4ODI3ZjdmZDExZjlk
OGQ3MjVmYS4uNWU2YjlkYTA3NWMxNWIyMzc4N2JmZGQ3M2FkYTdmMTQ1N2ExZWE2MCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwKQEAgLTExMSwxMSArMTExLDExIEBACiAKICAgICBwcmludExp
Y2Vuc2VIZWFkZXIoJEYpOwogICAgIHByaW50SGVhZGVySGVhZCgkRiwgIkNTUyIsICRmYW1pbHlO
YW1lc0ZpbGVCYXNlLCA8PEVORCwgIiIpOwotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiBFTkQKIAotICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJu
IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1l
dGVycyk7CisgICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRl
c3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CiAgICAg
cHJpbnQgRiAiI2VuZGlmXG5cbiI7CiAKICAgICBwcmludEluaXQoJEYsIDEpOwpAQCAtMTI5LDcg
KzEyOSw3IEBAIEVORAogCiAgICAgcHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5n
cyhcJXBhcmFtZXRlcnMpOwogCi0gICAgcHJpbnRNYWNyb3MoJEYsICJMYXp5TmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiIsICIiLCBcJXBhcmFtZXRlcnMpOworICAgIHByaW50
TWFjcm9zKCRGLCAiTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21T
dHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CiAKICAgICBwcmludEluaXQoJEYsIDApOwogCkBA
IC03MTQsNyArNzE0LDcgQEAgc3ViIHByaW50TmFtZXNIZWFkZXJGaWxlCiAKICAgICBwcmludExp
Y2Vuc2VIZWFkZXIoJEYpOwogICAgIHByaW50SGVhZGVySGVhZCgkRiwgIkRPTSIsICRwYXJhbWV0
ZXJze25hbWVzcGFjZX0sIDw8RU5ELCAiY2xhc3MgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfVF1YWxp
ZmllZE5hbWUgOiBwdWJsaWMgUXVhbGlmaWVkTmFtZSB7IH07XG5cbiIpOwotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiAjaW5jbHVkZSAiUXVhbGlm
aWVkTmFtZS5oIgogRU5ECkBAIC03MjIsNyArNzIyLDcgQEAgRU5ECiAgICAgbXkgJGxvd2VyY2Fz
ZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCiAg
ICAgcHJpbnQgRiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYgIldFQkNPUkVfRVhQT1JU
IGV4dGVybiBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiAke2xvd2Vy
Y2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAgcHJpbnQgRiAiV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RG
OjpBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5c
biI7CiAKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBwcmludCBGICIvLyBUYWdz
XG4iOwpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogICAgIAogICAg
IG15ICRsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXggPSBsYygkcGFyYW1ldGVyc3tuYW1lc3BhY2VQ
cmVmaXh9KTsKIAotICAgIHByaW50IEYgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAg
cHJpbnQgRiAiTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiAk
e2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBwcmlu
dCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlYWxsU3RyaW5ncyk7CiAKQEAgLTk2
Myw3ICs5NjMsNyBAQCBFTkQKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBz
dWIgcHJpbnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiBFTkQKIDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKaW5kZXggM2EwZjkxMTk5YjZiYjdi
ODQ3Y2M1ODUwNjE4ODMzZGI3ZTAxZWE3NS4uOWU3OTczYTExYzIyYzczMWQ0ODhjYTExNjgyNTkw
YjU5NzYyZDBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBVVRPQ0FQSVRBTElaRSkKIAotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NywxOSArNTcsMTkgQEAgY29uc3Qg
QXRvbVN0cmluZyYgc3RyaW5nRm9yQXV0b2NhcGl0YWxpemVUeXBlKEF1dG9jYXBpdGFsaXplVHlw
ZSB0eXBlKQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlRGVmYXVsdDoKICAgICAgICAgcmV0
dXJuIG51bGxBdG9tKCk7CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVOb25lOiB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZU5vbmUoIm5v
bmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVOb25lKCJub25l
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFs
dWVOb25lOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVNlbnRlbmNlczogewot
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVTZW50
ZW5jZXMoInNlbnRlbmNlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2
YWx1ZVNlbnRlbmNlcygic2VudGVuY2VzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICByZXR1cm4gdmFsdWVTZW50ZW5jZXM7CiAgICAgfQogICAgIGNhc2UgQXV0
b2NhcGl0YWxpemVUeXBlV29yZHM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWVXb3JkczsKICAgICB9CiAgICAgY2Fz
ZSBBdXRvY2FwaXRhbGl6ZVR5cGVBbGxDaGFyYWN0ZXJzOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUFsbENoYXJhY3RlcnMoImNoYXJhY3Rl
cnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVBbGxDaGFyYWN0
ZXJzKCJjaGFyYWN0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
ICAgICByZXR1cm4gdmFsdWVBbGxDaGFyYWN0ZXJzOwogICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QXV0b2ZpbGwuY3BwCmluZGV4IGEwYTdkNzdiNWM5MjVmMDBkMDExNTg4NWVkOGViOGMwNDFhODE0
ZjQuLmYyNzM0MWJlNWY2MzgxM2QwYzNiODU3MTc1NmFlNjNjNzE1NTljZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQXV0b2ZpbGwuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTEzMiwxMSArMTMyLDExIEBA
IEF1dG9maWxsRmllbGROYW1lIHRvQXV0b2ZpbGxGaWVsZE5hbWUoY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRhY3RUb2tlbihjb25zdCBBdG9tU3Ry
aW5nJiB0b2tlbikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaG9t
ZSgiaG9tZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gd29yaygid29yayIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
bW9iaWxlKCJtb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZheCgiZmF4IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBob21l
KCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd29yaygid29yayIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vYmlsZSgibW9iaWxlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICByZXR1cm4gdG9rZW4gPT0gaG9tZSB8fCB0b2tlbiA9PSB3b3JrIHx8IHRva2Vu
ID09IG1vYmlsZSB8fCB0b2tlbiA9PSBmYXggfHwgdG9rZW4gPT0gcGFnZXI7CiB9CkBAIC0xNjEs
OCArMTYxLDggQEAgc3RhdGljIHVuc2lnbmVkIG1heFRva2Vuc0ZvckF1dG9maWxsRmllbGRDYXRl
Z29yeShBdXRvZmlsbENhdGVnb3J5IGNhdGVnb3J5KQogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNwcm9jZXNzaW5nLW1vZGVsLTMKIEF1dG9maWxs
RGF0YSBBdXRvZmlsbERhdGE6OmNyZWF0ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIC8vIExhYmVsOiBEZWZhdWx0CiAgICAgLy8gMjYuIExldCB0aGUgZWxlbWVu
dCdzIElETC1leHBvc2VkIGF1dG9maWxsIHZhbHVlIGJlIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBp
dHMgYXV0b2ZpbGwgaGludCBzZXQgYW5kIGF1dG9maWxsIHNjb3BlIGJlIGVtcHR5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggZWJiN2Qy
YThiMDAzZjQ0ZTQ4MWVmYjAyNjg2Njk5ZjgzNmU2MDVhMy4uNTg4NjcyNTRkZDhkNzU5OGY1ZWJk
ZDQ5YWZkM2UyZmYzYzlhNjZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTks
NyArOTksNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihi
b29sIHNlbmRNb3VzZUV2ZW50cykKIAogU3RyaW5nIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OmZh
bGxiYWNrVmFsdWUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigi
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9uLmdl
dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDdiMTA2MWZlMWExZjQ5MTMyYWRm
NDNkNTljYjg3NWVkYmY3ZmU2MTAuLjVjMjkyMGY3MGYwOTUxNWMzOGEzOWZjZmRkN2IxODBmNjgw
M2U1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1
ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFs
dWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBBU1NFUlQoZWxl
bWVudCgpKTsKICAgICBhdXRvIHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcAppbmRleCA5ZTJmMDRjNDAwMDU2NTc5ZDU0YzQ1MjQ2OGNhMmRjODFhYjFlNjcyLi5jZmQy
YTkyMGQxZjAyZWM2YTliZmIwNzc1ZDhlN2VkMWM1MGQ5ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEV2
ZW50UXVldWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQzLDkgKzE0NCw4IEBAIHZvaWQgQ29sb3JJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkpOwog
ICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hOYW1lKCItd2Via2l0
LWNvbG9yLXN3YXRjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hX
cmFwcGVyTmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29s
b3JTd2F0Y2hOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoV3JhcHBlck5hbWUoIi13ZWJraXQtY29sb3It
c3dhdGNoLXdyYXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB3
cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYThlZGM5OWYwYjdkOTVmZGI2ZTNhMjUz
NTliYjg3ZGMyODFjZGUwNi4uYzg5NzVhY2MyYzMxMjZiY2ZmZTMzMTA2NDdkMjJiMmNlMjRhYWZh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvRmlsZVN5
c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTg5LDkgKzkwLDggQEAg
UmVmPFVwbG9hZEJ1dHRvbkVsZW1lbnQ+IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11
bHRpcGxlKERvY3VtZW50JiBkb2N1bWUKIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1
dFRhZywgZG9jdW1lbnQsIDAsIGZhbHNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0
dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFR5cGUoYnV0
dG9uTmFtZSk7CiAgICAgc2V0UHNldWRvKHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggNzlkYjM0MWUxYzk1NjVm
MWQwZjkxM2QyYzdjN2QzYzQ2YjI2Y2Y1Yi4uYjhkOWI5MzViOWIxZGY1MjljNGQ0ZjdkYzQzMzg1
MTQ5OTQ1YmM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTI0
LDcgKzI0LDcgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCi0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtMzIwLDcgKzMy
MCw3IEBAIEF0b21TdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250CiB7CiAgICAgYXV0byBmb3JtID0gbWFrZVJl
ZlB0cihvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKSk7CiAgICAgaWYgKCFmb3JtKSB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25lcigi
Tm8gb3duZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9ybUtleUZv
ck5vT3duZXIoIk5vIG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDAwOWY1NTQ3OGQzYTZlODYxOTg4ZTZi
YmYyNWNlNDBiMjEzOGNjYmMuLjlkZGY3NWU4OWQ2NjQxMDUzOGE2MTE1M2JkNTY4OWQwNzdmN2Vm
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC01Myw2
ICs1Myw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUlu
ZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KQEAgLTI1Myw5ICsyNTQsOSBAQCB2b2lkIEhU
TUxBbmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaQogICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSByZWxBdHRyKSB7CiAgICAgICAgIC8vIFVwZGF0ZSBIVE1MQW5jaG9yRWxlbWVudDo6
cmVsTGlzdCgpIGlmIG1vcmUgcmVsIGF0dHJpYnV0ZXMgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuCi0g
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub1JlZmVycmVyKCJub3Jl
ZmVycmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVyIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gbm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBub09wZW5lcigibm9vcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIGNvbnN0IGJvb2wgc2hvdWxkRm9sZENhc2UgPSB0cnVlOwog
ICAgICAgICBTcGFjZVNwbGl0U3RyaW5nIHJlbFZhbHVlKHZhbHVlLCBzaG91bGRGb2xkQ2FzZSk7
CiAgICAgICAgIGlmIChyZWxWYWx1ZS5jb250YWlucyhub1JlZmVycmVyKSkKQEAgLTM4MSw3ICsz
ODIsNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkgY29u
c3QKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc3lz
dGVtUHJldmlld0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVByZXZpZXdSZWxWYWx1ZSgiYXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1QcmV2aWV3UmVsVmFsdWUoImFy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFyZWxMaXN0
KCkuY29udGFpbnMoc3lzdGVtUHJldmlld1JlbFZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCA3MWZlMWEw
Yjc4NThjZjBmMzA5MjZmOTBmNzRmZjc3NGZmNTdmZTE4Li5lNmZlZTIzMzIwOGRhNmZiNzdjZjNi
YjI3NThjZDc4ZWIyNDhkYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
dXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJCdXR0b24uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTc0
LDE1ICs3NSwxNSBAQCBjb25zdCBBdG9tU3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNl
IFNVQk1JVDogewotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHN1Ym1pdCgic3VibWl0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzdWJtaXQoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgICAgIHJldHVybiBzdWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBC
VVRUT046IHsKLSAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBidXR0b24oImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYnV0dG9uKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgICAgICByZXR1cm4gYnV0dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVT
RVQ6IHsKLSAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiByZXNldCgicmVzZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHJlc2V0KCJyZXNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAg
ICAgICAgIHJldHVybiByZXNldDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAppbmRleCA2MGRkMWZiMjUyMDM4NjBkM2Q5MmE3YTVh
Y2IzMzFjMmFiMDRiNTkxLi4yYTY3NDQ2MGZkNDM3MDE1NTdlZTVlMzdiNzk0YWYyNmYyZjRiODQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0zNSw3
ICszNSw3IEBACiAjaW5jbHVkZSAiU2xvdEFzc2lnbm1lbnQuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgRGV0YWlsRXZl
bnRTZW5kZXImIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKIAogc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIHN1bW1hcnlTbG90TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IHN1bW1hcnlTbG90KCJzdW1tYXJ5U2xvdCIpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlT
bG90Iik7CiAgICAgcmV0dXJuIHN1bW1hcnlTbG90OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCmluZGV4IDdhNmE2ZmUzZTkxNGU4NWI5ODkzZDE2OTY0MjczZDZiMmM1YmE5NjMu
LmIyM2MyNzMzMDA0MDYzMDIzNTcwZDU3YWJmNDM2Zjc5NDA5NjExMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3IEBACiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC01MDUsOSArNTA1LDkgQEAgc3RhdGljIFJl
ZjxEb2N1bWVudEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgdGUKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2xpbWl0ZWQt
dG8tb25seS1rbm93bi12YWx1ZXMKIHN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgdG9W
YWxpZERpclZhbHVlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBy
dGxWYWx1ZSgicnRsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdXRvVmFsdWUoImF1dG8iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gcnRsVmFsdWUoInJ0bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJsdHIi
KSkKICAgICAgICAgcmV0dXJuIGx0clZhbHVlOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZSh2YWx1ZSwgInJ0bCIpKQpAQCAtNjYyLDIyICs2NjIsMTkgQEAgU3RyaW5nIEhU
TUxFbGVtZW50Ojpjb250ZW50RWRpdGFibGUoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgdHJ1ZU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0cnVlVmFsdWUoInRydWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJ1ZVZhbHVlLmdldCgpOwog
fQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZmFsc2VOYW1lKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VWYWx1ZSgiZmFsc2UiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGZhbHNlVmFsdWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBmYWxzZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmlu
ZyYgcGxhaW50ZXh0T25seU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBwbGFpbnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBw
bGFpbnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwbGFpbnRleHRPbmx5VmFsdWUuZ2V0KCk7CiB9CiAK
QEAgLTExMTcsOSArMTExNCw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OnNob3VsZEF1dG9jb3JyZWN0
KCkgY29uc3QKIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QoYm9vbCBhdXRvY29y
cmVjdCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb25O
YW1lKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5h
bWUoIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oYXV0b2NvcnJlY3RBdHRyLCBhdXRvY29ycmVjdCA/IG9uTmFtZS5n
ZXQoKSA6IG9mZk5hbWUuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmNwcAppbmRleCA1MWFiMDE4Nzk4MDQ4N2IzYWZkNGU1MzVlNmFmYzVjYWUw
ZDI3ZmUyLi41MGJlZTQ0YzFjMzkyODg5YzNmYTYzYzJiZGZlMGE0ZDg4YjkxOGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTM1LDYgKzM1LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dl
ZFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTQsNyArMTU1LDcgQEAgYm9vbCBIVE1M
RmllbGRTZXRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmlu
ZyYgSFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmaWVsZHNldDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDYyMGQyYzQy
MWEyMTI0YmI5MmEyYTg0YTRmYTA4YWNlMzFlY2VkNmYuLjc1MjFlNTYwNDc1YTYwOThhOWNmNTY0
OTk4YjY1MGExNzU2OGMxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5j
cHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgog
I2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAKQEAgLTkwNiw4ICs5MDcsOCBAQCB2
b2lkIEhUTUxGb3JtRWxlbWVudDo6c2V0QXV0b2NvbXBsZXRlKGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9uKCJvbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmYoIm9mZiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXV0b2NvbXBs
ZXRlQXR0ciksICJvZmYiKSA/IG9mZiA6IG9uOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHAKaW5kZXggY2EwMDYzOWNlYjNiOGQ0N2NhMGJkYzgwOTJiNmZkOTNkNjNl
ZjIyNC4uZjk5MmU2MDc0ZGYyZTdhOGMxMzdiZGMxN2FjYjU3NWUzMTZkYjc0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNpemVzQXR0cmlidXRlUGFyc2VyLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCkBAIC05MDMsOCArOTA0LDggQEAgc2l6ZV90
IEhUTUxJbWFnZUVsZW1lbnQ6OnBlbmRpbmdEZWNvZGVQcm9taXNlc0NvdW50Rm9yVGVzdGluZygp
IGNvbnN0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxJbWFnZUVsZW1lbnQ6OmxvYWRpbmdGb3JC
aW5kaW5ncygpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IGVhZ2VyKCJlYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbGF6eSgibGF6eSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGVhZ2VyKCJlYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgYXV0byYgYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6bG9hZGluZ0F0dHIpOwogICAgIHJldHVybiBoYXNMYXp5TG9hZGFi
bGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGVWYWx1ZSkgPyBsYXp5IDogZWFnZXI7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IDc4MGI3OTE5M2Q5ODc2
MzJiNTkyYzliMjRkODU4MGI0ZWM2YThlNDAuLjI2YThhZDYyOTI4NzUxOGEzNDQxNDUwZDk3MWQ0
ZjQ0MThmN2E0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgS2V5Z2VuU2VsZWN0RWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MU2VsZWN0RWxlbWVudCB7CiAgICAgS2V5Z2VuU2VsZWN0RWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgICAgIDogSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVu
dCwgMCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBw
c2V1ZG9JZCgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAg
ICAgfQogCkBAIC0xMzAsNyArMTMwLDcgQEAgYm9vbCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5k
Rm9ybURhdGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhLCBib29sKQogCiBjb25zdCBBdG9tU3RyaW5n
JiBIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4ga2V5Z2VuKCJrZXlnZW4iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA5ZmU5ZTE0YjU2NTE1
OTA2OTlmMDlhOTU1YzZjYjYyNDMyYmVkNmYwLi4yODVkYzBmNzU0NmM2NWRmODA3M2UyYzI0ZWRk
NmQwNjQxMGE4ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OCw3ICs2OSw3
IEBAIGJvb2wgSFRNTE9wdEdyb3VwRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogCiBjb25z
dCBBdG9tU3RyaW5nJiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91
cCgib3B0Z3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91cCgi
b3B0Z3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRw
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3Bw
CmluZGV4IDU2YjcyMDZhZTNiZThmMTBhODgxNGFlOWFmYWM2MmJmZWI1NjA5YWMuLjA3NTU2ODVk
OWUyMjc2MDNjOTM4ZmM3NDIyZTZmYWVhNjdiZjIxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogCiBjb25zdCBBdG9t
U3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3V0cHV0KCJvdXRwdXQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvdXRwdXQoIm91dHB1dCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb3V0cHV0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA3
ZjAzNTRmNWM4MzlmNDVjNWEyYTZjYzZkNTc1MWQ0ZGNkN2JiNDRiLi5lOTA3OTFiYzUzN2I2MjM3
MmY2NDQ3ZTFjOGQ5NGVlNGNmZDdjYTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9DYXRjaFNjb3BlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNHbG9i
YWxPYmplY3RJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDIyLDcgKzQyMyw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogCiBib29sIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3ZlcmxheShjb25zdCBFdmVudFRhcmdl
dCogdGFyZ2V0KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBzZWxlY3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzZWxlY3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0byBzaGFkb3cgPSB1c2VyQWdlbnRTaGFkb3dSb290KCk7
CiAgICAgaWYgKCFzaGFkb3cpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZWU0MzczNjY3MmJlZDIzYjQ3OWYxYTM0
ZDIyNzA0NzE3NGYxZTllYi4uOTA5NzUxYmVlZjY0YjgwM2Y4YjFhNWJiMTUwYjk5NTBkMTU3OGEx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTU1LDYg
KzU1LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0
aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMCw4ICsxMDEs
OCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdl
IHN0eWxlQ2hhbmdlKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MU2VsZWN0RWxlbWVudDo6Zm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gc2VsZWN0TXVsdGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gc2VsZWN0T25lKCJzZWxlY3Qtb25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gc2VsZWN0TXVsdGlwbGUoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVjdE9uZSgic2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbV9tdWx0aXBsZSA/IHNlbGVjdE11
bHRpcGxlIDogc2VsZWN0T25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuY3BwCmluZGV4IGE2MDAzOGZlOTRmMjk4YjA4ZWE0YWI2ZWRhY2Q3ZDE1NTdh
YTg3NTUuLjA5MzEwY2IwYjkzZWUwODg2MjhlZDk2Mjg2MDY2OTY5YjQ1YTc1MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxl
Q2VsbC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTE2OSwxMCArMTcwLDEwIEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNldFJvd1NwYW5G
b3JCaW5kaW5ncyh1bnNpZ25lZCBuKQogY29uc3QgQXRvbVN0cmluZyYgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OnNjb3BlKCkgY29uc3QKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS90YWJsZXMuaHRtbCNhdHRyLXRoLXNjb3BlCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvdygicm93IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBjb2woImNvbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dyb3Vw
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3coInJvdyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNvbCgiY29sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93
Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sZ3Jv
dXAoImNvbGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KEhUTUxOYW1lczo6c2NvcGVBdHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKaW5kZXggZTE5NTA0YmQ5Yjg3MGI2NjgzM2RjYWIyZmM1NTJmNjE0NmYz
MTA0Yi4uMjk1NjcyODRkNDlmNGQyZjYyZmI3OTA2MTBjYjJmYTRhNDUyYTY3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC00Nyw2ICs0Nyw3IEBA
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwu
aCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAK
IGNvbnN0IEF0b21TdHJpbmcmIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRl
eHRhcmVhKCJ0ZXh0YXJlYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRh
cmVhKCJ0ZXh0YXJlYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gdGV4dGFyZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMzg4ZWNiOGIwMWEwZmM3NzE3NjEyNzA5NDc4
OTc1NjRhNjRjOWVhNi4uM2Y3Y2Q2OWQ5ZmM5ZjI3MzJmMzRiYmQ0MzIwZjhhM2U5OWVkYTNlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOTcs
OSArMzk4LDkgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3QKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRpcmVjdGlvblN0cmlu
ZyhUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBmb3J3YXJkKCJmb3J3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNr
d2FyZCgiYmFja3dhcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJu
b25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJhY2t3YXJkKCJiYWNrd2FyZCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9u
KSB7CiAgICAgY2FzZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKQEAgLTUzNSw5ICs1MzYsOCBA
QCBib29sIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0
YWJsZSgpIGNvbnN0CiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5l
clRleHRFbGVtZW50RWRpdGFiaWxpdHkoKQogewogICAgIGlmIChhdXRvIGlubmVyVGV4dCA9IGlu
bmVyVGV4dEVsZW1lbnQoKSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gcGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpblRl
eHRPbmx5TmFtZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICAgICAgY29uc3QgYXV0byYgdmFsdWUgPSBpc0lubmVyVGV4dEVsZW1lbnRFZGl0
YWJsZSgpID8gcGxhaW5UZXh0T25seU5hbWUuZ2V0KCkgOiBmYWxzZU5hbWUuZ2V0KCk7CiAgICAg
ICAgIGlubmVyVGV4dC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihjb250ZW50
ZWRpdGFibGVBdHRyLCB2YWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dE1vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1vZGUuY3BwCmlu
ZGV4IGEyMGVhY2NmZjljNmQwNTc2OWI5OGQ2OGM3M2Y1YWZjMWI5YmU2YmUuLmVhODBmYmU2OTZk
MTcxNjZlY2NkMjU4MTRhZTQ0MzZkYTJhZmQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRNb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0TW9kZS5j
cHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnB1
dE1vZGUuaCIKIAotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC04Miw0OSArODIsNDkgQEAgbmFtZXNwYWNlIElucHV0TW9kZU5hbWVzIHsKIAogY29uc3QgQXRv
bVN0cmluZyYgbm9uZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG1vZGUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJub25l
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbW9kZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBlbWFpbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUo
ImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgiZW1haWwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAK
IGNvbnN0IEF0b21TdHJpbmcmIG51bWVyaWMoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBtb2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGVjaW1hbCgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImRlY2ltYWwiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9t
U3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJz
ZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1v
ZGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKaW5kZXggYThhNmU3
OWRjYzY4YjI5NmJmZDg3MTk3Y2NmNGI0NmU5YTdmOWVlNC4uNjcxNGRlZDFhYTY2MTVkMTllNTU0
OTk1OWRkZjQ0NGI0MTk5Njk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5j
cHAKQEAgLTIyLDcgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGVOYW1lcy5oIgogCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTMzLDEzOSArMzMsMTM5IEBAIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1lcyB7CiAKIGNv
bnN0IEF0b21TdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgY2hlY2tib3goKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBjb2xvcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5h
bWUoImNvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiY29sb3Ii
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWUoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBkYXRldGltZWxvY2FsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBuYW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZW1haWwoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJlbWFpbCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9t
U3RyaW5nJiBmaWxlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
bmFtZSgiZmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImZpbGUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgaW1hZ2UoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBtb250aCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUo
Im1vbnRoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgibW9udGgiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
IGNvbnN0IEF0b21TdHJpbmcmIG51bWJlcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcGFzc3dvcmQoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29yZCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9t
U3RyaW5nJiByYWRpbygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG5hbWUoInJhZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgicmFk
aW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcmVzZXQoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1l
KCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJzZWFyY2gi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9
CiAKIGNvbnN0IEF0b21TdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVsZXBob25lKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgi
dGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRleHQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIHRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBuYW1lKCJ0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWVrKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgid2VlayIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFDb250cm9sbGVyLmNwcAppbmRleCBlNDgyYjM2MmIxOGE3YTU0OTQ1Mzc2NDY0NGNjZmU3Y2Jm
NTE1MmIzLi4zMjExNTBjYTdlZjk0MjFkNzRkY2Q1MmQ4ZDZjMjcyOGMwMWI1N2EyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4OSwxOSBAQCB2
b2lkIE1lZGlhQ29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5n
JiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBl
bmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4
IGRiNjM2ZTI2OWEwYzViOTc5ZjM0NTJmYmJiOWFjMDVlNmYxMjMxYjcuLjg2NWFhZDZjYTE4MjZi
YzQ2ODA5ZDhiZDIzMmI3OTcyZWFlM2QzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgIlNsaWRlclRodW1iRWxlbWVudC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNTUsOCArMjU2LDcgQEAgdm9p
ZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJS
dW5uYWJsZVRyYWNrTmFtZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdl
YmtpdFNsaWRlclJ1bm5hYmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFj
ayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xp
ZGVyUnVubmFibGVUcmFja05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwCmluZGV4IDc3MWNmNDcxMjMyYjg1ZWMzMGIyMjY1NTRhMzI5ZDgwYjI1YTAzNjEuLjhiODY3
NjQzNTNkYmE3MDhkYjAzZDdlYTgxZjMyNzI1ZGJmMjE3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJT
ZWFyY2hGaWVsZC5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjQsMTAgKzY1LDkgQEAgdm9pZCBT
ZWFyY2hJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVJl
c3VsdEJ1dHRvblBzZXVkb1R5cGUoU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudCYgcmVz
dWx0QnV0dG9uLCBpbnQgbWF4UmVzdWx0cykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQtc2Vh
cmNoLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3Vs
dHNEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzQnV0dG9uTmFtZSgiLXdlYmtp
dC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaERlY29yYXRpb25OYW1l
KCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1y
ZXN1bHRzLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJr
aXRTZWFyY2hSZXN1bHRzQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKCFtYXhSZXN1bHRz
KQogICAgICAgICByZXN1bHRCdXR0b24uc2V0UHNldWRvKHdlYmtpdFNlYXJjaFJlc3VsdHNEZWNv
cmF0aW9uTmFtZSk7CiAgICAgZWxzZSBpZiAobWF4UmVzdWx0cyA8IDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggMmY1OWU0NTM5MjI5NjQzZDFjODAz
YmM2Y2UwMjRlYzZlNDUwZTAzOC4uNmJjYWE4ODUyNTY1NjQwYzE3NjdmMTczZjk4YmU2NWRkOGQw
MmE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAt
NjAsNiArNjAsNyBAQAogI2luY2x1ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAi
VXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgpAQCAtMzQ4
LDggKzM0OSw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKSB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDYXBzTG9j
a0luZGljYXRvck5hbWUoIi13ZWJraXQtY2Fwcy1sb2NrLWluZGljYXRvciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRDYXBzTG9ja0luZGljYXRvck5hbWUoIi13ZWJraXQtY2Fwcy1sb2NrLWluZGljYXRv
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgbV9jYXBzTG9j
a0luZGljYXRvciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBt
X2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRQc2V1ZG8od2Via2l0Q2Fwc0xvY2tJbmRpY2F0b3JOYW1l
KTsKIApAQCAtNDU3LDggKzQ1Nyw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVE
YXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yKCkKICAgICBpZiAoIW1fY29udGFpbmVyKQogICAgICAg
ICBjcmVhdGVDb250YWluZXIoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRMaXN0QnV0dG9uTmFtZSgiLXdlYmtpdC1saXN0LWJ1dHRvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0TGlzdEJ1dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1idXR0b24iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpFdmVu
dEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoKm1fY29udGFpbmVyKTsKICAgICBtX2RhdGFMaXN0
RHJvcGRvd25JbmRpY2F0b3IgPSBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCktPmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQoKm1f
ZGF0YUxpc3REcm9wZG93bkluZGljYXRvcik7CkBAIC03ODIsOCArNzgxLDcgQEAgdm9pZCBUZXh0
RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAgQVNTRVJUKCFtX2NvbnRhaW5l
cik7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3JhdGlvbkNvbnRhaW5lck5hbWUo
Ii13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRUZXh0
ZmllbGREZWNvcmF0aW9uQ29udGFpbmVyTmFtZSgiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlv
bi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBT
Y3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93ZWRTY29wZSgqZWxl
bWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCkpOwogCkBAIC04MDMsOCArODAxLDcgQEAgdm9p
ZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9u
VHlwZSBhdXRvRmlsbEJ1dHRvblQKICAgICBpZiAoYXV0b0ZpbGxCdXR0b25UeXBlID09IEF1dG9G
aWxsQnV0dG9uVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0
dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IEFTU0VSVChlbGVtZW50KCkpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24gPSBBdXRvRmlsbEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2F1
dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8oYXV0b0ZpbGxCdXR0b25UeXBlVG9BdXRvRmlsbEJ1dHRv
blBzZXVkb0NsYXNzTmFtZShhdXRvRmlsbEJ1dHRvblR5cGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggYzhjYzZiNDllNDZlMGNmOTBiYWIzMjY1ZDE5
YmRjMDIwOGM3NGNlMC4uMGQwNDQ2Y2I3NDIwMjI1MWE1NWJlNDRmZjBiNjkwYTJhMjIyZGQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQ2LDYgKzQ2
LDcgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2lu
Y2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE4MSwxNSAr
MTgyLDE0IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSgpCiAKICAg
ICBTaGFkb3dSb290JiBzaGFkb3dSb290ID0gbV9lbGVtZW50LT5lbnN1cmVVc2VyQWdlbnRTaGFk
b3dSb290KCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0VmFsaWRhdGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd0NsaXBwZXJO
YW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd05hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlk
YXRpb25CdWJibGVNZXNzYWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSWNvbk5hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0VmFsaWRhdGlvbkJ1YmJsZVRleHRCbG9ja05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1i
dWJibGUtdGV4dC1ibG9jayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlv
bkJ1YmJsZUhlYWRpbmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVCb2R5TmFtZSgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxl
TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd0NsaXBwZXJOYW1lKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dOYW1lKCItd2Via2l0LXZhbGlk
YXRpb24tYnViYmxlLWFycm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0VmFsaWRhdGlvbkJ1YmJsZU1lc3NhZ2VOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LW1lc3NhZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0
aW9uQnViYmxlSWNvbk5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVUZXh0Qmxv
Y2tOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSGVhZGluZ05hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVCb2R5TmFtZSgiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogICAgIG1f
YnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5kZXggMmYx
NjZmNzIyMjU2MWQ4OWMzOWU5MGY4MmNiNzcyMTQxMDhhMGNmZC4uZTQ3ZWIxMWRkNWZhMTNhNDNl
YmIyNzc3MzBjNDc3OWVmYWI5OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkhUTUxTdW1tYXJ5RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRldGFpbHNNYXJrZXIu
aCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw4
ICs1MCw3IEBAIFJlZjxEZXRhaWxzTWFya2VyQ29udHJvbD4gRGV0YWlsc01hcmtlckNvbnRyb2w6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBEZXRhaWxzTWFya2VyQ29udHJvbDo6RGV0YWls
c01hcmtlckNvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQo
SFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2VyTmFtZSgiLXdlYmtpdC1kZXRh
aWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0RGV0YWlsc01hcmtlck5hbWUoIi13ZWJraXQtZGV0YWls
cy1tYXJrZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0UHNl
dWRvKHdlYmtpdERldGFpbHNNYXJrZXJOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50LmNwcAppbmRleCA0ZjUxYjUyZTZjNDY3YjQwMzhiNDdjYTA1NTk3NGU0ZGE3
YTVhMGExLi4yOGI0MjcwNjMyOGE3YmZiZDk1MjM0NDE4M2Y0NTg5YzEzMGE0ZTU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNTcsNiArNTcsNyBAQAogI2lu
Y2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Nyw4ICs3OCw3IEBA
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRv
Y3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVsZW1lbnQpKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRNZWRpYVRl
eHRUcmFja0NvbnRhaW5lck5hbWUoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSgiLXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBzZXRQc2V1ZG8od2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJOYW1lKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5jcHAKaW5kZXggNmJjMTE3MGZkNGZiOTg5Yjg0OWFkZTRlN2NjMzZjMmFhYjg1MzY4NS4uYzAz
MzEwODdkOTQ5YjBmZmRkMjJkM2Y1YWFkMjA4YmU1M2I1OGE1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiSFRNTFByb2dyZXNzRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
bmRlclByb2dyZXNzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtOTEsOCArOTIsNyBAQCB2b2lkIFByb2dyZXNzVmFsdWVFbGVtZW50OjpzZXRXaWR0
aFBlcmNlbnRhZ2UoZG91YmxlIHdpZHRoKQogCiBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFBy
b2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0lubmVy
RWxlbWVudE5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
UHJvZ3Jlc3NJbm5lckVsZW1lbnROYW1lKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzSW5u
ZXJFbGVtZW50PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzSW5uZXJFbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NJbm5lckVsZW1l
bnROYW1lKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTAwLDggKzEwMCw3IEBAIFJlZjxQcm9n
cmVzc0lubmVyRWxlbWVudD4gUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiAKIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNz
LWJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2Via2l0UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNzLWJhciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NCYXJF
bGVtZW50PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzQmFyRWxlbWVudChkb2N1bWVu
dCkpOwogICAgIHJlc3VsdC0+c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzQmFyTmFtZSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKQEAgLTEwOSw4ICsxMDgsNyBAQCBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50
PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlZjxQ
cm9ncmVzc1ZhbHVlRWxlbWVudD4gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdFByb2dyZXNzVmFsdWVOYW1lKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1l
bnQ+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoZG9jdW1lbnQp
KTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwCmluZGV4IDM1MzNlOGJhODA3NzRkYzJkNjZjMTVhNDgxMjFjNjM3OGRk
YWU2YTkuLmQxNzc3ZWJjMmI3MTBmZGJhYTEyMjg4ZGRhNzM4NTA2MmUxYmJkYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAt
NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTdHlsZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTg3LDggKzU4OCw4IEBAIE9wdGlvbmFs
PFN0eWxlOjpFbGVtZW50U3R5bGU+IFNsaWRlclRodW1iRWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0
eWxlKGNvbnN0IFJlbmRlCiB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNvbXB1dGUg
c3R5bGUuIFRoaXMgaXMganVzdCBhIGhhY2sgdG8gcGljayBzaGFkb3cgcHNldWRvIGlkIHdoZW4g
aG9zdCBzdHlsZSBpcyBrbm93bi4KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXNsaWRlci10aHVt
YiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lk
KCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXRodW1iIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwpAQCAtNjQxLDggKzY0Miw4IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5
bGU+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25zdCBSCiB7
CiAgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNvbXB1dGUgc3R5bGUuIFRoaXMgaXMganVz
dCBhIGhhY2sgdG8gcGljayBzaGFkb3cgcHNldWRvIGlkIHdoZW4gaG9zdCBzdHlsZSBpcyBrbm93
bi4KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtZWRpYVNs
aWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzbGlkZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xpZGVyQ29udGFpbmVyKCIt
d2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzbGlkZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmICghaG9zdFN0eWxlKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDllMzI4ZjZjNmIxYWNhN2ZjZDEwZWZlNWJj
NGZlMjI0ZGNmYWQ0MjMuLjg2Njc2NjEzZmVmM2Y4MjMzNGZkNmVkN2RiOGNhZTVjZmI5N2RjMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1
ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU1LDggKzU2LDcgQEAgaW5saW5lIFNwaW5C
dXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5C
dXR0b25Pd25lciYKICAgICAsIG1fcHJlc3NTdGFydGluZ1N0YXRlKEluZGV0ZXJtaW5hdGUpCiAg
ICAgLCBtX3JlcGVhdGluZ1RpbWVyKCp0aGlzLCAmU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlcGVhdGlu
Z1RpbWVyRmlyZWQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdElubmVyU3BpbkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHdlYmtpdElubmVyU3BpbkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdElubmVyU3BpbkJ1
dHRvbk5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNzkzNGRkYzVlMjZjZWJlZTA5NmE2ODhh
MDZjNTJmNjUyMzBjMmRjNy4uMTliM2I0YjdmZDk1NjZlMWQwNDZiMzVjYjgyOThkOGM0MjdmZDY2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiVGV4dEV2ZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODIsOCAr
MTgzLDcgQEAgT3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENvbnRyb2xJbm5lclRl
eHRFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUoY28KIGlubGluZSBUZXh0Q29udHJvbFBsYWNl
aG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhY2Vob2xkZXJOYW1lKCJw
bGFjZWhvbGRlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gcGxhY2Vob2xkZXJOYW1lKCJwbGFjZWhvbGRlciIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8ocGxhY2Vob2xkZXJOYW1l
KTsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KQEAgLTI1Niw5
ICsyNTYsOCBAQCBib29sIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OndpbGxSZXNw
b25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIGlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVs
ZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hDYW5jZWxCdXR0b25O
YW1lKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaENhbmNlbEJ1dHRvbk5hbWUo
Ii13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50LmNwcAppbmRleCAyMmY2MjA5NmRjYjBmY2U4YTYzZDBmOGM0OGQ0NTlhZDAzMWQxYTVk
Li4zNzgyZDhjNzc4OGU5N2YwZTgwMmJhYTJlMjJmZmIwMDNkODdmZjdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOCArNDIs
NyBAQCBSZWY8WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2MpCiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZ
b3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxE
aXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1l
KCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UGx1Z2luUmVwbGFjZW1l
bnROYW1lKCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1l
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggOTY0MzE2YTIyZTJh
ZjNhNDI5N2U5OGU3MzEzNDYyNTc2NWFjOWRmNi4uMDNlNDE1NDc4MWNlNWEzY2U4ZjMzNmFkNThj
YjFmZTBhZDM2YWQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC00MSw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTQs
OCArOTUsNyBAQCBSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjp0cnlDcmVhdGUoRAogICAgIGlmICghZG9jdW1lbnQucGFn
ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Vi
a2l0LWltYWdlLWNvbnRyb2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0
b25OYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJr
aXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmlu
ZGV4IDJmOWRmNDljMjJlYmVhMGI4ZTQ1OTJhZjFhNTY0N2I2NzY1MWYyOWIuLmFjMGVlNzkxMWJk
MjE1NmQzOGUwMjQ4Mjc3ZTFiNzI3ZTUzZGJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTg2LDggKzg3LDcgQEAgUmVmUHRyPEltYWdlQ29udHJvbHNSb290RWxlbWVudD4g
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Ojp0cnlDcmVhdGUoRG9jdW1lbnQmIGQKICAgICBpZiAo
IWRvY3VtZW50LnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1l
KCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1l
KCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIFJlZjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0g
YWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAg
ICBjb250cm9scy0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OmNsYXNzQXR0ciwgeFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDAyMDlmOWVjMWMwMmM5NzRmZDRlNjBiMWZkNDAw
Mzc4NjM4MzYwYzMuLjliMmM4NzQ1MmQ3ODM3OTM4MWU1NzAxODM4NjdhZjA5MzE3Nzc1YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMzUsNDMgKzM1LDQz
IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVu
dC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBB
dG9tU3RyaW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFsdGVybmF0
aXZlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBkZXNjcmlwdGlv
bigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXNjcmlw
dGlvbigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNr
OjptYWluS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtYWluKCJtYWlu
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtYWluOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluRGVzY0tleXdvcmQoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtYWluRGVzYygibWFpbi1kZXNj
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWFpbkRlc2MoIm1haW4tZGVzYyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFpbkRlc2M7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRyYW5zbGF0aW9uKCJ0
cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYW5zbGF0aW9u
KCJ0cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gdHJhbnNsYXRpb247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmNwcAppbmRleCBjNjVhMTE4NzllNjUxMzIzOTUxMzE0MzcyODA3YmNjZDZl
MWZjYzY0Li41MWFkZDY5OWZiMjNjNjczN2Y4Y2VmYzM5NGRkMjE3ODc5NjQxODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC00NCw3ICs0NCw3IEBACiAjaW5j
bHVkZSAiVlRUUmVnaW9uLmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUyLDM3ICs1MiwzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoVGV4dFRyYWNrKTsKIAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNL
ZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
dWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gc3VidGl0bGVzOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY2Fw
dGlvbnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRl
c2NyaXB0aW9uc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBkZXNjcmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBjaGFwdGVyc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBz
dGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAg
ICAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggNjU1MTA4YTU5N2M5NTNm
YzA4NzllZjA4YTgzMmMxMjQ0YjhkZmRhMS4uNDAwNjVhMDVmZGU0MDQwYzllOTI3NzY0MGFmMjlm
YmJmOGU5OTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cApAQCAtNTIsOCArNTIsOCBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9I
ZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25TZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4K
IApAQCAtNjQsMTkgKzY0LDE5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJh
Y2tDdWVCb3gpOwogCiBjb25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1Bz
ZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
Y3VlKCJjdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5
Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRv
SWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9J
ZDsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCYWNrZHJvcFNoYWRv
d1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gY3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRp
c3BsYXktYmFja2Ryb3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNr
ZHJvcFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNr
ZHJvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3Vl
QmFja2Ryb3BTaGFkb3dQc2V1ZG9JZDsKIH0KIApAQCAtNDg4LDggKzQ4OCw3IEBAIHZvaWQgVGV4
dFRyYWNrQ3VlOjpyZWJ1aWxkRGlzcGxheVRyZWUoKQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29w
ZTo6RXZlbnRBbGxvd2VkU2NvcGUgYWxsb3dlZFNjb3BlRm9yUmVmZXJlbmNlVHJlZSgqbV9jdWVO
b2RlKTsKIAogICAgIGlmICghbV9kaXNwbGF5VHJlZSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Vi
a2l0LWdlbmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3RO
YW1lKCItd2Via2l0LWdlbmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgICAgIG1fZGlzcGxheVRyZWUgPSBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0
ZShvd25lckRvY3VtZW50KCksICp0aGlzKTsKICAgICAgICAgbV9kaXNwbGF5VHJlZS0+c2V0UHNl
dWRvKHdlYmtpdEdlbmVyaWNDdWVSb290TmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwCmluZGV4IDNhNmU0NzIxZTc3MmQ4ZmQxZGI1OWVkODMzZmU3YjJk
NTQxNjgzNmYuLjJmNjdkYzU0NWMxMjk1ZWU0MmFkNzcwMjRjY2M2MTUwZDlhOTE0YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNp
bmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJWVFRTY2FubmVyLmgiCiAjaW5jbHVkZSAiV2Vi
VlRUUGFyc2VyLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEy
Niw3ICsxMjcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5j
aG9yWShkb3VibGUgdmFsdWUpCiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB1cEtleXdvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtleXdv
cmQoInVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdXBLZXl3b3Jk
OwogfQogCkBAIC0yNjIsMjEgKzI2MywyMSBAQCB2b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5n
VmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5nLCBWVFRTY2FubmVyJiBpbnB1dCkKIAogY29uc3Qg
QXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFz
cygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNr
UmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xh
c3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0NsYXNzOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVk
b0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJh
Y2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJl
Z2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1Jl
Z2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9u
LWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJl
dHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBWVFRSZWdpb246OnRleHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQ
c2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1yZWdpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGI1ZGYxODNhYmQyZmY4Y2UxYjhmMzll
YmZkMWQyMGY1NjBjMDU5YTMuLjJmNGMxMTIyM2Q1N2E1NWEwYWY1YWFkMTg4NGI3NzBhNGRhYjM4
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVv
VHJhY2tMaXN0LmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKICNpbmNsdWRlICJTb3VyY2VCdWZmZXIuaCIKQEAgLTQ2LDM3ICs0NiwzNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZl
S2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGFsdGVybmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGFsdGVybmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IFZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21T
dHJpbmcmIFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMoIm1haW4iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IFZpZGVvVHJhY2s6OnNpZ25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc2lnbigic2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHNpZ24oInNpZ24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHNpZ247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRp
dGxlc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVv
VHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5j
cHAKaW5kZXggZTRhOTRhNTA1OTYxYWEzNzk3ZmE2ZDA0ZWE2NWM2NDU2NWFkOTZkZC4uZjU4NGMx
ZmNmY2U0Y2EzMmE5ZGRkMTg3Njk2YzYyYzliYzBmZWJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTM3LDcg
KzM3LDcgQEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKLSNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODIsNyArODIsNyBAQCBj
b25zdCBBdG9tU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBj
b25zdAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG1faW5pdGlhdG9yTmFtZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBkZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGRlZmF1bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggODliNmI2ZDdlMWY0YzFhOTFlZTZlMjUyMTU1MDA3ZGZlMDlhMDA5OC4uOWJiZjM2
ODVlMDJlMjNiZDYwNjlmYWJjNDczOWY4Yjg5YTIzNTJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRl
c3RNb25pdG9yLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTM0MDYsMTAg
KzM0MDYsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQoY29uc3QgUGxh
dGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQKIAogc3RhdGljIEZvY3VzRGlyZWN0
aW9uIGZvY3VzRGlyZWN0aW9uRm9yS2V5KGNvbnN0IEF0b21TdHJpbmcmIGtleUlkZW50aWZpZXIp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IERvd24oIkRvd24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IFVwKCJVcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gTGVmdCgiTGVmdCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gUmlnaHQoIlJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IFVwKCJV
cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IExlZnQoIkxlZnQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwgPSBGb2N1c0Rp
cmVjdGlvbk5vbmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAyMjk2YThmOWRkNTlmMmFl
OTg0NWQ2ZTIyN2EzNzg1M2QxZmM1OTVlLi44YzAwOTM2NTI2ZWY5OTJhODVmZjI0Y2UyNjZhYjRl
ZjJlMTg4YzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVXNlckFnZW50LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ry
b3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4NCw3ICs2ODUsNyBAQCBib29s
IFF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0CiAgICAgLy8gYmVj
YXVzZSBpdCBwdXRzIGFuIG92ZXJsYXkgKHdpdGggY2xhc3MgImRvY3MtaG9tZXNjcmVlbi1mcmVl
emUtZWwtZnVsbCIpIG92ZXIgdGhlIHBhZ2Ugd2hlbiBuYXZpZ2F0aW5nIGF3YXkgYW5kIGZhaWxz
CiAgICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gY29taW5nIGJhY2sgZnJvbSB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlIChlLmcuIGluICdwYWdlc2hvdycgZXZlbnQgaGFuZGxlcikuIFNlZSA8cmRhcjov
L3Byb2JsZW0vNTc2NzAwNjQ+LgogICAgIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNr
IGZvciBkb2NzLmdvb2dsZS5jb20gaG9zdCBiZWNhdXNlIG9mIGhvc3RlZCBHIFN1aXRlIGFwcHMu
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2dsZURvY3NP
dmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3Mt
aG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBhdXRvKiBmaXJzdENoaWxkSW5Cb2R5ID0gbV9kb2N1bWVudC0+Ym9keSgpID8g
bV9kb2N1bWVudC0+Ym9keSgpLT5maXJzdENoaWxkKCkgOiBudWxscHRyOwogICAgIGlmIChpczxI
VE1MRGl2RWxlbWVudD4oZmlyc3RDaGlsZEluQm9keSkpIHsKICAgICAgICAgYXV0byYgZGl2ID0g
ZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCpmaXJzdENoaWxkSW5Cb2R5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4
IGVlMGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5ZWNlOWFkNjczN2QuLmM4Y2RjNGM0YTRmNjA4
NTFjZDFhM2Y5M2JiNjc3NTNiODM3ODY1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMzgsNyArMzgsNyBAQAog
I2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlQWRqdXN0ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjEsNyArMjIxLDcg
QEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXIKICAgICAvLyBUb3NzIHRoZSBhbmltYXRpb24gb3Jk
ZXIgbWFwLgogICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5jbGVhcigpOwogCi0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIC8vIE5vdyBtYXJrIGFueSBzdGlsbCBhY3Rp
dmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMuCiAgICAg
aWYgKHRhcmdldFN0eWxlLmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQppbmRleCBiMTQ5NTE4NDQ3M2RjYWUxYWZjNWNhOTdkNDQ0YWJjNjU5MTdiOGM4Li43
MzFjMjg3ODI1NjkwNGQzZjhkNjM1YmNiNTA2NmY3ZWM1MWJlY2YyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtNDIsNyArNDIsNyBAQAogI2ltcG9ydCAiVGV4dFRyYWNr
TGlzdC5oIgogI2ltcG9ydCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3Jl
QW5pbWF0aW9uLmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MDMsNyArNDAzLDcgQEAgY29uc3QgVmVjdG9y
PEF0b21TdHJpbmc+JiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6b2JzZXJ2ZWRF
dmVudE5hbWVzKCkKIAogY29uc3QgQXRvbVN0cmluZyYgIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50OjpldmVudE5hbWVBbGwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBldmVudE5hbWVBbGwoImFsbEV2ZW50cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBldmVudE5hbWVBbGw7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggZThlMzljOTI2M2Q3YTU4NzNiYTljMTc0YjU4
ZTQxZmY4M2Q3N2Q0MC4uNTFmNWFhYmFmNmIxNTIyZDk1YWMxYTlmMmY4ZTM2YzM2MzAxZjRhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTQyLDcgKzQyLDcgQEAKICNp
bXBvcnQgIlRleHRUcmFja0xpc3QuaCIKICNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQg
PFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg0LDcgKzE4NCw3
IEBAIGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzRXZl
bnROYW1lQWxsID0gImFsbEV2ZW50cyI7CiAgICAgcmV0dXJuIHNFdmVudE5hbWVBbGw7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4
IDdmY2FhNDRkNTRhMzg3NDJmN2RkNTg3NDAwNmFhNDM3NmUyNTg0OGMuLmU3ZjQ2Y2UwNTdlMzI0
NWE2N2QxYjQxZWI3ZTI2MGJlYTZjOGVkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgpAQCAtMTQ5LDEyICsxNDksMTIgQEAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGFDYWNoZSYg
Zm9udFBsYXRmb3JtRGF0YUNhY2hlKCkKIAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjph
bHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gY291cmllcigiQ291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllck5ldygi
Q291cmllciBOZXciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiB0aW1lcygiVGltZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9t
YW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFy
aWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoIkNv
dXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyTmV3KCJDb3Vy
aWVyIE5ldyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVs
dmV0aWNhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3
IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3Qg
QXRvbVN0cmluZyYgcGxhdGZvcm1TcGVjaWZpY0FsdGVybmF0ZSA9IHBsYXRmb3JtQWx0ZXJuYXRl
RmFtaWx5TmFtZShmYW1pbHlOYW1lKTsKICAgICBpZiAoIXBsYXRmb3JtU3BlY2lmaWNBbHRlcm5h
dGUuaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKaW5kZXggYzgyOGJiZTdlNzc1NWVlNzExMjE3MjNlOWYxNzAyN2VkMWZhZTI0
Ni4uYWI2OTFlODg3NzdjY2U3NmVmOGQzMTkxZTE0N2Q2YmNkMGQwNzUxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzYsNyAr
MzYsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllclByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKLSNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQpAQCAtMjk3LDEzICsyOTcsMTMgQEAgc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdp
bmUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyRmFjdG9yeT4mJiBmYWN0b3J5KQogCiBzdGF0
aWMgY29uc3QgQXRvbVN0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJl
YW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXBwbGljYXRp
b25PY3RldFN0cmVhbTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHRleHRQbGFpbigp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQbGFp
bigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRQbGFp
bigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gdGV4dFBsYWluOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFt
aW5nLmNwcAppbmRleCAyZDZlOWFhNjNjNGUxOTlkZDk5MmUxNzQ0MmU1ZGFlMGU2MzQxOGJlLi45
YTg5Mjg0N2FkOWE3OWYxOTk3MTQzMGQ0MWFkNzA2MGU5NTY1NDU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJl
YW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRl
IDx3dGYvQWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9CYXNlNjQuaD4KIAogI2lmIEhBVkUoQVZDT05URU5US0VZU0VTU0lPTikKQEAgLTc1LDEz
ICs3NSwxMyBAQCBjb25zdCBWZWN0b3I8Rm91ckNDPiYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFt
aW5nOjp2YWxpZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcwogCiBjb25zdCBBdG9tU3RyaW5nJiBD
RE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJz
aW5mIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CiAgICAgcmV0
dXJuIHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVh
bWluZzo6c2tkTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IHNrZCB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJza2QiKSB9OworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoInNrZCIpIH07CiAgICAgcmV0dXJuIHNrZDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggOTlhOTNjMjU5OGQ0NzZjMTQyNjliNDRmOTFiMTMwN2Q0YzU3Yjk4ZC4u
ZWY4ZTkyZjQ2OWIyZTgxNmZmZTM2YWQ1ZmFlMmUwMTk5NmUxYjBhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC05MSw3ICs5MSw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbXBvcnQgPHd0Zi9MaXN0SGFz
aFNldC5oPgotI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW1wb3J0IDx3dGYvTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KICNp
bXBvcnQgPHd0Zi9VUkwuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgpAQCAt
MzAxOCwxMiArMzAxOCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaQogI2lmIEVOQUJMRShE
QVRBQ1VFX1ZBTFVFKQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIG1ldGFkYXRhVHlwZShOU1N0
cmluZyAqYXZNZXRhZGF0YUtleVNwYWNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVVc2VyRGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS51
ZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGlt
ZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpVHVuZXNNZXRhZGF0YSgiY29tLmFwcGxl
Lml0dW5lcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEoIm9yZy5pZDMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGhsc0RhdGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVp
Y2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVz
ZXJEYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gcXVpY2tUaW1lTWV0YWRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUubWR0YSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRhKCJjb20uYXBw
bGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEo
Im9yZy5pZDMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBobHNEYXRlUmFuZ2VN
ZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS5ITFMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoW2F2TWV0YWRhdGFLZXlTcGFjZSBpc0VxdWFsVG9TdHJp
bmc6QVZNZXRhZGF0YUtleVNwYWNlUXVpY2tUaW1lVXNlckRhdGFdKQogICAgICAgICByZXR1cm4g
cXVpY2tUaW1lVXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggZjYyOGFjMmI2
Y2U3NGZmYzUyMDZiMWEyZDljZmY1NzkyMTkwOTdkNS4uNWI2NzMwZjljODg0NjY5M2MwYTkxNzg5
NzU1ODBlZGQzNTgwYjg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtMzYsOCArMzYs
OCBAQAogCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKICNkZWZpbmUgSEFTX0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUgKFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkpCiAKQEAgLTcwNSwxMyArNzA1LDEzIEBAIFJlZlB0cjxGb250
PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIGNvbnN0IEF0CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBTdWJzdGl0dXRl
IHRoZSBkZWZhdWx0IG1vbm9zcGFjZSBmb250IGZvciB3ZWxsLWtub3duIG1vbm9zcGFjZSBmb250
cy4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibW9uYWNv
IikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibWVubG8iKSkgewot
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllcigiY291cmll
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyKCJjb3VyaWVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gZm9u
dEZvckZhbWlseShkZXNjcmlwdGlvbiwgY291cmllcik7CiAgICAgfQogCiAgICAgLy8gU3Vic3Rp
dHV0ZSBWZXJkYW5hIGZvciBMdWNpZGEgR3JhbmRlLgogICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShmYW1pbHksICJsdWNpZGEgZ3JhbmRlIikpIHsKLSAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZlcmRhbmEoInZlcmRhbmEiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmVyZGFuYSgidmVyZGFuYSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVz
Y3JpcHRpb24sIHZlcmRhbmEpOwogICAgIH0KICNlbmRpZgpAQCAtNzIwLDggKzcyMCw4IEBAIFJl
ZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIGNvbnN0IEF0CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
cGFzaHRvKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQYXNodG8iKSk7CiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gdXJkdShNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiVXJkdSIp
KTsKICAgICBzdGF0aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0geyAmYXJhYmljLmdldCgpLCAm
cGFzaHRvLmdldCgpLCAmdXJkdS5nZXQoKSB9OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBnZWV6YVBsYWluKCJHZWV6YVBybyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZ2VlemFC
b2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ2Vl
emFQbGFpbigiR2VlemFQcm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBnZWV6
YUJvbGQoIkdlZXphUHJvLUJvbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgZm9yIChTdHJpbmcqIG1hdGNoV29yZCA6IG1hdGNoV29yZHMpIHsKICAgICAgICAgaWYg
KGZhbWlseS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCptYXRjaFdvcmQpKQogICAgICAgICAg
ICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGlzRm9udFdlaWdodEJvbGQoZGVz
Y3JpcHRpb24ud2VpZ2h0KCkpID8gZ2VlemFCb2xkIDogZ2VlemFQbGFpbik7CkBAIC0xNTA3LDEw
ICsxNTA3LDEwIEBAIGNvbnN0IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5h
dGVGYW1pbHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlsCiAgICAgc3RhdGljIGNvbnN0IFVD
aGFyIHdlaXJ1YW5ZYUhlaVN0cmluZ1tdID0geyAweDVmYWUsIDB4OGY2ZiwgMHg5NmM1LCAweDll
ZDEgfTsKICAgICBzdGF0aWMgY29uc3QgVUNoYXIgd2VpcnVhblpoZW5nSGVpdGlTdHJpbmdbXSA9
IHsgMHg1ZmFlLCAweDhlZGYsIDB4NmI2MywgMHg5ZWQxLCAweDlhZDQgfTsKIAotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzb25ndGlTQygiU29uZ3RpIFNDIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBzb25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoZWl0aVND
UmVwbGFjZW1lbnQoIlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoZWl0aVRDUmVwbGFj
ZW1lbnQoIlBpbmdGYW5nIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc29u
Z3RpU0MoIlNvbmd0aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNvbmd0
aVRDKCJTb25ndGkgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWl0aVND
UmVwbGFjZW1lbnQoIlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZmFtaWx5TmFtZS5sZW5ndGgoKSkgewogICAg
IGNhc2UgMjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcAppbmRleCBj
YzRlMmJjNDQ2ZjI4ZTQ5ZGViNTMzNmEzM2IwYmJmNzk4NmZjMmQwLi42ZWIwNmM5YWEyYTEzMDc5
ZmU5ZGFjNzgwNmFjYzBiMzc4NWE2MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNl
Q29yZVRleHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIK
ICNpbmNsdWRlICJGb250Q2FzY2FkZURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxMywyMiArMjE0LDIyIEBAIFN5c3RlbUZv
bnREYXRhYmFzZUNvcmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMgU3lzdGVtRm9udERhdGFi
YXNlQ29yZVRleHQ6OnN5CiAKICAgICBzd2l0Y2ggKHN5c3RlbUZvbnRLaW5kKSB7CiAgICAgY2Fz
ZSBTeXN0ZW1Gb250S2luZDo6U3lzdGVtVUk6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygic3lzdGVtLXVpIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygic3lz
dGVtLXVpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXN1
bHQuZm9udE5hbWUgPSBzeXN0ZW1VSS5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJU2VyaWY6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1zZXJpZiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSVNlcmlmID0gQXRv
bVN0cmluZygidWktc2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJU2VyaWYuZ2V0KCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSU1vbm9zcGFjZTogewotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlNb25vc3BhY2Ug
PSBBdG9tU3RyaW5nKCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc3lzdGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5nKCJ1aS1tb25vc3BhY2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFt
ZSA9IHN5c3RlbVVJTW9ub3NwYWNlLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBTeXN0ZW1Gb250S2luZDo6VUlSb3VuZGVkOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1VSVJvdW5kZWQgPSBBdG9tU3RyaW5nKCJ1aS1yb3Vu
ZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJUm91bmRl
ZCA9IEF0b21TdHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJUm91bmRlZC5nZXQoKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCBhMGFhMjUwM2VhNWVi
ZWM5Y2JlYTVhYzcyN2Y3MDYwNTkzOTQ1NzU1Li5jYjBiNGMzYjA4YTU1MWE0YmJkZTZjM2FhOTZl
NzFjYmQ0NzNhMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMjMsNyArMjMsNyBAQAogI2luY2x1
ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0zNyw3ICszNyw3IEBAIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6
OmNyZWF0ZShGaWx0ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKIAogY29uc3QgQXRvbVN0cmluZyYg
U291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCAwNDVlZTAxZjIyM2U0MjJmZmYwNDZmZWEyZjRjYTJk
ZGUwZGRkNzEyLi42Y2E4OGJhYjQwZDI3YmYzMTMzYTYzNzk1OGUxYTlhNDE0ZGRhMmIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdy
YXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlR3JhcGhpYy5jcHAKQEAgLTIyLDcgKzIyLDcgQEAKIAogI2luY2x1ZGUgIkZpbHRlci5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYsNyArMzYsNyBAQCBSZWY8
U291cmNlR3JhcGhpYz4gU291cmNlR3JhcGhpYzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyKQogCiBj
b25zdCBBdG9tU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3VyY2VH
cmFwaGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJT
b3VyY2VHcmFwaGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBzX2VmZmVjdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDRmMDhjYTA2ZDI0ZTlkYzNmYTA0
MzQxOGMzY2JmYzI4Mjc2ZWUxZDEuLjg0YjdhMzg5YzA5ZDQwZmY4N2RhNzc5ZDAyOWVkMDAxYTQ4
ZjI2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9G
b250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9z
L0ZvbnRDYWNoZUlPUy5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpAQCAtNTMsOCArNTMsOCBAQCBGb250UGxhdGZvcm1EYXRhKiBGb250Q2Fj
aGU6OmdldEN1c3RvbUZhbGxiYWNrRm9udChjb25zdCBVSW50MzIgYywgY29uc3QgRm9udERlcwog
ewogICAgIEFTU0VSVChyZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChjKSk7CiAKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVsdmV0aWNhRmFtaWx5KCJIZWx2ZXRpY2Eg
TmV1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdGltZXNOZXdSb21hblBTTVRGYW1pbHkoIlRpbWVzTmV3
Um9tYW5QU01UIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVsdmV0aWNhRmFt
aWx5KCJIZWx2ZXRpY2EgTmV1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRp
bWVzTmV3Um9tYW5QU01URmFtaWx5KCJUaW1lc05ld1JvbWFuUFNNVCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEF0b21TdHJpbmcqIGZhbWlseSA9IG51bGxwdHI7
CiAgICAgc3dpdGNoIChjKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5o
CmluZGV4IDE3Y2I1MGUzYTU1NTEwNTViMzNiNTZkM2E1MWE2NjgzYjc3ZmMwMjMuLjhjY2FmZDMw
MWQ0ZGQzNDQyYzdmZjRjMmJkMjVjN2UxMjQ4MGYzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiVGV4dHVyZU1h
cHBlckdMSGVhZGVycy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdIYXNoLmg+CiAKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFRFWE1BUF9ERUNMQVJFX1ZBUklB
QkxFKEFjY2Vzc29yLCBOYW1lLCBUeXBlKSBcCiAgICAgR0x1aW50IEFjY2Vzc29yIyNMb2NhdGlv
bigpIHsgXAotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZShOYW1lLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7IFwKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKE5h
bWUsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAogICAgICAgICByZXR1cm4g
Z2V0TG9jYXRpb24obmFtZS5nZXQoKSwgVHlwZSk7IFwKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXgg
NjhkNDhlODc2NDk1YTgyNjdlNzU4OTczZjFkZTVhYmMyZTE4MTVmOC4uMmNiMjQ5MzgwZmFlMTY1
ZmNmMzRjZmM4MDZiZjNjMjRmMDk4Njk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM0LDcgKzM0LDcgQEAK
ICNpbmNsdWRlIDxtbGFuZy5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KQEAgLTM3Myw3ICszNzMsNyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpm
b250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbgog
CiBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1lOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsbGJhY2tGb250TmFtZTsKIAogICAgIGlm
ICghZmFsbGJhY2tGb250TmFtZS5nZXQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAqZm9u
dEZvckZhbWlseShmb250RGVzY3JpcHRpb24sIGZhbGxiYWNrRm9udE5hbWUpOwpAQCAtMzg0LDcg
KzM4NCw3IEBAIFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpCiAgICAgLy8gU2VhcmNoIGFsbCB0eXBp
Y2FsIFdpbmRvd3MtaW5zdGFsbGVkIGZ1bGwgVW5pY29kZSBmb250cy4KICAgICAvLyBTb3J0ZWQg
YnkgbW9zdCB0byBsZWFzdCBnbHlwaHMgYWNjb3JkaW5nIHRvIGh0dHA6Ly9lbi53aWtpcGVkaWEu
b3JnL3dpa2kvVW5pY29kZV90eXBlZmFjZXMKICAgICAvLyBTdGFydCB3aXRoIFRpbWVzIE5ldyBS
b21hbiBhbHNvIHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2hh
bmdlIHByZWZzLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFj
a0ZvbnRzW10gPSB7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7CiAgICAgICAgIEF0b21TdHJpbmcoIlRpbWVz
IE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKICAgICAgICAg
QXRvbVN0cmluZygiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCksCiAgICAgICAgIEF0b21TdHJpbmcoIlRhaG9tYSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSwKQEAgLTY5NCw4ICs2OTQsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnREZQogCiBjb25zdCBBdG9tU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRl
RmFtaWx5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJpZigiTWljcm9zb2Z0IFNhbnMgU2Vy
aWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1l
cyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtaWNyb3NvZnRT
YW5zU2VyaWYoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChmYW1pbHlOYW1lLmxlbmd0aCgpKSB7CiAgICAgLy8g
T24gV2luZG93cywgd2UgZG9uJ3Qgc3VwcG9ydCBiaXRtYXAgZm9udHMsIGJ1dCBsZWdhY3kgY29u
dGVudCBleHBlY3RzIHN1cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCmluZGV4IDg1
YWExZTE0MTViMDBmNTExOWVkN2ExYjY0M2I5NmFmZDIwYjc1MDkuLjEwYjZjZGFlZDhjZDRiNDM1
NjM2MzZiZGU3OWNlNDA4NDM5ZThmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCkBA
IC0zMyw3ICszMyw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPGxpbWl0cz4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+Ci0jaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9jZi9U
eXBlQ2FzdHNDRi5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgpAQCAtMTUwLDcg
KzE1MCw3IEBAIHN0YXRpYyBpbmxpbmUgQXRvbVN0cmluZyBleHRyYWN0SFRUUFN0YXR1c1RleHQo
Q0ZIVFRQTWVzc2FnZVJlZiBtZXNzYWdlUmVmKQogICAgIGlmIChhdXRvIGh0dHBTdGF0dXNMaW5l
ID0gYWRvcHRDRihDRkhUVFBNZXNzYWdlQ29weVJlc3BvbnNlU3RhdHVzTGluZShtZXNzYWdlUmVm
KSkpCiAgICAgICAgIHJldHVybiBleHRyYWN0UmVhc29uUGhyYXNlRnJvbUhUVFBTdGF0dXNMaW5l
KGh0dHBTdGF0dXNMaW5lLmdldCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBkZWZhdWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBkZWZhdWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlZmF1bHRTdGF0dXNUZXh0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAppbmRleCAyOWViZTU2YWYw
OTExMmIzMWU1MzY5ZmU4OWVhNzg5NzRiZjc3ZTAwLi5lMWJhMjNkOTlmNjFmMmYzZWQzYjU0MzNi
Mzc0NGNhNjJhYzNjMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29t
cGxleExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4
TGluZUxheW91dC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJveC5oIgogI2luY2x1ZGUgIlZlcnRp
Y2FsUG9zaXRpb25DYWNoZS5oIgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTIxNTgsNyArMjE1OSw3IEBAIHZvaWQgQ29tcGxleExpbmVMYXlvdXQ6OmNoZWNrTGlu
ZXNGb3JUZXh0T3ZlcmZsb3coKQogICAgIC8vIERldGVybWluZSB0aGUgd2lkdGggb2YgdGhlIGVs
bGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZvbnQuCiAgICAgLy8gRklYTUU6IENTUzMgc2F5cyB0
aGlzIGlzIGNvbmZpZ3VyYWJsZSwgYWxzbyBuZWVkIHRvIHVzZSAweDAwMkUgKEZVTEwgU1RPUCkg
aWYgaG9yaXpvbnRhbCBlbGxpcHNpcyBpcyAibm90IHJlbmRlcmFibGUiCiAgICAgY29uc3QgRm9u
dENhc2NhZGUmIGZvbnQgPSBzdHlsZSgpLmZvbnRDYXNjYWRlKCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CiAgICAgY29uc3QgRm9udENhc2Nh
ZGUmIGZpcnN0TGluZUZvbnQgPSBtX2Zsb3cuZmlyc3RMaW5lU3R5bGUoKS5mb250Q2FzY2FkZSgp
OwogICAgIGZsb2F0IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggPSBmaXJzdExpbmVGb250LndpZHRo
KG1fZmxvdy5jb25zdHJ1Y3RUZXh0UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIG1fZmxvdy5m
aXJzdExpbmVTdHlsZSgpKSk7CiAgICAgZmxvYXQgZWxsaXBzaXNXaWR0aCA9IChmb250ID09IGZp
cnN0TGluZUZvbnQpID8gZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA6IGZvbnQud2lkdGgobV9mbG93
LmNvbnN0cnVjdFRleHRSdW4oJmhvcml6b250YWxFbGxpcHNpcywgMSwgc3R5bGUoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcAppbmRleCA4MTUwZjU1ZmRlMjZhNjQ3YTdlZDgwM2EzZGI3NzMzNmM0YTcwOThi
Li4xZTk4MDA2YWVhM2I0ZTZjMzA4Y2VjZDM2NzRiZDIyZTBmNWU0YmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5o
PgogCkBAIC05OTEsOCArOTkyLDggQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmFwcGx5TGluZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGNvbnN0IFVDaGFyIGVsbGlwc2lzQW5kU3BhY2VbMl0g
PSB7IGhvcml6b250YWxFbGxpcHNpcywgJyAnIH07Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBlbGxpcHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIp
OwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWxsaXBzaXNTdHIo
Jmhvcml6b250YWxFbGxpcHNpcywgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihlbGxpcHNpc0Fu
ZFNwYWNlLCAyKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICAg
ICAgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9PSAxID8g
Zmlyc3RMaW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250ID0gbGluZVN0eWxlLmZvbnRDYXNjYWRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDFkN2YwMzFjZmU1MWEyMjRhNWFmOGEw
NmUyZGI4N2U4ZDQ5ZGVmMjcuLmJlNDE2MGNhMTdkYmY4NzI1ZjBlOTM4ZDM4Y2RhYjVmNDc0Mzg5
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlN0eWxlU2VsZkFsaWdubWVudERhdGEuaCIK
ICNpbmNsdWRlICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldpbGxDaGFuZ2VEYXRh
LmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJDb21wYXJpc29uLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMTU2Niw4ICsxNTY3LDggQEAgY29uc3Qg
QXRvbVN0cmluZyYgUmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZygpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBoeXBoZW5hdGlvblN0cmluZzsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBkZXBl
bmQgb24gbG9jYWxlLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoeXBo
ZW5NaW51c1N0cmluZygmaHlwaGVuTWludXMsIDEpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoeXBoZW5NaW51c1N0cmluZygm
aHlwaGVuTWludXMsIDEpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4sIDEpOwogICAgIHJldHVybiBmb250
Q2FzY2FkZSgpLnByaW1hcnlGb250KCkuZ2x5cGhGb3JDaGFyYWN0ZXIoaHlwaGVuKSA/IGh5cGhl
blN0cmluZyA6IGh5cGhlbk1pbnVzU3RyaW5nOwogfQogCkBAIC0xNTc5LDI4ICsxNTgwLDI4IEBA
IGNvbnN0IEF0b21TdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJrU3RyaW5nKCkg
Y29uc3QKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkN1c3RvbToKICAgICAgICAgcmV0dXJu
IHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKTsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkRv
dDogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkRG90
U3RyaW5nKCZidWxsZXQsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gb3BlbkRvdFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERvdFN0cmluZygm
YnVsbGV0LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CiAgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmls
bGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFz
aXNNYXJrOjpDaXJjbGU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOwotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVDaXJjbGUs
IDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOworICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5DaXJjbGVT
dHJpbmcoJndoaXRlQ2lyY2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwo
KSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJpbmcgOiBvcGVu
Q2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkRvdWJsZUNp
cmNsZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVk
RG91YmxlQ2lyY2xlU3RyaW5nKCZmaXNoZXllLCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOworICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Eb3VibGVDaXJj
bGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwo
KSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcg
OiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01h
cms6OlRyaWFuZ2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBmaWxsZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpOwotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlblRyaWFuZ2xlU3RyaW5n
KCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkVHJpYW5nbGVTdHJpbmcoJmJs
YWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQ
b2ludGluZ1RyaWFuZ2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9
PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmluZyA6IG9wZW5U
cmlhbmdsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpTZXNhbWU6
IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZFNlc2Ft
ZVN0cmluZygmc2VzYW1lRG90LCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG9wZW5TZXNhbWVTdHJpbmcoJndoaXRlU2VzYW1lRG90LCAxKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWRT
ZXNhbWVTdHJpbmcoJnNlc2FtZURvdCwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlblNlc2FtZVN0cmluZygmd2hpdGVTZXNh
bWVEb3QsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBo
YXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNhbWVTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6QXV0bzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMjIxZWU2NWQ5Yjk4N2VmYTMyMmUzNjljMTQzMGYx
ZTI4MGVhZjg2OS4uNjM3M2MyZmFhZjA1MTMxZTk1Yjg0YTk5MjcyMjA4OGRjMmVjZjQzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC01NDUsMjAgKzU0Niwy
MCBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5
bGUmIHN0eWxlKSBjb25zdAogCiAgICAgaWYgKG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNHTWFp
bE92ZXJmbG93U2Nyb2xsUXVpcmsoKSkgewogICAgICAgICAvLyBUaGlzIHR1cm5zIHNpZGViYXIg
c2Nyb2xsYWJsZSB3aXRob3V0IG1vdXNlIG1vdmUgZXZlbnQuCi0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiByb2xlVmFsdWUoIm5hdmlnYXRpb24iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0aW9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBpZiAoc3R5bGUub3ZlcmZsb3dZ
KCkgPT0gT3ZlcmZsb3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24ocm9sZUF0dHIpID09IHJvbGVWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNl
dE92ZXJmbG93WShPdmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1
aXJrcygpLm5lZWRzWW91VHViZU92ZXJmbG93U2Nyb2xsUXVpcmsoKSkgewogICAgICAgICAvLyBU
aGlzIHR1cm5zIHNpZGViYXIgc2Nyb2xsYWJsZSB3aXRob3V0IGhvdmVyLgotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaWRWYWx1ZSgiZ3VpZGUtaW5uZXItY29udGVu
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZFZhbHVlKCJndWlkZS1p
bm5lci1jb250ZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICBpZiAoc3R5bGUub3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQt
PmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkgPT0gaWRWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNl
dE92ZXJmbG93WShPdmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1
aXJrcygpLm5lZWRzRnVsbHNjcmVlbkRpc3BsYXlOb25lUXVpcmsoKSkgewogICAgICAgICBpZiAo
aXM8SFRNTERpdkVsZW1lbnQ+KG1fZWxlbWVudCkgJiYgc3R5bGUuZGlzcGxheSgpID09IERpc3Bs
YXlUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gaW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKCJpbnN0cmVhbS1uYXRpdmUt
dmlkZW8tLW1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAg
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0VsZW1l
bnRJRCgidmpzX3ZpZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MoImluc3RyZWFtLW5hdGl2
ZS12aWRlby0tbW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
ICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB2aWRlb0VsZW1lbnRJRCgidmpzX3ZpZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgICAgICAgICBhdXRvJiBkaXYgPSBkb3duY2FzdDxI
VE1MRGl2RWxlbWVudD4oKm1fZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoZGl2Lmhhc0NsYXNz
KCkgJiYgZGl2LmNsYXNzTmFtZXMoKS5jb250YWlucyhpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xh
c3MpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cAppbmRleCA1ZDA1MjExOWM2NDRjYmVmMjQwMmEyYzM5NmY2Nzc3Njk2MWM4OTE4Li5kMGE2MmU0
ZTg0NDAxZDI2MTdhNzc1NThkMzBlYjJkODAyODk2MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJTVkdQYXRoRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1BhdGhVdGlsaXRpZXMuaCIKICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CkBA
IC0xMDksOCArMTEwLDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAKIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3Rh
dGVNb2RlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYXV0b1ZhbCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2Uo
ImF1dG8tcmV2ZXJzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9WYWwo
ImF1dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0
by1yZXZlcnNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0
IEF0b21TdHJpbmcmIHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6cm90YXRlQXR0cik7
CiAgICAgaWYgKHJvdGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4gUm90YXRlQXV0bzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAxYjQ2MWI0
NzMxODY4MDY0MjBjOGEwZWQ3YTM3YzE2ODk2NmQzYjMyLi5hMTRiYzk4NGM4OWFlOTI4YmQzZjFh
ZTFhNjU2ZWY5NTcxMmJjM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVz
LmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0yNzYsMTAgKzI3NiwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFu
aW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNv
bnN0IEF0b21TdHJpbmcmIGNhbGNNb2RlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBkaXNjcmV0ZSgiZGlzY3JldGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNlZCgicGFjZWQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbGluZWFyKCJsaW5lYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
cGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBp
ZiAoY2FsY01vZGUgPT0gZGlzY3JldGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNNb2RlOjpE
aXNjcmV0ZSk7CiAgICAgZWxzZSBpZiAoY2FsY01vZGUgPT0gbGluZWFyKQpAQCAtMjk0LDggKzI5
NCw4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbVN0
cmluZyYgY2FsY01vZGUpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZShjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4geG1sKCJYTUwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNT
UyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykK
ICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQXR0cmlidXRlVHlwZTo6Q1NTOwogICAgIGVsc2Ug
aWYgKGF0dHJpYnV0ZVR5cGUgPT0geG1sKQpAQCAtMzIxLDE0ICszMjEsMTQgQEAgU3RyaW5nIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9u
RWxlbWVudDo6aXNBZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5p
bWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OkJ5OwogfQogCiBib29sIFNWR0FuaW1hdGlv
bkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihTVkdOYW1lczo6YWNjdW11bGF0ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0g
JiYgYW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRvOwogfQpAQCAtNjA2LDcgKzYw
Niw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y29tcHV0ZUNTU1Byb3BlcnR5VmFsdWUo
U1ZHRWxlbWVudCogZWxlbWVudCwgQ1NTUHJvcGVyCiAKIHN0YXRpYyBib29sIGluaGVyaXRzRnJv
bVByb3BlcnR5KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFs
dWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmNwcAppbmRleCA2Y2U3NWVlNzUzMzI0YjhkZTYzMWEzMDY0M2Y5YmQ4ZWY4
MWQ4NjlkLi4zMTg3OWY1N2RmNzYwZjhmYWJjMjEzZjM2M2E1NTJiMmM1YTcyYzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTY0LDcgKzY1LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wg
c2V0RGlzYWJsZWQpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRl
ZmF1bHRWYWx1ZSgidGV4dC9jc3MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZWZhdWx0VmFsdWUoInRleHQvY3NzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIGNvbnN0IEF0b21TdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVB
dHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZS5nZXQoKSA6IG47CiB9
CkBAIC03Niw3ICs3Nyw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0
b21TdHJpbmcmIHR5cGUpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVk
aWEoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBkZWZhdWx0VmFsdWUoImFsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRl
ZmF1bHRWYWx1ZSgiYWxsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIG4gPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNW
R05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVl
LmdldCgpIDogbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24v
U1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlM
RWxlbWVudC5jcHAKaW5kZXggNDQ5YjE0Y2Q1MDFkZjI1NTg3NGVjY2ZjNTg0OWM4OTRmMjgxMTZm
ZC4uNzZhMmViODdjYzE0ODc5OWViZmE3MDEyYzkzYWFiOGI3ODc3Y2FhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAgLTQzLDYgKzQz
LDcgQEAKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWROZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM0
MCw3ICszNDEsNyBAQCBTTUlMVGltZSBTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKGNv
bnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAgICBTdHJpbmcgcGFyc2UgPSBkYXRhLnN0cmlwV2hp
dGVTcGFjZSgpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBpZiAocGFyc2UgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAgICAg
ICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKIApAQCAtNjUyLDggKzY1Myw4IEBAIGJv
b2wgU1ZHU01JTEVsZW1lbnQ6OmlzRnJvemVuKCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50
OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKIHsgICAgCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5ldmVyKCJuZXZlciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2hlbk5vdEFjdGl2ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5ldmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdoZW5Ob3RBY3RpdmUoIndoZW5Ob3RBY3RpdmUiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBh
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAg
ICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAgICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAt
NjY0LDcgKzY2NSw3IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50Ojpy
ZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxl
bWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZyZWV6ZSgiZnJlZXplIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZnJlZXplKCJmcmVlemUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFNWR05hbWVzOjpmaWxsQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/
IEZpbGxGcmVlemUgOiBGaWxsUmVtb3ZlOwogfQpAQCAtNjk3LDcgKzY5OCw3IEBAIFNNSUxUaW1l
IFNWR1NNSUxFbGVtZW50OjpyZXBlYXRDb3VudCgpIGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVs
bCgpKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OnVucmVzb2x2ZWQoKTsKIAotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVm
aW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUo
ImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYg
KHZhbHVlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRl
ZmluaXRlKCk7CiAgICAgYm9vbCBvazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0
aW9uSW1wbC5jcHAKaW5kZXggNzJiMjViNWI4Y2MyZmMxZTcwMWM3OTE5ZTMzOTI3NjdjMjMxNDA1
ZC4uMDVmYmFhNzVlMzIwYjgxYTlhZTQxZDdhOGVhZjVmYWE2NDJjOTI4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1
bmN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKQEAgLTI4LDEyICsyOCwxMyBAQAog
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogQ29sb3IgU1ZHQW5pbWF0aW9uQ29sb3JGdW5jdGlvbjo6Y29sb3JGcm9tU3RyaW5n
KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdXJyZW50Q29sb3IoImN1
cnJlbnRDb2xvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1cnJlbnRDb2xv
cigiY3VycmVudENvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAg
ICAgaWYgKHN0cmluZyAhPSBjdXJyZW50Q29sb3IuZ2V0KCkpCiAgICAgICAgIHJldHVybiBTVkdQ
cm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaAppbmRleCAyMWU4
ODNmZTI0NDgzOGZmMzc0Njg2OWJmMTFhM2RmNDZmZjRiZTJhLi41YTIxZTQ1YzkxZDRmMWYwMDU5
NTY1YmUwNWIyMGVkNjc3ZjY2OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJTVkdBdHRyaWJ1dGVBbmltYXRvci5o
IgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTcyLDcgKzczLDcg
QEAgY2xhc3MgU1ZHUHJvcGVydHlBbmltYXRvciA6IHB1YmxpYyBTVkdBdHRyaWJ1dGVBbmltYXRv
ciB7CiAKICAgICBTdHJpbmcgYWRqdXN0Rm9ySW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0
RWxlbWVudCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBp
bmhlcml0ID8gY29tcHV0ZUluaGVyaXRlZENTU1Byb3BlcnR5VmFsdWUodGFyZ2V0RWxlbWVudCkg
OiB2YWx1ZTsKICAgICB9CiAK
</data>
<flag name="review"
          id="413540"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398146</attachid>
            <date>2020-04-30 19:47:02 -0700</date>
            <delta_ts>2020-04-30 20:03:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430194700.patch</filename>
            <type>text/plain</type>
            <size>144884</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmM4YzQxNGM5MDA5NzgxZmY2ZDUyNTUxYTEwYzJjNzAwNGEwYmFi
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTI5ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIERlYWRsb2NrIGluIFdU
Rjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0d29ya1Byb2Nlc3MuZXhlIGlzIGV4
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2FhMWRjNjM2MjkzYmMyN2ZhNzhiYTVj
NGVlLi4xMjQ2ZGVmNmNiNWE5MWIyYTBmYmNlMDYzN2Y1N2U5YjM4MTQyMmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYyIEBACisyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAv
IE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlv
bnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0
YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1O
YW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2lu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGlu
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjph
cnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFu
dFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6
Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNw
cDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFk
ZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1
dG9jYXBpdGFsaXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFs
aXplVHlwZSk6CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc0NvbnRhY3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0
ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lz
dGVtUHJldmlld0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlw
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjp0cnVlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6OnNldEF1dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6
Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0TW9kZU5hbWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRN
b2RlTmFtZXM6Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRl
Y2ltYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVj
a2JveCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpkYXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9u
dGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpyYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxh
eWJhY2tTdGF0ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVk
KToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1Nl
YXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Q
c2V1ZG9UeXBlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bk
b3duSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQXV0b0ZpbGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9u
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpU
ZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hG
aWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpjb21tZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNj
cmlwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9y
Y2VkS2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Ny
b2xsaW5nQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRl
eHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0Zvcndh
cmRDYWNoZSBjb25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5
ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3Rl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3Rl
bUZvbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpleHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21w
bGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6
Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhl
blN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhh
c2lzTWFya1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25z
dCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpyZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAy
MC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNv
bWUgSFRNTCBlbGVtZW50IGNyaXRpY2FsIHBhdGhzIGluY2x1ZGUgQXRvbVN0cmluZyBtYXRlcmlh
bGl6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaAppbmRleCA2ZTk3ZDVkOWVlOTA5NjBmMWNlMzJlNjgwM2JjZmZkZTQy
MjA0Y2NlLi43MWE3ZjFhN2U4YjlkNDkwOGQxODQwZDBkNWIwNjU1NDdiYzNlYjcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2Fy
ZC5oCkBAIC01OCw4ICs1OCw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBDb21wbGV0aW9u
SGFuZGxlcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEdW1iUHRyVHJhaXRzOwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJWYWx1ZVRyYWl0czsKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBGdW5jdGlvbjsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBMYXp5TmV2ZXJE
ZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7Cit0ZW1w
bGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZDsKK3RlbXBs
YXRlPHR5cGVuYW1lLCB0eXBlbmFtZT4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7CiB0ZW1wbGF0ZTx0
eXBlbmFtZT4gY2xhc3MgT3B0aW9uU2V0OwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIE9wdGlv
bmFsOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFja2VkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJv
eWVkLmgKaW5kZXggYjljOTE1YTUyYjRiZTE5MmZiZGEzMDBkMjBiOTJmNjYxNmZjNDc0My4uYTQ5
Y2UwZThlNGNjNzRlNjRkMDlmMDkyZWFkMjliNTcwOGEyOTkwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ry
b3llZC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yYmlkSGVhcEFsbG9jYXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIC8v
IE5ldmVyRGVzdHJveWVkIGlzIGEgc21hcnQtcG9pbnRlci1saWtlIGNsYXNzIHRoYXQgZW5zdXJl
cyB0aGF0IHRoZSBkZXN0cnVjdG9yCkBAIC00MiwxOCArNDMsMzMgQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKK3N0cnVj
dCBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzIHsKKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRBY2Nlc3Mo
KQorICAgIHsKKyAgICB9Cit9OworCitzdHJ1Y3QgTWFpblRocmVhZEFjY2Vzc1RyYWl0cyB7Cisg
ICAgc3RhdGljIHZvaWQgYXNzZXJ0QWNjZXNzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
QWNjZXNzVHJhaXRzID0gQW55VGhyZWFkc0FjY2Vzc1RyYWl0cz4gY2xhc3MgTmV2ZXJEZXN0cm95
ZWQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldmVyRGVzdHJveWVkKTsKICAgICBXVEZf
Rk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3M+IE5ldmVyRGVzdHJveWVkKEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKKyAgICAgICAg
QWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsKICAgICAgICAgTWF5YmVSZWxheDxUPihuZXcg
KHN0b3JhZ2VQb2ludGVyKCkpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAg
fQogCiAgICAgTmV2ZXJEZXN0cm95ZWQoTmV2ZXJEZXN0cm95ZWQmJiBvdGhlcikKICAgICB7Cisg
ICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIE1heWJlUmVsYXg8
VD4obmV3IChzdG9yYWdlUG9pbnRlcigpKSBUKFdURk1vdmUoKm90aGVyLnN0b3JhZ2VQb2ludGVy
KCkpKSk7CiAgICAgfQogCkBAIC03MCw3ICs4NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBOZXZlckRlc3Ryb3llZCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFBvaW50ZXJUeXBlID0g
dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VD46OnR5cGUqOwogCi0gICAgUG9pbnRlclR5cGUg
c3RvcmFnZVBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PFBvaW50ZXJUeXBlPihy
ZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdlKSk7IH0KKyAgICBQb2ludGVyVHlw
ZSBzdG9yYWdlUG9pbnRlcigpIGNvbnN0CisgICAgeworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFz
c2VydEFjY2VzcygpOworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOworICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6OmlzX2Jhc2Vfb2Y8
UmVmQ291bnRlZEJhc2UsIFB0clR5cGU+Ojp2YWx1ZT4gc3RydWN0IE1heWJlUmVsYXggewogICAg
ICAgICBleHBsaWNpdCBNYXliZVJlbGF4KFB0clR5cGUqKSB7IH0KQEAgLTg5LDcgKzEwOSw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IE5ldmVyRGVzdHJveWVkPFQ+IG1ha2VOZXZlckRlc3Ryb3ll
ZChUJiYpOwogLy8gRklYTUU6IEl0J3MgbWVzc3kgdG8gaGF2ZSB0byByZXBlYXQgdGhlIHdob2xl
IGNsYXNzIGp1c3QgdG8gbWFrZSB0aGlzICJsYXp5IiB2ZXJzaW9uLgogLy8gU2hvdWxkIHJldmlz
aXQgY2xpZW50cyB0byBzZWUgaWYgd2UgcmVhbGx5IG5lZWQgdGhpcywgYW5kIHBlcmhhcHMgdXNl
IHRlbXBsYXRlcyB0bwogLy8gc2hhcmUgbW9yZSBvZiB0aGUgY29kZSB3aXRoIHRoZSBtYWluIE5l
dmVyRGVzdHJveWVkIGFib3ZlLgotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVy
RGVzdHJveWVkIHsKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cyA9
IEFueVRocmVhZHNBY2Nlc3NUcmFpdHM+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTGF6eU5ldmVyRGVzdHJveWVkKTsKICAgICBXVEZfRk9SQklE
X0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKQEAgLTk5LDYgKzExOSw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgdm9pZCBjb25zdHJ1Y3Qo
QXJncyYmLi4uIGFyZ3MpCiAgICAgewogICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7
CisgICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAKICNpZiBBU1NFUlRfRU5B
QkxFRAogICAgICAgICBtX2lzQ29uc3RydWN0ZWQgPSB0cnVlOwpAQCAtMTI3LDYgKzE0OCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgUG9p
bnRlclR5cGUgc3RvcmFnZVBvaW50ZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
aXNDb25zdHJ1Y3RlZCk7CisgICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAg
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PFBvaW50ZXJUeXBlPihyZWludGVycHJldF9jYXN0PGNv
bnN0IFQqPigmbV9zdG9yYWdlKSk7CiAgICAgfQogCkBAIC0xNDgsMTMgKzE3MCwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHR5cGVuYW1l
IHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZh
bHVlPjo6dHlwZSBtX3N0b3JhZ2U7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
TmV2ZXJEZXN0cm95ZWQ8VD4gbWFrZU5ldmVyRGVzdHJveWVkKFQmJiBhcmd1bWVudCkKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cyA9IEFueVRocmVhZHNBY2Nlc3NU
cmFpdHM+IGlubGluZSBOZXZlckRlc3Ryb3llZDxULCBBY2Nlc3NUcmFpdHM+IG1ha2VOZXZlckRl
c3Ryb3llZChUJiYgYXJndW1lbnQpCiB7CiAgICAgcmV0dXJuIFdURk1vdmUoYXJndW1lbnQpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordXNpbmcgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
ID0gTmV2ZXJEZXN0cm95ZWQ8VCwgTWFpblRocmVhZEFjY2Vzc1RyYWl0cz47CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+Cit1c2luZyBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkID0gTGF6eU5l
dmVyRGVzdHJveWVkPFQsIE1haW5UaHJlYWRBY2Nlc3NUcmFpdHM+OworCiB9IC8vIG5hbWVzcGFj
ZSBXVEY7CiAKIHVzaW5nIFdURjo6TGF6eU5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpOZXZl
ckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6bWFrZU5ldmVyRGVzdHJveWVkOwordXNpbmcgV1RGOjpN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ7Cit1c2luZyBXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJE
ZXN0cm95ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcAppbmRleCA3MDY4ZjVmZmE0ODJk
YjA3MDU4NTFlY2Y0ZDJmZDUzYTNmZjc0YmQxLi43ZjE4NjE2M2QzODEyNmIyMzRhNDVlYWNjNmFk
N2U1NzFkNWU0MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKQEAgLTEzMywxMSAr
MTMzLDExIEBAIHZvaWQgQXRvbVN0cmluZzo6c2hvdygpIGNvbnN0CiAKICNlbmRpZgogCi1XVEZf
RVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG51bGxBdG9tRGF0
YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1w
dHlBdG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gc3RhckF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBN
YWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG51bGxBdG9tRGF0
YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVh
ZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7CitXVEZf
RVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB4bWxBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CiAKIHZvaWQgQXRvbVN0
cmluZzo6aW5pdCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJp
bmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDg4YjRlYmFjMzI3
MWJkM2ViM2MxNDEzZDVmNDgwYmEzZWJjYzIyZDQuLjcwMzZhM2QxZmM4MmI3MmZkOTlhNDQ1OTdi
Y2VhNDdmNGZlODIxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmlu
Zy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC0yOTAsMTEgKzI5
MCwxMSBAQCBpbmxpbmUgQXRvbVN0cmluZzo6QXRvbVN0cmluZyhOU1N0cmluZyAqc3RyaW5nKQog
CiAvLyBEZWZpbmUgZXh0ZXJuYWwgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIGNvbW1vbmx5IHVz
ZWQgYXRvbSBzdHJpbmdzLgogLy8gVGhlc2UgYXJlIG9ubHkgdXNhYmxlIGZyb20gdGhlIG1haW4g
dGhyZWFkLgotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbnVsbEF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JU
X1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKLWV4
dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHht
bEF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFp
blRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7
CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZB
VEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRv
bURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9Q
UklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1s
bnNBdG9tRGF0YTsKIAogaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIG51bGxBdG9tKCkgeyByZXR1
cm4gbnVsbEF0b21EYXRhLmdldCgpOyB9CiBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgZW1wdHlB
dG9tKCkgeyByZXR1cm4gZW1wdHlBdG9tRGF0YS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCmluZGV4IDVjODRjODVlYzc3MWRkNTg3NzliNDM5
NjU4NjU4M2NiYjllNWMwYjEuLmI5YjY2YTJiNWI5NWE0NjAxNTA1OGE1NjU1YjY4YzI0YjA3NzI1
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKQEAg
LTM3LDggKzM3LDggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktpdFBsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQpOwogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgc3Ry
aW5nRm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxh
YmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2YWls
YWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vdEF2YWlsYWJsZVN0cmlu
Zygibm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAog
ICAgIHJldHVybiBhdmFpbGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBub3RBdmFpbGFibGVTdHJp
bmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA3YzU0NmRjNjAwYjEyYzU3NmRkMDgyNzlh
YjdjNjY3ZmE1NWZiOTEzLi4zYjI1ZDA2YjEyM2ExYTUxYTBhMmFjZmI0ZjY1NmY4ZDk0YWRiM2Zj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXRE
YXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTI1OCwxOSArMjU4LDE5IEBAIHZvaWQgSW5pdERh
dGFSZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmluZyYgaW5pdERh
dGFUeXBlLCBJbml0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmNlbmNO
YW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJjZW5jIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiY2VuYyIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IEluaXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIp
IH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CiAgICAgcmV0dXJu
IHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1l
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJ3ZWJtIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgid2VibSIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmlu
ZGV4IDYwZWE2ZTdkMTA1NjNlZTE3OTQwZmM1OTMzZTgzM2U5YTBjZmFkMWEuLmY5ODFlY2NjMjk2
ZDc4Yzg3MGQ3Njg4YTA2YTBjZmY4MmY3NzYxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAt
NDMsMjUgKzQzLDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbVN0cmluZyYg
TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9tYXRpYygiYXV0b21hdGljIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdXRvbWF0aWM7CiB9CiAK
IGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3JjZWRPbmx5S2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZE9u
bHkoImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2Vk
T25seSgiZm9yY2VkLW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGZvcmNlZE9ubHk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhbHdh
eXNPbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBhbHdheXNPbigiYWx3YXlzLW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gYWx3YXlzT247CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBt
YW51YWxLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYWx3YXlzT24oIm1hbnVhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGFsd2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGFsd2F5c09uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBkMGIyY2I5ZmQwYWEx
YmQxZjI5YWNlZGM1YjYwOTM5Nzc0YTExY2IwLi4wODVlNGZkNmZiODMxZTg0MjU1YTgyYTAyZWE4
ZjE3MDQyZjlmZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCBNZWRpYVN0
cmVhbVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlh
U3RyZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2aWRlb0tpbmQo
InZpZGVvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXVkaW9LaW5kKCJhdWRp
byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9wcml2YXRlLT50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVy
biBhdWRpb0tpbmQ7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmxhYmVsKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFTdHJlYW1U
cmFjazo6Y29udGVudEhpbnQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRldGFpbEhpbnQo
ImRldGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQoInRleHQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHNwZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBkZXRhaWxIaW50KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB0ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vdGlv
bkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IHN3aXRjaCAobV9wcml2YXRlLT5jb250ZW50SGludCgpKSB7CiAgICAgY2FzZSBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZTo6SGludFZhbHVlOjpFbXB0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggNmEwZGYwNGY1
MWZiYjk4ZjllMjgyOTkyMGJjNWVmMDEzYmFlOWNhZC4uMGJlMzEyYWYwZTZjYWJjZjdmMDE0ZGMx
OTU1N2FlMTkxYjc0YjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoUlRDRGF0YUNoYW5uZWwpOwogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgYmxvYktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBibG9iKCJibG9iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYmxv
YigiYmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
YmxvYjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFycmF5YnVmZmVyS2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFycmF5YnVmZmVyKCJh
cnJheWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFycmF5YnVmZmVy
KCJhcnJheWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gYXJyYXlidWZmZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDAyYzc1NzAw
YTg1YjNjNzI1NjY5NzdiYTJkYmMxZTNhZjgyOTE0YjUuLjI2MmIyOWM5YzViZjU3Y2JlNmE3YjAw
MTE3NmIxZWNkNjliNTI5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMzQxMCw3ICszNDEw
LDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25T
dGF0dXMoKSBjb25zdAogCiBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCgiYWRkaXRpb25zIHRl
eHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJl
bGV2YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiByZWxldmFudCA9IGdldEF0dHJpYnV0ZShhcmlhX3Jl
bGV2YW50QXR0cik7CiAKICAgICAvLyBEZWZhdWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25z
IHRleHQiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlN
YXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCmluZGV4
IGZkMTQyZjdkZWFiMDc0OGU5NmExOWM1YjBkYWVkOTA2MjcwZDMwYjIuLmJlNWFkNDgzZTBjMTM5
N2I1ZjI4OWNhN2RjMzJhMjZlNTlkNmY4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db25zdGFudFByb3BlcnR5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3Rh
bnRQcm9wZXJ0eU1hcC5jcHAKQEAgLTUwLDE1ICs1MCwxNSBAQCBjb25zdCBDb25zdGFudFByb3Bl
cnR5TWFwOjpWYWx1ZXMmIENvbnN0YW50UHJvcGVydHlNYXA6OnZhbHVlcygpIGNvbnN0CiAKIGNv
bnN0IEF0b21TdHJpbmcmIENvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQcm9wZXJ0eShDb25z
dGFudFByb3BlcnR5IHByb3BlcnR5KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgic2FmZS1hcmVhLWluc2V0
LXJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0Qm90dG9tTmFtZSgic2FmZS1h
cmVhLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1l
KCJzYWZlLWFyZWEtaW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0
VG9wTmFtZSgiZnVsbHNjcmVlbi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3Jl
ZW5JbnNldExlZnROYW1lKCJmdWxsc2NyZWVuLWluc2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IGZ1bGxzY3JlZW5JbnNldEJvdHRvbU5hbWUoImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQt
cmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uTmFtZSgi
ZnVsbHNjcmVlbi1hdXRvLWhpZGUtZHVyYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRSaWdodE5hbWUoInNhZmUt
YXJlYS1pbnNldC1yaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVB
cmVhSW5zZXRCb3R0b21OYW1lKCJzYWZlLWFyZWEtaW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1lKCJzYWZlLWFyZWEtaW5z
ZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNl
dFRvcE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZnVsbHNjcmVlbkluc2V0TGVmdE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtbGVmdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldEJvdHRvbU5h
bWUoImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZnVsbHNjcmVlbkluc2V0UmlnaHROYW1lKCJmdWxsc2NyZWVuLWluc2V0LXJpZ2h0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRp
b25OYW1lKCJmdWxsc2NyZWVuLWF1dG8taGlkZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKICAgICBjYXNlIENv
bnN0YW50UHJvcGVydHk6OlNhZmVBcmVhSW5zZXRUb3A6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCBjNmQ5NThiMjVkMWJmNTM2YzI3NGI3ZTUyZjljNTNiNWFmMmI1ZjBjLi4xNzFiYWMzNTk1
ZjFhM2IwYmNhYTA3N2ZmZDY3MjczNjMyZGYzYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTEyNTksNyArMTI1OSw3IEBAIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyBE
b2N1bWVudDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZShjb25zdCBBdG9tCiAjaWYgRU5BQkxF
KE1BVEhNTCkKICAgICBjb25zdCBhdXRvJiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lID0gTWF0aE1M
TmFtZXM6OmFubm90YXRpb25feG1sVGFnLT5sb2NhbE5hbWUoKTsKICNlbHNlCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFubm90YXRpb25YbWxMb2NhbE5hbWUo
ImFubm90YXRpb24teG1sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYW5ub3Rh
dGlvblhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAjZW5kaWYKIAogICAgIGlmIChsb2NhbE5hbWUgPT0gU1ZHTmFtZXM6OmNv
bG9yX3Byb2ZpbGVUYWctPmxvY2FsTmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVT
dHlsZVNoZWV0T3duZXIuY3BwCmluZGV4IGZiMjk1OTBkZjMwZTc0NjRmZjk3OGFjNTk1NGFlNGQ4
OGJiZmZmZmMuLmJlZDk3ZTEwYzZhNjI1NWI3MjZkNWUyNmMwMTkyZmVhYTllNzg0YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCkBAIC0xNDksNyAr
MTQ5LDcgQEAgaW5saW5lIGJvb2wgaXNWYWxpZENTU0NvbnRlbnRUeXBlKEVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAgICAgLy8gRklYTUU6IFNob3VsZCBNSU1FIHR5
cGVzIHJlYWxseSBiZSBjYXNlIHNlbnNpdGl2ZSBpbiBYTUwgZG9jdW1lbnRzPyBEb2Vzbid0IHNl
ZW0gbGlrZSB0aGV5IHNob3VsZCwKICAgICAvLyBldmVuIHRob3VnaCBvdGhlciB0aGluZ3MgYXJl
IGNhc2Ugc2Vuc2l0aXZlIGluIHRoYXQgY29udGV4dC4gTUlNRSB0eXBlcyBzaG91bGQgbmV2ZXIg
YmUgY2FzZSBzZW5zaXRpdmUuCiAgICAgLy8gV2Ugc2hvdWxkIHZlcmlmeSB0aGlzIGFuZCB0aGVu
IHJlbW92ZSB0aGUgaXNIVE1MRWxlbWVudCBjaGVjayBoZXJlLgotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGVsZW1lbnQuaXNI
VE1MRWxlbWVudCgpID8gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRleHQv
Y3NzIikgOiB0eXBlID09IGNzc0NvbnRlbnRUeXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmNwcAppbmRleCA1MTkzMjBkNDY5OTFjMTRiMzcyNzgxYWNjZWFjNzQ5MDNjMDgy
YTE4Li5lOTY0ZWYzMDRlMGI3MDYyNTI0N2Q5ZmExZmY3NDhmOWNhMDFiNjUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGNsYXNzIE11
dGF0aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBNdXRhdGlvblJlY29y
ZCB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRMaXN0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hpbGRMaXN0KCJjaGlsZExpc3QiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsK
IH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJpYnV0ZXMi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRyaWJ1dGVz
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdHRyaWJ1
dGVzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY2hhcmFjdGVyRGF0YSgi
Y2hhcmFjdGVyRGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNoYXJhY3Rl
ckRhdGEoImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwK
aW5kZXggNzA0MWYxMjE3MWRlMDNlOTUwYTg4ODI3ZjdmZDExZjlkOGQ3MjVmYS4uYjUzODkyNjVi
YWE2ZDQ1OTAzYzE1OTdmNjU0ZThkNWVlZTQzZmVlZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMu
cGwKQEAgLTExNSw3ICsxMTUsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4K
IEVORAogCi0gICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gTGF6eU5ldmVyRGVzdHJveWVkPGNv
bnN0IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKKyAgICBwcmludE1hY3Jv
cygkRiwgImV4dGVybiBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRv
bVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKICAgICBwcmludCBGICIjZW5kaWZcblxuIjsK
IAogICAgIHByaW50SW5pdCgkRiwgMSk7CkBAIC0xMjksNyArMTI5LDcgQEAgRU5ECiAKICAgICBw
cmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7CiAKLSAg
ICBwcmludE1hY3JvcygkRiwgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJp
bmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAgcHJpbnRNYWNyb3MoJEYsICJNYWluVGhyZWFk
TGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0
ZXJzKTsKIAogICAgIHByaW50SW5pdCgkRiwgMCk7CiAKQEAgLTcyMiw3ICs3MjIsNyBAQCBFTkQK
ICAgICBteSAkbG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4ID0gbGMoJHBhcmFtZXRlcnN7bmFtZXNw
YWNlUHJlZml4fSk7CiAKICAgICBwcmludCBGICIvLyBOYW1lc3BhY2VcbiI7Ci0gICAgcHJpbnQg
RiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0
b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxuIjsK
KyAgICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRl
c3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4
fU5hbWVzcGFjZVVSSTtcblxuIjsKIAogICAgIGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAg
IHByaW50IEYgIi8vIFRhZ3NcbiI7CkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIHByaW50TmFtZXND
cHBGaWxlCiAgICAgCiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJh
bWV0ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCi0gICAgcHJpbnQgRiAiTGF6eU5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFj
ZVVSSTtcblxuIjsKKyAgICBwcmludCBGICJNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtc
blxuIjsKIAogICAgIHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVhbGxT
dHJpbmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNwcAppbmRleCAzYTBm
OTExOTliNmJiN2I4NDdjYzU4NTA2MTg4MzNkYjdlMDFlYTc1Li43MzViZTBmYTc1NzI4YWQ0ZGJm
MTJmNjI2ZWE4Y2NjOWM2Y2U3YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1
dG9jYXBpdGFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXpl
LmNwcApAQCAtNTcsMTkgKzU3LDE5IEBAIGNvbnN0IEF0b21TdHJpbmcmIHN0cmluZ0ZvckF1dG9j
YXBpdGFsaXplVHlwZShBdXRvY2FwaXRhbGl6ZVR5cGUgdHlwZSkKICAgICBjYXNlIEF1dG9jYXBp
dGFsaXplVHlwZURlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxsQXRvbSgpOwogICAgIGNhc2Ug
QXV0b2NhcGl0YWxpemVUeXBlTm9uZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVOb25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHZhbHVlTm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlTm9uZTsKICAgICB9CiAgICAgY2FzZSBB
dXRvY2FwaXRhbGl6ZVR5cGVTZW50ZW5jZXM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlU2VudGVuY2VzKCJzZW50ZW5jZXMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVTZW50ZW5jZXMoInNlbnRlbmNlcyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVl
U2VudGVuY2VzOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVdvcmRzOiB7Ci0g
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRz
KCJ3b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRz
KCJ3b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0
dXJuIHZhbHVlV29yZHM7CiAgICAgfQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlQWxsQ2hh
cmFjdGVyczogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gdmFsdWVBbGxDaGFyYWN0ZXJzKCJjaGFyYWN0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHZhbHVlQWxsQ2hhcmFjdGVycygiY2hhcmFjdGVycyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlQWxsQ2hhcmFj
dGVyczsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRv
ZmlsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcAppbmRleCBhMGE3ZDc3
YjVjOTI1ZjAwZDAxMTU4ODVlZDhlYjhjMDQxYTgxNGY0Li42NzM1ZTI2OWYyNWFlZjdiYzA5MTI3
NTUzOTIxNDgxY2RlM2U4ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9m
aWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcApAQCAtMTMyLDEx
ICsxMzIsMTEgQEAgQXV0b2ZpbGxGaWVsZE5hbWUgdG9BdXRvZmlsbEZpZWxkTmFtZShjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKIAogc3RhdGljIGlubGluZSBib29sIGlzQ29udGFjdFRva2VuKGNv
bnN0IEF0b21TdHJpbmcmIHRva2VuKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBob21lKCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3b3JrKCJ3b3JrIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBtb2JpbGUoIm1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmF4KCJmYXgiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGhvbWUoImhvbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3b3Jr
KCJ3b3JrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9iaWxlKCJtb2JpbGUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYXgoImZheCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0b2tlbiA9PSBob21lIHx8IHRva2VuID09IHdv
cmsgfHwgdG9rZW4gPT0gbW9iaWxlIHx8IHRva2VuID09IGZheCB8fCB0b2tlbiA9PSBwYWdlcjsK
IH0KQEAgLTE2MSw4ICsxNjEsOCBAQCBzdGF0aWMgdW5zaWduZWQgbWF4VG9rZW5zRm9yQXV0b2Zp
bGxGaWVsZENhdGVnb3J5KEF1dG9maWxsQ2F0ZWdvcnkgY2F0ZWdvcnkpCiAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwt
MwogQXV0b2ZpbGxEYXRhIEF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBv
ZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gTGFiZWw6IERlZmF1bHQKICAgICAvLyAyNi4gTGV0
IHRoZSBlbGVtZW50J3MgSURMLWV4cG9zZWQgYXV0b2ZpbGwgdmFsdWUgYmUgdGhlIGVtcHR5IHN0
cmluZywgYW5kIGl0cyBhdXRvZmlsbCBoaW50IHNldCBhbmQgYXV0b2ZpbGwgc2NvcGUgYmUgZW1w
dHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcApp
bmRleCBlYmI3ZDJhOGIwMDNmNDRlNDgxZWZiMDI2ODY2OTlmODM2ZTYwNWEzLi5hOTQ5OTU2ZTkz
MzIyZTA2YzRkM2Q0YjhkODEwN2Q2MWE0MWM4ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBCYXNl
Q2hlY2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
CiAKIFN0cmluZyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcAppbmRleCA3YjEwNjFmZTFhMWY0OTEzMmFkZjQzZDU5Y2I4NzVlZGJmN2ZlNjEw
Li41NDIxZmRiNGJmNmI4MWRlOWY1NGUxYjIxNjY1YTk3NWJkM2EzMzE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNl
dWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZh
bHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CiAgICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlw
ZS5jcHAKaW5kZXggOWUyZjA0YzQwMDA1NjU3OWQ1NGM0NTI0NjhjYTJkYzgxYWIxZTY3Mi4uZDRj
ODU4YTNmOTIwMTViNmQzOGU1NDBiYzZjNjU5ZTAzNjlmM2Q4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTE0Myw5ICsxNDMsOCBAQCB2b2lkIENvbG9ySW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBB
U1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoTmFtZSgiLXdlYmtpdC1jb2xv
ci1zd2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoV3JhcHBl
ck5hbWUoIi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dh
dGNoTmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaFdyYXBwZXJOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRj
aC13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIGF1dG8gd3JhcHBl
ckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGE4ZWRjOTlmMGI3ZDk1ZmRiNmUzYTI1MzU5YmI4
N2RjMjgxY2RlMDYuLjNlMmY5YmVhZjAwZDI1ODYwNDM2YjdiNjA4YmZlOWZiMjMxOTViYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtODksOSArODksOCBAQCBSZWY8
VXBsb2FkQnV0dG9uRWxlbWVudD4gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlw
bGUoRG9jdW1lbnQmIGRvY3VtZQogVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFn
LCBkb2N1bWVudCwgMCwgZmFsc2UpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRGaWxlVXBsb2FkQnV0dG9uTmFtZSgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0VHlwZShidXR0b25O
YW1lKTsKICAgICBzZXRQc2V1ZG8od2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCA3OWRiMzQxZTFjOTU2NWYxZDBm
OTEzZDJjN2M3ZDNjNDZiMjZjZjViLi5jN2E3MDlhMGEyNDEyNDQzZDQzZjE3ZjZmYTVmMzEyZDk5
YjBhM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAtMzIwLDcg
KzMyMCw3IEBAIEF0b21TdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250CiB7CiAgICAgYXV0byBmb3JtID0gbWFr
ZVJlZlB0cihvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKSk7CiAgICAgaWYgKCFmb3JtKSB7Ci0g
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25l
cigiTm8gb3duZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9ybUtl
eUZvck5vT3duZXIoIk5vIG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDAwOWY1NTQ3OGQzYTZlODYxOTg4
ZTZiYmYyNWNlNDBiMjEzOGNjYmMuLjZmYzliNDdmZGIxMmY2OGQ2Y2Y0YzE1YTY5MDMxM2U3NWI3
MjNiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0y
NTMsOSArMjUzLDkgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgLy8gRG8gbm90
aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAgICAgICAvLyBVcGRh
dGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBhdHRyaWJ1dGVzIHZh
bHVlcyBhcmUgc3VwcG9ydGVkLgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5vT3Bl
bmVyKCJub29wZW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBjb25zdCBib29sIHNo
b3VsZEZvbGRDYXNlID0gdHJ1ZTsKICAgICAgICAgU3BhY2VTcGxpdFN0cmluZyByZWxWYWx1ZSh2
YWx1ZSwgc2hvdWxkRm9sZENhc2UpOwogICAgICAgICBpZiAocmVsVmFsdWUuY29udGFpbnMobm9S
ZWZlcnJlcikpCkBAIC0zODEsNyArMzgxLDcgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNT
eXN0ZW1QcmV2aWV3TGluaygpIGNvbnN0CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnN5c3RlbVByZXZpZXdFbmFibGVkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1Q
cmV2aWV3UmVsVmFsdWUoImFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lz
dGVtUHJldmlld1JlbFZhbHVlKCJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgIGlmICghcmVsTGlzdCgpLmNvbnRhaW5zKHN5c3RlbVByZXZpZXdSZWxWYWx1ZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5jcHAKaW5kZXggNzFmZTFhMGI3ODU4Y2YwZjMwOTI2ZjkwZjc0ZmY3NzRmZjU3ZmUxOC4u
NDJhMjljYzU3ODhjMzlhM2M2NDYzZWM0YjAxMzY4MmRjN2FkYWY1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTc0LDE1ICs3NCwxNSBAQCBjb25zdCBB
dG9tU3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsK
ICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFNVQk1JVDogewotICAgICAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1Ym1pdCgic3VibWl0
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJtaXQoInN1Ym1p
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVy
biBzdWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b24oImJ1dHRvbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uKCJidXR0b24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4g
YnV0dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVTRVQ6IHsKLSAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJlc2V0KCJyZXNldCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiByZXNldDsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50
LmNwcAppbmRleCA2MGRkMWZiMjUyMDM4NjBkM2Q5MmE3YTVhY2IzMzFjMmFiMDRiNTkxLi4wN2Ni
MTY0YWVlMWFlMDgxNmJjZDE1NjQ0MzQzOGRlMGVmNTY5MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBEZXRh
aWxFdmVudFNlbmRlciYgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKQogCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgc3VtbWFyeVNsb3ROYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW1tYXJ5U2xvdCgic3Vt
bWFyeVNsb3QiKTsKICAgICByZXR1cm4gc3VtbWFyeVNsb3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKaW5kZXggN2E2YTZmZTNlOTE0ZTg1Yjk4OTNkMTY5NjQyNzNkNmIyYzVi
YTk2My4uNWI3ZjlhZjM4NjExNmRhZGI2ZjA1M2NiODQwZTg3NTc4NjU0YzQwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTUwNSw5ICs1MDUsOSBAQCBzdGF0aWMgUmVmPERv
Y3VtZW50RnJhZ21lbnQ+IHRleHRUb0ZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZQogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjbGltaXRlZC10by1v
bmx5LWtub3duLXZhbHVlcwogc3RhdGljIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiB0b1ZhbGlk
RGlyVmFsdWUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHJ0bFZh
bHVlKCJydGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBydGxWYWx1ZSgicnRsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYXV0b1ZhbHVlKCJhdXRvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImx0ciIpKQog
ICAgICAgICByZXR1cm4gbHRyVmFsdWU7CiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKHZhbHVlLCAicnRsIikpCkBAIC02NjIsMjIgKzY2MiwxOSBAQCBTdHJpbmcgSFRNTEVs
ZW1lbnQ6OmNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5n
JiB0cnVlTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJ1ZVZhbHVlKCJ0cnVlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cnVlVmFsdWUuZ2V0KCk7CiB9CiAK
IHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmYWxzZU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxzZVZhbHVlKCJmYWxzZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFs
c2VWYWx1ZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGZhbHNlVmFsdWUuZ2V0KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBw
bGFpbnRleHRPbmx5TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHBsYWludGV4dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWlu
dGV4dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBsYWludGV4dE9ubHlWYWx1ZS5nZXQoKTsKIH0KIApAQCAt
MTExNyw5ICsxMTE0LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6c2hvdWxkQXV0b2NvcnJlY3QoKSBj
b25zdAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRBdXRvY29ycmVjdChib29sIGF1dG9jb3JyZWN0
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUo
Im9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uTmFtZSgi
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdXRvY29ycmVjdEF0dHIsIGF1dG9jb3JyZWN0ID8gb25OYW1lLmdldCgp
IDogb2ZmTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwCmluZGV4IDUxYWIwMTg3OTgwNDg3YjNhZmQ0ZTUzNWU2YWZjNWNhZTBkMjdm
ZTIuLjYyMTg0MGM5NjgyMmZmMGE2YThjYzY4NTRiNjRhZmVkNWQ0NDZjOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMTU0LDcgKzE1NCw3IEBA
IGJvb2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAKIGNvbnN0
IEF0b21TdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0
KCJmaWVsZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0KCJm
aWVsZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
ZmllbGRzZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCA2MjBkMmM0MjFhMjEyNGJiOTJhMmE4NGE0ZmEwOGFjZTMxZWNlZDZmLi42NjVhY2U0N2U3OWUx
NDNhMWQwNjUzNTk4NzM3Y2U0MDdhMGEyMGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnNl
dEF1dG9jb21wbGV0ZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbVN0cmlu
ZyYgSFRNTEZvcm1FbGVtZW50OjphdXRvY29tcGxldGUoKSBjb25zdAogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9mZigi
b2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF1dG9jb21wbGV0ZUF0dHIpLCAib2ZmIikgPyBvZmYg
OiBvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGNh
MDA2MzljZWIzYjhkNDdjYTBiZGM4MDkyYjZmZDkzZDYzZWYyMjQuLjg1NGI2YmY3NGM4MzViYmIy
OGJlMjA1ZDgwYWIzMDA0MzgxZTNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcApAQCAtOTAzLDggKzkwMyw4IEBAIHNpemVfdCBIVE1MSW1hZ2VFbGVtZW50Ojpw
ZW5kaW5nRGVjb2RlUHJvbWlzZXNDb3VudEZvclRlc3RpbmcoKSBjb25zdAogCiBjb25zdCBBdG9t
U3RyaW5nJiBIVE1MSW1hZ2VFbGVtZW50Ojpsb2FkaW5nRm9yQmluZGluZ3MoKSBjb25zdAogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlYWdlcigiZWFnZXIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBlYWdlcigiZWFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsYXp5KCJs
YXp5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1dG8mIGF0dHJp
YnV0ZVZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Omxv
YWRpbmdBdHRyKTsKICAgICByZXR1cm4gaGFzTGF6eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUoYXR0
cmlidXRlVmFsdWUpID8gbGF6eSA6IGVhZ2VyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmNwcAppbmRleCA3ODBiNzkxOTNkOTg3NjMyYjU5MmM5YjI0ZDg1ODBiNGVj
NmE4ZTQwLi4xNjUxMGNmNzdjZWUzOTUwN2VlMDVkMGQ3MjQyMGVmNmFhOGI3ODdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBj
bGFzcyBLZXlnZW5TZWxlY3RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50
IHsKICAgICBLZXlnZW5TZWxlY3RFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAg
OiBIVE1MU2VsZWN0RWxlbWVudChzZWxlY3RUYWcsIGRvY3VtZW50LCAwKQogICAgIHsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWtl
eWdlbi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcHNldWRv
SWQoIi13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTEzMCw3ICsx
MzAsNyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0
YSYgZm9ybURhdGEsIGJvb2wpCiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGtleWdlbigia2V5Z2VuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuY3BwCmluZGV4IDlmZTllMTRiNTY1MTU5MDY5OWYwOWE5NTVjNmNiNjI0
MzJiZWQ2ZjAuLjkzYTZmNGNjZjUzZTRiMzBkM2QyOTk1ZTRlYWU0MzNmMzhlNzk0MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNjgsNyArNjgs
NyBAQCBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29u
c3QgQXRvbVN0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3Jv
dXAoIm9wdGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3JvdXAo
Im9wdGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBvcHRncm91cDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNw
cAppbmRleCA1NmI3MjA2YWUzYmU4ZjEwYTg4MTRhZTlhZmFjNjJiZmViNTYwOWFjLi4zNjA2NjVi
NzI4ODAxNjhiMWZkNTkwNTY1YmQyNzRjOGM5ZmJhZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPdXRwdXRFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE91dHB1dEVs
ZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRAogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gb3V0cHV0KCJvdXRwdXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBv
dXRwdXQoIm91dHB1dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gb3V0cHV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAppbmRleCA3ZjAzNTRmNWM4MzlmNDVjNWEyYTZjYzZkNTc1MWQ0ZGNkN2Ji
NDRiLi4xZGJkNDU0MWJmMzE2MDZlZTQ5OTZkMDAwMzI1MWFiZTAzYjVkMjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTQyMiw3ICs0
MjIsNyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpw
YXJ0T2ZTbmFwc2hvdE92ZXJsYXkoY29uc3QgRXZlbnRUYXJnZXQqIHRhcmdldCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2VsZWN0b3IoIi5zbmFwc2hv
dC1vdmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0b3IoIi5z
bmFwc2hvdC1vdmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IGF1dG8gc2hhZG93ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGlmICghc2hhZG93KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwCmluZGV4IGVlNDM3MzY2NzJiZWQyM2I0NzlmMWEzNGQyMjcwNDcxNzRmMWU5ZWIuLjMx
MzNkMDMxMDE3MjQ0YTNjYmI2YWJlM2FmYzMzYjZlNDg4ZGQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xMDAsOCArMTAwLDggQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkK
IAogY29uc3QgQXRvbVN0cmluZyYgSFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNl
bGVjdE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNl
bGVjdE9uZSgic2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNl
bGVjdE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzZWxlY3RPbmUoInNlbGVjdC1vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1fbXVsdGlwbGUgPyBzZWxlY3RNdWx0aXBsZSA6IHNlbGVj
dE9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNw
cAppbmRleCBhNjAwMzhmZTk0ZjI5OGIwOGVhNGFiNmVkYWNkN2QxNTU3YWE4NzU1Li5jMDZhM2U1
MzMzODNhMWQ1MjFjM2I2OWFmMmM1ZmJiMmYzZGQ0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTY5LDEwICsxNjksMTAgQEAgdm9pZCBI
VE1MVGFibGVDZWxsRWxlbWVudDo6c2V0Um93U3BhbkZvckJpbmRpbmdzKHVuc2lnbmVkIG4pCiBj
b25zdCBBdG9tU3RyaW5nJiBIVE1MVGFibGVDZWxsRWxlbWVudDo6c2NvcGUoKSBjb25zdAogewog
ICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RhYmxlcy5odG1s
I2F0dHItdGgtc2NvcGUKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcm93KCJyb3ciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbCgiY29sIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGNvbGdyb3VwKCJjb2xncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJv
dygicm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sKCJjb2wiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzY29wZUF0dHIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBlMTk1
MDRiZDliODcwYjY2ODMzZGNhYjJmYzU1MmY2MTQ2ZjMxMDRiLi5hODk4ODNmYWQzMGQ5NzlmZWU2
YThhZDMzNDJjOGQyYmI1MzQ5NDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIAogY29uc3Qg
QXRvbVN0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEo
InRleHRhcmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEoInRl
eHRhcmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0
ZXh0YXJlYTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCAzODhlY2I4YjAxYTBmYzc3MTc2MTI3MDk0Nzg5NzU2NGE2
NGM5ZWE2Li4zZGM0NjNiYjdkYzI2ZTNmMGI3ZTZkZTI4MzllZGYzZWE0ZjFmYzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtMzk3LDkgKzM5Nyw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0
ZVNlbGVjdGlvbkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBkaXJlY3Rp
b25TdHJpbmcoVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9uZSgibm9uZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYmFja3dhcmQoImJhY2t3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcndhcmQoImZv
cndhcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dh
cmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGRp
cmVjdGlvbikgewogICAgIGNhc2UgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb246CkBAIC01MzUsOSAr
NTM1LDggQEAgYm9vbCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aXNJbm5lclRleHRFbGVt
ZW50RWRpdGFibGUoKSBjb25zdAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCkKIHsKICAgICBpZiAoYXV0byBpbm5lclRl
eHQgPSBpbm5lclRleHRFbGVtZW50KCkpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHBsYWluVGV4dE9ubHlOYW1lKCJwbGFpbnRleHQtb25seSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIGNvbnN0IGF1dG8mIHZhbHVlID0gaXNJbm5lclRleHRFbGVt
ZW50RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdldCgpIDogZmFsc2VOYW1lLmdldCgp
OwogICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
Y29udGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRNb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRNb2Rl
LmNwcAppbmRleCBhMjBlYWNjZmY5YzZkMDU3NjliOThkNjhjNzNmNWFmYzFiOWJlNmJlLi4zNDlk
ODViNTYyZTdiYjljNWFkZmVkNTI3MTFmNTMwNWM0N2RlNDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0TW9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dE1vZGUuY3BwCkBAIC04Miw0OSArODIsNDkgQEAgbmFtZXNwYWNlIElucHV0TW9kZU5hbWVzIHsK
IAogY29uc3QgQXRvbVN0cmluZyYgbm9uZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IG1vZGUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtb2RlKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgdXJsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgi
dXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBlbWFpbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG1vZGUoImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9k
ZSgiZW1haWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWVyaWMoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGVj
aW1hbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImRl
Y2ltYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIG1vZGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlTmFtZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAK
aW5kZXggYThhNmU3OWRjYzY4YjI5NmJmZDg3MTk3Y2NmNGI0NmU5YTdmOWVlNC4uM2UyNmQ3MGI2
ZjBlYzdlZWYxZDQ5OWExOWQ0YTBiZmE5ZDIyOWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGVOYW1lcy5jcHAKQEAgLTMzLDEzOSArMzMsMTM5IEBAIG5hbWVzcGFjZSBJbnB1dFR5cGVO
YW1lcyB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgY2hlY2tib3go
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2Jv
eCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG5hbWUoImNvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgiY29sb3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGUoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWUo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGlt
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBkYXRldGltZWxvY2FsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgZW1haWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1l
KCJlbWFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gbmFtZSgiZmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG5hbWUoImZpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgaW1h
Z2UoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJpbWFn
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBtb250aCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoIm1vbnRoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgibW9udGgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWJlcigpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcGFzc3dv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJwYXNz
d29yZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiByYWRpbygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IG5hbWUoInJhZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbmFtZSgicmFkaW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcmVz
ZXQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJyZXNl
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBuYW1lKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBu
YW1lKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVs
ZXBob25lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgi
dGVsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbmFtZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUo
InRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbmFtZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWVr
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgid2VlayIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAppbmRleCBlNDgyYjM2MmIxOGE3YTU0OTQ1Mzc2
NDY0NGNjZmU3Y2JmNTE1MmIzLi4zMjExNTBjYTdlZjk0MjFkNzRkY2Q1MmQ4ZDZjMjcyOGMwMWI1
N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkg
KzI4OSwxOSBAQCB2b2lkIE1lZGlhQ29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBz
dGF0aWMgY29uc3QgQXRvbVN0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGlj
IGNvbnN0IEF0b21TdHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25z
dCBBdG9tU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwCmluZGV4IGRiNjM2ZTI2OWEwYzViOTc5ZjM0NTJmYmJiOWFjMDVlNmYxMjMxYjcuLmRm
NWViMzUwYzQxNzAwMTI2ODI4NzY5Yjc4NTU3YjYwM2U2ZmY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yNTUsOCArMjU1LDcgQEAgdm9pZCBSYW5nZUlucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNr
TmFtZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNsaWRlclJ1
bm5hYmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xpZGVyUnVubmFibGVU
cmFja05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IDc3
MWNmNDcxMjMyYjg1ZWMzMGIyMjY1NTRhMzI5ZDgwYjI1YTAzNjEuLjE4N2YzZjY0ZmY5NTYzMDAz
MTJmZWJhMGY3YzEzMGFiY2Y3OWViNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAKQEAgLTY0LDEwICs2NCw5IEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjphZGRTZWFy
Y2hSZXN1bHQoKQogCiBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQmIHJlc3VsdEJ1dHRvbiwgaW50IG1heFJlc3Vs
dHMpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dFNlYXJjaERlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUoIi13ZWJr
aXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0U2VhcmNoUmVzdWx0c0J1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRTZWFyY2hEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtZGVjb3Jh
dGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3Vs
dHNEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0J1dHRvbk5h
bWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIGlmICghbWF4UmVzdWx0cykKICAgICAgICAgcmVzdWx0QnV0dG9u
LnNldFBzZXVkbyh3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUpOwogICAgIGVsc2Ug
aWYgKG1heFJlc3VsdHMgPCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCmluZGV4IDJmNTllNDUzOTIyOTY0M2QxYzgwM2JjNmNlMDI0ZWM2ZTQ1MGUwMzguLjJk
ZTQzZGFkNWE5ZmI2ZDhjNTkxZDdmZmZkNDRlMWM0NDI2Nzg2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTM0OCw4ICszNDgsNyBAQCB2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgfQogCiAgICAgaWYg
KHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRpY2F0b3JOYW1lKCItd2Vi
a2l0LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRp
Y2F0b3JOYW1lKCItd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3IgPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+
c2V0UHNldWRvKHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSk7CiAKQEAgLTQ1Nyw4ICs0NTYs
NyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlRGF0YUxpc3REcm9wZG93bkluZGlj
YXRvcigpCiAgICAgaWYgKCFtX2NvbnRhaW5lcikKICAgICAgICAgY3JlYXRlQ29udGFpbmVyKCk7
CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TGlz
dEJ1dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdExpc3RCdXR0b25O
YW1lKCItd2Via2l0LWxpc3QtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxvd2VkU2NvcGUgYWxsb3dl
ZFNjb3BlKCptX2NvbnRhaW5lcik7CiAgICAgbV9kYXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yID0g
RGF0YUxpc3RCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpLCAqdGhp
cyk7CiAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2RhdGFMaXN0RHJvcGRvd25JbmRp
Y2F0b3IpOwpAQCAtNzgyLDggKzc4MCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVh
dGVDb250YWluZXIoKQogICAgIEFTU0VSVCghbV9jb250YWluZXIpOwogICAgIEFTU0VSVChlbGVt
ZW50KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdl
YmtpdFRleHRmaWVsZERlY29yYXRpb25Db250YWluZXJOYW1lKCItd2Via2l0LXRleHRmaWVsZC1k
ZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3JhdGlvbkNvbnRh
aW5lck5hbWUoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3Bl
OjpFdmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoKmVsZW1lbnQoKS0+dXNlckFnZW50U2hh
ZG93Um9vdCgpKTsKIApAQCAtODAzLDggKzgwMCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
OjpjcmVhdGVBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUgYXV0b0ZpbGxCdXR0b25U
CiAgICAgaWYgKGF1dG9GaWxsQnV0dG9uVHlwZSA9PSBBdXRvRmlsbEJ1dHRvblR5cGU6Ok5vbmUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsK
ICAgICBtX2F1dG9GaWxsQnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0UHNl
dWRvKGF1dG9GaWxsQnV0dG9uVHlwZVRvQXV0b0ZpbGxCdXR0b25Qc2V1ZG9DbGFzc05hbWUoYXV0
b0ZpbGxCdXR0b25UeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
YXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwCmluZGV4IGM4Y2M2YjQ5ZTQ2ZTBjZjkwYmFiMzI2NWQxOWJkYzAyMDhjNzRjZTAuLjk5Yzlh
Njg0NzY0ZTc2MDBiODkzMDAzODViNjQyOGE5OTk5MTU4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODEsMTUgKzE4MSwxNCBAQCB2b2lkIFZhbGlk
YXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogCiAgICAgU2hhZG93Um9vdCYgc2hhZG93
Um9vdCA9IG1fZWxlbWVudC0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJi
bGVOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRW
YWxpZGF0aW9uQnViYmxlQXJyb3dOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTWVzc2FnZU5h
bWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCItd2Via2l0LXZhbGlkYXRpb24t
YnViYmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJi
bGVUZXh0QmxvY2tOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVIZWFkaW5nTmFtZSgi
LXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1oZWFkaW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtYm9keSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFsaWRh
dGlvbi1idWJibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxp
ZGF0aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1h
cnJvdy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFs
aWRhdGlvbkJ1YmJsZUFycm93TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVN
ZXNzYWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCIt
d2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlVGV4dEJsb2NrTmFtZSgiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUhlYWRpbmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24t
YnViYmxlLWhlYWRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRW
YWxpZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAgICBtX2J1YmJsZSA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDJmMTY2ZjcyMjI1NjFkODljMzllOTBm
ODJjYjc3MjE0MTA4YTBjZmQuLjEyZDUwZmNmYTRjZWRhN2UyMjMwN2ZjNmU5ZjM2MDdmYjBhYmRk
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJD
b250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKQEAgLTQ5LDggKzQ5LDcgQEAgUmVmPERldGFpbHNNYXJrZXJDb250cm9sPiBE
ZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIERldGFpbHNN
YXJrZXJDb250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdERldGFpbHNNYXJr
ZXJOYW1lKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2Vy
TmFtZSgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0RGV0YWlsc01hcmtlck5hbWUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDRmNTFiNTJlNmM0Njdi
NDAzOGI0N2NhMDU1OTc0ZTRkYTdhNWEwYTEuLjFkM2U5MmQzZWI0ZGVjMjMwZWVhODBlOGUzYTc5
YzdkZjAxNzczZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBA
IC03Nyw4ICs3Nyw3IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiAgICAgOiBIVE1MRGl2RWxl
bWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIo
JmVsZW1lbnQpKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUoIi13ZWJraXQtbWVkaWEtdGV4dC10
cmFjay1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWlu
ZXJOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5jcHAKaW5kZXggNmJjMTE3MGZkNGZiOTg5Yjg0OWFkZTRlN2NjMzZj
MmFhYjg1MzY4NS4uZjU3NGYwNzQ3ZDE5YWIwOGIxMGE0NWYzMTllNzg0M2FhMjRiMjZhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuY3BwCkBAIC05MSw4ICs5MSw3IEBAIHZvaWQgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OnNldFdp
ZHRoUGVyY2VudGFnZShkb3VibGUgd2lkdGgpCiAKIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVudD4g
UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzSW5u
ZXJFbGVtZW50TmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJr
aXRQcm9ncmVzc0lubmVyRWxlbWVudE5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVu
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NJ
bm5lckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NJbm5lckVsZW1lbnQo
ZG9jdW1lbnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0lubmVyRWxl
bWVudE5hbWUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDAsOCArOTksNyBAQCBSZWY8UHJv
Z3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogCiBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVz
cy1iYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1iYXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzQmFy
RWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9jdW1l
bnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0Jhck5hbWUpOwogICAg
IHJldHVybiByZXN1bHQ7CkBAIC0xMDksOCArMTA3LDcgQEAgUmVmPFByb2dyZXNzQmFyRWxlbWVu
dD4gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZWY8
UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzVmFsdWVFbGVt
ZW50PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50
KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUpOwogICAg
IHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcAppbmRleCAzNTMzZThiYTgwNzc0ZGMyZDY2YzE1YTQ4MTIxYzYzNzhk
ZGFlNmE5Li42OGE0OTBlMWZiMTQ0ZTczMWQzZDA3NDhjODc5MGM5NzNjZTE4M2IwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAg
LTU4Nyw4ICs1ODcsOCBAQCBPcHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJUaHVt
YkVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25zdCBSZW5kZQogewogICAgIC8vIFRoaXMg
ZG9lc24ndCBhY3R1YWxseSBjb21wdXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBp
Y2sgc2hhZG93IHBzZXVkbyBpZCB3aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1
ZG9JZCgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlh
U2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lk
KCItd2Via2l0LXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1
bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoIWhvc3RT
dHlsZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY0MSw4ICs2NDEsOCBAQCBP
cHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNv
bHZlQ3VzdG9tU3R5bGUoY29uc3QgUgogewogICAgIC8vIFRoaXMgZG9lc24ndCBhY3R1YWxseSBj
b21wdXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBpY2sgc2hhZG93IHBzZXVkbyBp
ZCB3aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xp
ZGVyLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCIt
d2Via2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtZWRpYVNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Via2l0
LXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAK
ICAgICBpZiAoIWhvc3RTdHlsZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRleCA5
ZTMyOGY2YzZiMWFjYTdmY2QxMGVmZTViYzRmZTIyNGRjZmFkNDIzLi45ODQ2ZDAzZDk2NmIzZjkz
MjA2YjkxNDQyZmQyMjNiMDIwY2NhM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw4ICs1NSw3IEBAIGlubGluZSBTcGlu
QnV0dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGlu
QnV0dG9uT3duZXImCiAgICAgLCBtX3ByZXNzU3RhcnRpbmdTdGF0ZShJbmRldGVybWluYXRlKQog
ICAgICwgbV9yZXBlYXRpbmdUaW1lcigqdGhpcywgJlNwaW5CdXR0b25FbGVtZW50OjpyZXBlYXRp
bmdUaW1lckZpcmVkKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0
dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEhhc0N1c3Rv
bVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogICAgIHNldFBzZXVkbyh3ZWJraXRJbm5lclNwaW5C
dXR0b25OYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDc5MzRkZGM1ZTI2Y2ViZWUwOTZhNjg4
YTA2YzUyZjY1MjMwYzJkYzcuLmI2ZDY5YzFjNDhkNDI0OWVlNDYwY2NlNWNmOTc1ZWUyNTc0ZGE0
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMTgyLDggKzE4Miw3IEBAIE9wdGlvbmFsPFN0eWxlOjpF
bGVtZW50U3R5bGU+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0
eWxlKGNvCiBpbmxpbmUgVGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OlRleHRDb250cm9s
UGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVt
ZW50KGRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHBsYWNlaG9sZGVyTmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWNlaG9s
ZGVyTmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgc2V0UHNldWRvKHBsYWNlaG9sZGVyTmFtZSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVS
ZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CkBAIC0yNTYsOSArMjU1LDggQEAgYm9vbCBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiBp
bmxpbmUgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2
VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0U2VhcmNoQ2FuY2VsQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtY2FuY2Vs
LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRTZWFyY2hDYW5jZWxCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0
dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc2V0SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMjJmNjIwOTZk
Y2IwZmNlOGE2M2QwZjhjNDhkNDU5YWQwMzFkMWE1ZC4uOTc1YTY1YjBjYzQ3MzlhYzg2ZDc3MmU3
MTk2ZWEwYmU5NjNkMjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKQEAgLTQxLDggKzQxLDcgQEAgUmVm
PFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jKQogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6WW91VHViZUVt
YmVkU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVu
dChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgiLXdlYmtp
dC1wbHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgi
LXdlYmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IDk2NDMxNmEyMmUyYWYzYTQyOTdl
OThlNzMxMzQ2MjU3NjVhYzlkZjYuLjZkODAxYTYxNWYxMTZiNGQ1OTYyN2UyODlhYTYzZWQxNmY2
Y2VhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtOTQsOCArOTQsNyBA
QCBSZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50TWFjOjp0cnlDcmVhdGUoRAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Via2l0LWltYWdl
LWNvbnRyb2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4
LXdlYmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAKICAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNv
bnRyb2xzQnV0dG9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IDJmOWRm
NDljMjJlYmVhMGI4ZTQ1OTJhZjFhNTY0N2I2NzY1MWYyOWIuLjNhYTQ1NDljMTNjODc1MTc1NTBi
M2Y3MWYzODQ5NzgyYjZkMGI4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC04
Niw4ICs4Niw3IEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJv
bHNSb290RWxlbWVudDo6dHJ5Q3JlYXRlKERvY3VtZW50JiBkCiAgICAgaWYgKCFkb2N1bWVudC5w
YWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQt
aW1hZ2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQt
aW1hZ2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBSZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpu
ZXcgSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgY29udHJvbHMt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIs
IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmNwcAppbmRleCAwMjA5ZjllYzFjMDJjOTc0ZmQ0ZTYwYjFmZDQwMDM3ODYzODM2MGMz
Li4yM2E5MWQwMDBhY2JiZTEwMjVjMDU0YmYyYzViMmJjZTYxMTA4YzIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTQxLDM3ICs0MSwzNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmFsdGVybmF0aXZl
S2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFsdGVy
bmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFs
dGVybmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlv
VHJhY2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKIGNvbnN0
IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWFpbigibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG1haW47CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6
Om1haW5EZXNjS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG1haW5EZXNjKCJtYWluLWRlc2MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtYWluRGVzYygibWFpbi1kZXNjIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBtYWluRGVzYzsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9UcmFj
azo6dHJhbnNsYXRpb25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFuc2xhdGlvbjsKIH0KIAogY29uc3QgQXRv
bVN0cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IGM2NWExMTg3OWU2
NTEzMjM5NTEzMTQzNzI4MDdiY2NkNmUxZmNjNjQuLmQ0ZTBmNjkxMzFhMWJiMGFjMzRhM2E2MGFm
NTAyNTcyMTg0NDE3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAK
QEAgLTUyLDM3ICs1MiwzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNr
KTsKIAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJz
dWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1
YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
c3VidGl0bGVzOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY2FwdGlvbnNLZXl3b3Jk
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlv
bnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMo
ImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBjYXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRlc2NyaXB0aW9uc0tl
eXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZXNjcmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIHN0YXRpYyBjb25zdCBB
dG9tU3RyaW5nJiBjaGFwdGVyc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgbWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAgICAKIHN0YXRpYyBj
b25zdCBBdG9tU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggNjU1MTA4YTU5N2M5NTNmYzA4NzllZjA4YTgz
MmMxMjQ0YjhkZmRhMS4uN2RjOGFhM2Y2YTQ4NmQ0MWNmYjcwOTdlMGU0M2I2YWM4ZjU1OWQ4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNjQsMTkg
KzY0LDE5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVCb3gpOwog
CiBjb25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlOwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNl
dWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ry
b3BTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ry
b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNrZHJvcFNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNrZHJvcCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlQmFja2Ryb3BTaGFk
b3dQc2V1ZG9JZDsKIH0KIApAQCAtNDg4LDggKzQ4OCw3IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpy
ZWJ1aWxkRGlzcGxheVRyZWUoKQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxv
d2VkU2NvcGUgYWxsb3dlZFNjb3BlRm9yUmVmZXJlbmNlVHJlZSgqbV9jdWVOb2RlKTsKIAogICAg
IGlmICghbV9kaXNwbGF5VHJlZSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdlbmVyaWMt
Y3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0
LWdlbmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgICAgIG1fZGlzcGxheVRyZWUgPSBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShvd25lckRvY3Vt
ZW50KCksICp0aGlzKTsKICAgICAgICAgbV9kaXNwbGF5VHJlZS0+c2V0UHNldWRvKHdlYmtpdEdl
bmVyaWNDdWVSb290TmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCmluZGV4IDNhNmU0NzIxZTc3MmQ4ZmQxZGI1OWVkODMzZmU3YjJkNTQxNjgzNmYuLmNk
OGM4N2IwMjdlN2E0NzUzOGMyYWUyYmE4ZmJmY2U0M2JjMzI4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUgdmFsdWUpCiAKIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiB1cEtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtleXdvcmQoInVwIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gdXBLZXl3b3JkOwogfQogCkBAIC0yNjIsMjEgKzI2MiwyMSBA
QCB2b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5n
LCBWVFRTY2FubmVyJiBpbnB1dCkKIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0
VHJhY2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5n
Q2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNr
UmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRh
aW5lclNjcm9sbGluZ0NsYXNzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRl
eHRUcmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9J
ZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkKCIt
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5l
clBzZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja1Jl
Z2lvblNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0
LXRyYWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVn
aW9uU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25T
aGFkb3dQc2V1ZG9JZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
CmluZGV4IGI1ZGYxODNhYmQyZmY4Y2UxYjhmMzllYmZkMWQyMGY1NjBjMDU5YTMuLjM4ZWQ1MWM3
NmUxZjUzYzA4YmU3MjBhZThkNzY2NGI0ODAxNDQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtNDYsMzcgKzQ2LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRp
dmUoImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJu
YXRpdmUoImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFj
azo6Y2FwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlk
ZW9UcmFjazo6bWFpbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNhcHRpb25zKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFj
azo6c2lnbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzaWduKCJzaWduIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2ln
bigic2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
c2lnbjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6c3VidGl0bGVzS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRp
dGxlcygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0
bGVzKCJzdWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6Y29t
bWVudGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCBl
NGE5NGE1MDU5NjFhYTM3OTdmYTZkMDRlYTY1YzY0NTY1YWQ5NmRkLi43NTA4ZDc1YWNmYTE5ZTEx
ZGZhMjU2YjY2NzM0NGE2MzNkYTIzYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtODIsNyArODIsNyBAQCBj
b25zdCBBdG9tU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBj
b25zdAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG1faW5pdGlhdG9yTmFtZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBkZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGRlZmF1bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggODliNmI2ZDdlMWY0YzFhOTFlZTZlMjUyMTU1MDA3ZGZlMDlhMDA5OC4uYTcwMjNh
NmQzNzUwYjYxNjA3Nzc5ZGJkZjNiYTFkMDA3NDVhZTdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMzQwNiwxMCArMzQwNiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6
aW50ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlF
dmVudAogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3Qg
QXRvbVN0cmluZyYga2V5SWRlbnRpZmllcikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBMZWZ0KCJMZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBEb3duKCJEb3duIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gTGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IFJpZ2h0
KCJSaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEZvY3Vz
RGlyZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
Y3BwCmluZGV4IDIyOTZhOGY5ZGQ1OWYyYWU5ODQ1ZDZlMjI3YTM3ODUzZDFmYzU5NWUuLmUyYTRj
MDgwYWQ0MmI2MTFjZWM5MzczZTYyMzMxZTU4MGQwYzg0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5j
cHAKQEAgLTY4NCw3ICs2ODQsNyBAQCBib29sIFF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0Zvcndh
cmRDYWNoZSgpIGNvbnN0CiAgICAgLy8gYmVjYXVzZSBpdCBwdXRzIGFuIG92ZXJsYXkgKHdpdGgg
Y2xhc3MgImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIpIG92ZXIgdGhlIHBhZ2Ugd2hl
biBuYXZpZ2F0aW5nIGF3YXkgYW5kIGZhaWxzCiAgICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gY29t
aW5nIGJhY2sgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIChlLmcuIGluICdwYWdlc2hvdycg
ZXZlbnQgaGFuZGxlcikuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTc2NzAwNjQ+LgogICAgIC8vIE5v
dGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGZvciBkb2NzLmdvb2dsZS5jb20gaG9zdCBiZWNh
dXNlIG9mIGhvc3RlZCBHIFN1aXRlIGFwcHMuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVl
bi1mcmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2ds
ZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvKiBmaXJzdENoaWxkSW5C
b2R5ID0gbV9kb2N1bWVudC0+Ym9keSgpID8gbV9kb2N1bWVudC0+Ym9keSgpLT5maXJzdENoaWxk
KCkgOiBudWxscHRyOwogICAgIGlmIChpczxIVE1MRGl2RWxlbWVudD4oZmlyc3RDaGlsZEluQm9k
eSkpIHsKICAgICAgICAgYXV0byYgZGl2ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCpmaXJz
dENoaWxkSW5Cb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IGVlMGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5
ZWNlOWFkNjczN2QuLjkzYzQ5YmNmNmQ5MWY0ZGNkZjU0NjcxNGE1NDM2ODNlMTJkNDc5NzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRh
dGVLZXlmcmFtZUFuaW1hdGlvbnMoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyCiAgICAg
Ly8gVG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICBtX2tleWZyYW1lQW5pbWF0aW9u
T3JkZXJNYXAuY2xlYXIoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9u
ZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAKICAgICAv
LyBOb3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMgYWN0aXZlIGFuZCBhZGQg
YW55IG5ldyBhbmltYXRpb25zLgogICAgIGlmICh0YXJnZXRTdHlsZS5hbmltYXRpb25zKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggYjE0OTUxODQ0NzNkY2FlMWFm
YzVjYTk3ZDQ0NGFiYzY1OTE3YjhjOC4uMDg0ZjQzMjk1ZDgxNWUzMDAzMzI1ZDk4M2I3NzAzOTNk
OTY5YTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTQwMyw3ICs0
MDMsNyBAQCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50OjpvYnNlcnZlZEV2ZW50TmFtZXMoKQogCiBjb25zdCBBdG9tU3RyaW5nJiAgUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmV2ZW50TmFtZUFsbCgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZXZlbnROYW1lQWxsKCJhbGxFdmVudHMi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGV2ZW50TmFt
ZUFsbDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCBlOGUzOWM5
MjYzZDdhNTg3M2JhOWMxNzRiNThlNDFmZjgzZDc3ZDQwLi4zYWQ2OWI3ZTc0M2NlYTE4MWQ0Y2Zm
YzU4YmYyZDJiZTc4NjY0NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpA
QCAtMTg0LDcgKzE4NCw3IEBAIGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21T
dHJpbmcmIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0g
ImFsbEV2ZW50cyI7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7CiAgICAgcmV0dXJuIHNFdmVu
dE5hbWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuY3BwCmluZGV4IDdmY2FhNDRkNTRhMzg3NDJmN2RkNTg3NDAwNmFhNDM3NmUyNTg0OGMu
LmFiYTFhODQyNjgwMjVjMTJmNzVkNjczNzNiOTMzMjZjZWM2YjNmMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMTQ5LDEyICsxNDks
MTIgQEAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGFDYWNoZSYgZm9udFBsYXRmb3JtRGF0YUNhY2hl
KCkKIAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNv
bnN0IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllcigiQ291
cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXciLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lcygi
VGltZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoIkNvdXJpZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyTmV3KCJDb3VyaWVyIE5ldyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgcGxhdGZvcm1T
cGVjaWZpY0FsdGVybmF0ZSA9IHBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShmYW1pbHlOYW1l
KTsKICAgICBpZiAoIXBsYXRmb3JtU3BlY2lmaWNBbHRlcm5hdGUuaXNOdWxsKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYzgy
OGJiZTdlNzc1NWVlNzExMjE3MjNlOWYxNzAyN2VkMWZhZTI0Ni4uNWMyYWFmOGFjY2IzMTYwMDA4
ZGNiZmFkMDlmNGY1ZmE4ZmE3OTE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMjk3LDEzICsyOTcsMTMgQEAgc3RhdGljIHZv
aWQgYWRkTWVkaWFFbmdpbmUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyRmFjdG9yeT4mJiBm
YWN0b3J5KQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVh
bSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxp
Y2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gYXBwbGljYXRpb25PY3RldFN0cmVhbTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJp
bmcmIHRleHRQbGFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1p
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NE
TUZhaXJQbGF5U3RyZWFtaW5nLmNwcAppbmRleCAyZDZlOWFhNjNjNGUxOTlkZDk5MmUxNzQ0MmU1
ZGFlMGU2MzQxOGJlLi44YWM0OGVjNWRjNjliMzE0OTU3YmE0MzNmOTcxMDFlYTI3NzY5NjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Q0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKQEAgLTc1LDEzICs3
NSwxMyBAQCBjb25zdCBWZWN0b3I8Rm91ckNDPiYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5n
Ojp2YWxpZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcwogCiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Q
cml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJzaW5m
IikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CiAgICAgcmV0dXJu
IHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWlu
Zzo6c2tkTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNr
ZCB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJza2QiKSB9OworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoInNrZCIpIH07CiAgICAgcmV0dXJuIHNrZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggOTlhOTNjMjU5OGQ0NzZjMTQyNjliNDRmOTFiMTMwN2Q0YzU3Yjk4ZC4uM2I4
MDQyODllMTNjZWQ4YzEyN2QyYzAwOTRlMWYwNDkzZmE3YzcyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCkBAIC0zMDE4LDEyICszMDE4LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpCiAj
aWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWV0YWRh
dGFUeXBlKE5TU3RyaW5nICphdk1ldGFkYXRhS2V5U3BhY2UpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVzZXJEYXRhKCJjb20uYXBwbGUu
cXVpY2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcu
bXA0cmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZU1ldGFkYXRhKCJjb20uYXBw
bGUucXVpY2t0aW1lLm1kdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRh
KCJjb20uYXBwbGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZDNNZXRhZGF0YSgi
b3JnLmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGxzRGF0ZVJhbmdlTWV0YWRhdGEoImNv
bS5hcHBsZS5xdWlja3RpbWUuSExTIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cXVpY2tUaW1lVXNlckRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUudWR0YSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcubXA0cmEiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNr
dGltZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaVR1bmVzTWV0YWRh
dGEoImNvbS5hcHBsZS5pdHVuZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBp
ZDNNZXRhZGF0YSgib3JnLmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhs
c0RhdGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChbYXZNZXRhZGF0YUtleVNwYWNlIGlz
RXF1YWxUb1N0cmluZzpBVk1ldGFkYXRhS2V5U3BhY2VRdWlja1RpbWVVc2VyRGF0YV0pCiAgICAg
ICAgIHJldHVybiBxdWlja1RpbWVVc2VyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRl
eCBmNjI4YWMyYjZjZTc0ZmZjNTIwNmIxYTJkOWNmZjU3OTIxOTA5N2Q1Li4zMzJkMmVmYzA2ZmU5
YTQwYWExZWM2ZjJlNDc1ZDhlMzI3NzJkMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBA
IC03MDUsMTMgKzcwNSwxMyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1pbGFyRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgLy8gU3Vic3RpdHV0ZSB0aGUgZGVmYXVsdCBtb25vc3BhY2UgZm9u
dCBmb3Igd2VsbC1rbm93biBtb25vc3BhY2UgZm9udHMuCiAgICAgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgIm1vbmFjbyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKGZhbWlseSwgIm1lbmxvIikpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGNvdXJpZXIoImNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gY291cmllcigiY291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGNv
dXJpZXIpOwogICAgIH0KIAogICAgIC8vIFN1YnN0aXR1dGUgVmVyZGFuYSBmb3IgTHVjaWRhIEdy
YW5kZS4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibHVj
aWRhIGdyYW5kZSIpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiB2ZXJkYW5hKCJ2ZXJkYW5hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHZlcmRhbmEoInZlcmRhbmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2NyaXB0aW9uLCB2ZXJkYW5hKTsKICAgICB9
CiAjZW5kaWYKQEAgLTcyMCw4ICs3MjAsOCBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1p
bGFyRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhc2h0byhNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiUGFzaHRvIikpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHVyZHUo
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVyZHUiKSk7CiAgICAgc3RhdGljIFN0cmluZyogbWF0
Y2hXb3Jkc1szXSA9IHsgJmFyYWJpYy5nZXQoKSwgJnBhc2h0by5nZXQoKSwgJnVyZHUuZ2V0KCkg
fTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZ2VlemFQbGFpbigiR2Vl
emFQcm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGZvciAoU3RyaW5nKiBtYXRjaFdv
cmQgOiBtYXRjaFdvcmRzKSB7CiAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnNJZ25vcmluZ0FT
Q0lJQ2FzZSgqbWF0Y2hXb3JkKSkKICAgICAgICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRl
c2NyaXB0aW9uLCBpc0ZvbnRXZWlnaHRCb2xkKGRlc2NyaXB0aW9uLndlaWdodCgpKSA/IGdlZXph
Qm9sZCA6IGdlZXphUGxhaW4pOwpAQCAtMTUwNywxMCArMTUwNywxMCBAQCBjb25zdCBBdG9tU3Ry
aW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3Ry
aW5nJiBmYW1pbAogICAgIHN0YXRpYyBjb25zdCBVQ2hhciB3ZWlydWFuWWFIZWlTdHJpbmdbXSA9
IHsgMHg1ZmFlLCAweDhmNmYsIDB4OTZjNSwgMHg5ZWQxIH07CiAgICAgc3RhdGljIGNvbnN0IFVD
aGFyIHdlaXJ1YW5aaGVuZ0hlaXRpU3RyaW5nW10gPSB7IDB4NWZhZSwgMHg4ZWRmLCAweDZiNjMs
IDB4OWVkMSwgMHg5YWQ0IH07CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gc29uZ3RpU0MoIlNvbmd0aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc29uZ3RpVEMoIlNvbmd0
aSBUQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNvbmd0aVNDKCJTb25ndGkgU0MiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzb25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlaXRpVENSZXBsYWNlbWVudCgiUGlu
Z0ZhbmcgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0
Y2ggKGZhbWlseU5hbWUubGVuZ3RoKCkpIHsKICAgICBjYXNlIDI6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1G
b250RGF0YWJhc2VDb3JlVGV4dC5jcHAKaW5kZXggY2M0ZTJiYzQ0NmYyOGU0OWRlYjUzMzZhMzNi
MGJiZjc5ODZmYzJkMC4uMzUwYjE2YTdlMWVjMmE1M2M0OWY5MTJhZGNlNjc5MTE1MmYzY2EwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVt
Rm9udERhdGFiYXNlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcApAQCAtMjEzLDIyICsy
MTMsMjIgQEAgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OkNhc2NhZGVMaXN0UGFyYW1ldGVy
cyBTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c3kKIAogICAgIHN3aXRjaCAoc3lzdGVtRm9u
dEtpbmQpIHsKICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpTeXN0ZW1VSTogewotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUkgPSBBdG9tU3RyaW5nKCJz
eXN0ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVtVUkg
PSBBdG9tU3RyaW5nKCJzeXN0ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJLmdldCgpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlTZXJpZjogewotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlTZXJpZiA9IEF0b21T
dHJpbmcoInVpLXNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
ICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5
c3RlbVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1zZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlTZXJpZi5n
ZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJ
TW9ub3NwYWNlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBz
eXN0ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmcoInVpLW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmco
InVpLW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAg
ICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlNb25vc3BhY2UuZ2V0KCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSVJvdW5kZWQ6IHsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJUm91bmRlZCA9IEF0
b21TdHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc3lzdGVtVUlSb3VuZGVkID0gQXRvbVN0cmluZygidWktcm91bmRlZCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVt
VUlSb3VuZGVkLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmlu
ZGV4IGEwYWEyNTAzZWE1ZWJlYzljYmVhNWFjNzI3ZjcwNjA1OTM5NDU3NTUuLmVmNjk1MjE2NGYw
MzBmNWIwZjc0YTM4MDVmMzU3YmFlNjJiN2NiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0zNyw3
ICszNyw3IEBAIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0ZXJFZmZl
Y3QmIHNvdXJjZUVmZmVjdCkKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlQWxwaGE6OmVmZmVj
dE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
X2VmZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNw
cAppbmRleCAwNDVlZTAxZjIyM2U0MjJmZmYwNDZmZWEyZjRjYTJkZGUwZGRkNzEyLi44OGEzNmE0
MTAyNmJkM2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAgUmVmPFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0
ZShGaWx0ZXImIGZpbHRlcikKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZm
ZWN0TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHNfZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHNfZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQppbmRl
eCA0ZjA4Y2EwNmQyNGU5ZGMzZmEwNDM0MThjM2NiZmMyODI3NmVlMWQxLi41ZjRkZDhhNzFhYWY3
M2VmMGNlY2Q5MThlOWQ0OGNkNGQ3M2ZmNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTUzLDggKzUzLDggQEAg
Rm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDdXN0b21GYWxsYmFja0ZvbnQoY29uc3Qg
VUludDMyIGMsIGNvbnN0IEZvbnREZXMKIHsKICAgICBBU1NFUlQocmVxdWlyZXNDdXN0b21GYWxs
YmFja0ZvbnQoYykpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhl
bHZldGljYUZhbWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3
Um9tYW5QU01URmFtaWx5KCJUaW1lc05ld1JvbWFuUFNNVCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGhlbHZldGljYUZhbWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuUFNNVEZhbWlseSgiVGltZXNOZXdS
b21hblBTTVQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBBdG9t
U3RyaW5nKiBmYW1pbHkgPSBudWxscHRyOwogICAgIHN3aXRjaCAoYykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCAxN2NiNTBlM2E1NTUxMDU1YjMzYjU2ZDNh
NTFhNjY4M2I3N2ZjMDIzLi4wOTg5OTgwZTQ2NTY5OGRlY2Y2NGU0ZjQ3NWI1NDEyYmI4MjA4ZGIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApAQCAtMzQsNyArMzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfVkFSSUFC
TEUoQWNjZXNzb3IsIE5hbWUsIFR5cGUpIFwKICAgICBHTHVpbnQgQWNjZXNzb3IjI0xvY2F0aW9u
KCkgeyBcCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBu
YW1lKE5hbWUsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAorICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoTmFt
ZSwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOyBcCiAgICAgICAgIHJldHVybiBn
ZXRMb2NhdGlvbihuYW1lLmdldCgpLCBUeXBlKTsgXAogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAppbmRleCA2
OGQ0OGU4NzY0OTVhODI2N2U3NTg5NzNmMWRlNWFiYzJlMTgxNWY4Li40YTQwOTdlZDRmYWRiNTMw
MWU3NDkwMGI2MjE5NGY4ODZkMjVkODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcApAQCAtMzczLDcgKzM3Myw3IEBA
IFJlZlB0cjxGb250PiBGb250Q2FjaGU6OmZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9uCiAKIFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNv
cnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udE5hbWU7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBm
YWxsYmFja0ZvbnROYW1lOwogCiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1lLmdldCgpLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuICpmb250Rm9yRmFtaWx5KGZvbnREZXNjcmlwdGlvbiwgZmFs
bGJhY2tGb250TmFtZSk7CkBAIC0zODQsNyArMzg0LDcgQEAgUmVmPEZvbnQ+IEZvbnRDYWNoZTo6
bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGkKICAgICAvLyBTZWFyY2ggYWxsIHR5cGljYWwgV2luZG93cy1pbnN0YWxsZWQgZnVsbCBVbmlj
b2RlIGZvbnRzLgogICAgIC8vIFNvcnRlZCBieSBtb3N0IHRvIGxlYXN0IGdseXBocyBhY2NvcmRp
bmcgdG8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Vbmljb2RlX3R5cGVmYWNlcwogICAg
IC8vIFN0YXJ0IHdpdGggVGltZXMgTmV3IFJvbWFuIGFsc28gc2luY2UgaXQgaXMgdGhlIGRlZmF1
bHQgaWYgdGhlIHVzZXIgZG9lc24ndCBjaGFuZ2UgcHJlZnMuCi0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udHNbXSA9IHsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udHNbXSA9IHsK
ICAgICAgICAgQXRvbVN0cmluZygiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpLAogICAgICAgICBBdG9tU3RyaW5nKCJNaWNyb3NvZnQgU2FucyBTZXJp
ZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKICAgICAgICAgQXRvbVN0cmlu
ZygiVGFob21hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLApAQCAtNjk0LDgg
KzY5NCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNy
ZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAKIGNvbnN0IEF0b21TdHJpbmcmIEZv
bnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVz
TmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWljcm9zb2Z0U2Fu
c1NlcmlmKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJpZigiTWljcm9zb2Z0IFNhbnMgU2VyaWYi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGZhbWls
eU5hbWUubGVuZ3RoKCkpIHsKICAgICAvLyBPbiBXaW5kb3dzLCB3ZSBkb24ndCBzdXBwb3J0IGJp
dG1hcCBmb250cywgYnV0IGxlZ2FjeSBjb250ZW50IGV4cGVjdHMgc3VwcG9ydC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25z
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJj
ZVJlc3BvbnNlQ29jb2EubW0KaW5kZXggODVhYTFlMTQxNWIwMGY1MTE5ZWQ3YTFiNjQzYjk2YWZk
MjBiNzUwOS4uYjhiMDU3YjkyOTNjZTJhMjk5MDFmMWI4YTAzYjg0YWVkNzBiZDI3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3Bv
bnNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
ZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0aWMgaW5saW5l
IEF0b21TdHJpbmcgZXh0cmFjdEhUVFBTdGF0dXNUZXh0KENGSFRUUE1lc3NhZ2VSZWYgbWVzc2Fn
ZVJlZikKICAgICBpZiAoYXV0byBodHRwU3RhdHVzTGluZSA9IGFkb3B0Q0YoQ0ZIVFRQTWVzc2Fn
ZUNvcHlSZXNwb25zZVN0YXR1c0xpbmUobWVzc2FnZVJlZikpKQogICAgICAgICByZXR1cm4gZXh0
cmFjdFJlYXNvblBocmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3RhdHVzTGluZS5nZXQoKSk7
CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZGVmYXVsdFN0YXR1c1Rl
eHQoIk9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFN0YXR1c1Rl
eHQoIk9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBk
ZWZhdWx0U3RhdHVzVGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21w
bGV4TGluZUxheW91dC5jcHAKaW5kZXggMjllYmU1NmFmMDkxMTJiMzFlNTM2OWZlODllYTc4OTc0
YmY3N2UwMC4uNDFiYjUyZjA2ZWY0ODZiNzFhNGNlNzZkODMyMGYzN2U5MThlMjk2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCkBAIC0yMTU4
LDcgKzIxNTgsNyBAQCB2b2lkIENvbXBsZXhMaW5lTGF5b3V0OjpjaGVja0xpbmVzRm9yVGV4dE92
ZXJmbG93KCkKICAgICAvLyBEZXRlcm1pbmUgdGhlIHdpZHRoIG9mIHRoZSBlbGxpcHNpcyB1c2lu
ZyB0aGUgY3VycmVudCBmb250LgogICAgIC8vIEZJWE1FOiBDU1MzIHNheXMgdGhpcyBpcyBjb25m
aWd1cmFibGUsIGFsc28gbmVlZCB0byB1c2UgMHgwMDJFIChGVUxMIFNUT1ApIGlmIGhvcml6b250
YWwgZWxsaXBzaXMgaXMgIm5vdCByZW5kZXJhYmxlIgogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250ID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVsbGlwc2lzU3Ry
KCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmaXJzdExp
bmVGb250ID0gbV9mbG93LmZpcnN0TGluZVN0eWxlKCkuZm9udENhc2NhZGUoKTsKICAgICBmbG9h
dCBmaXJzdExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RMaW5lRm9udC53aWR0aChtX2Zsb3cuY29u
c3RydWN0VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBtX2Zsb3cuZmlyc3RMaW5lU3R5
bGUoKSkpOwogICAgIGZsb2F0IGVsbGlwc2lzV2lkdGggPSAoZm9udCA9PSBmaXJzdExpbmVGb250
KSA/IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggOiBmb250LndpZHRoKG1fZmxvdy5jb25zdHJ1Y3RU
ZXh0UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAK
aW5kZXggODE1MGY1NWZkZTI2YTY0N2E3ZWQ4MDNhM2RiNzczMzZjNGE3MDk4Yi4uOTcwM2JlNDQ5
ZjYyMjlmYmMzNjAwZjA1MmUwODRkYTY5MTQ2ZTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTk5
MSw4ICs5OTEsOCBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5l
Q2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgY29uc3QgVUNoYXIgZWxsaXBzaXNBbmRTcGFjZVsyXSA9IHsgaG9yaXpv
bnRhbEVsbGlwc2lzLCAnICcgfTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGVsbGlwc2lzQW5kU3BhY2VTdHIoZWxsaXBzaXNBbmRTcGFjZSwgMik7Ci0gICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRh
bEVsbGlwc2lzLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBlbGxpcHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIp
OworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgbGluZVN0eWxlID0gbnVtVmlzaWJsZUxpbmVzID09IDEgPyBmaXJzdExpbmVT
dHlsZSgpIDogc3R5bGUoKTsKICAgICAgICAgY29uc3QgRm9udENhc2NhZGUmIGZvbnQgPSBsaW5l
U3R5bGUuZm9udENhc2NhZGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMWQ3ZjAzMWNmZTUxYTIyNGE1YWY4YTA2ZTJkYjg3ZThk
NDlkZWYyNy4uYmQwYjkwZTVmOTJhNDE4YmIyZWM1MGZkODZmZjNhMzc3MTIzZGQ4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNTY2
LDggKzE1NjYsOCBAQCBjb25zdCBBdG9tU3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5n
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0aW9uU3RyaW5nOwogCiAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywgMSk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGh5cGhlblN0cmluZygmaHlwaGVuLCAx
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywgMSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwg
MSk7CiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKS5nbHlwaEZvckNoYXJh
Y3RlcihoeXBoZW4pID8gaHlwaGVuU3RyaW5nIDogaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKQEAg
LTE1NzksMjggKzE1NzksMjggQEAgY29uc3QgQXRvbVN0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRF
bXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdAogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6Q3Vz
dG9tOgogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpOwogICAgIGNhc2Ug
VGV4dEVtcGhhc2lzTWFyazo6RG90OiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxldCwgMSk7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7
CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Eb3RTdHJpbmcoJndoaXRlQnVs
bGV0LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFz
aXNGaWxsOjpGaWxsZWQgPyBmaWxsZWREb3RTdHJpbmcgOiBvcGVuRG90U3RyaW5nOwogICAgIH0K
ICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkNpcmNsZTogewotICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkQ2lyY2xlU3RyaW5nKCZibGFja0NpcmNsZSwg
MSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuQ2lyY2xl
U3RyaW5nKCZ3aGl0ZUNpcmNsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkQ2lyY2xlU3RyaW5nKCZibGFja0NpcmNs
ZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVDaXJjbGUsIDEpOwogICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxl
ZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVt
cGhhc2lzTWFyazo6RG91YmxlQ2lyY2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOwotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkRvdWJsZUNpcmNsZVN0
cmluZygmYnVsbHNleWUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZygmZmlzaGV5ZSwg
MSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gb3BlbkRvdWJsZUNpcmNsZVN0cmluZygmYnVsbHNleWUsIDEpOwogICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxl
ZERvdWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmc7CiAgICAgfQogICAg
IGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZFRyaWFuZ2xlU3RyaW5nKCZibGFja1VwUG9pbnRp
bmdUcmlhbmdsZSwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBvcGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxs
ZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpOworICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Ucmlh
bmdsZVN0cmluZygmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpOwogICAgICAgICByZXR1cm4g
dGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFRy
aWFuZ2xlU3RyaW5nIDogb3BlblRyaWFuZ2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRF
bXBoYXNpc01hcms6OlNlc2FtZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gZmlsbGVkU2VzYW1lU3RyaW5nKCZzZXNhbWVEb3QsIDEpOwotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlblNlc2FtZVN0cmluZygmd2hpdGVTZXNh
bWVEb3QsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZpbGxlZFNlc2FtZVN0cmluZygmc2VzYW1lRG90LCAxKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuU2Vz
YW1lU3RyaW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFz
aXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5n
IDogb3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpB
dXRvOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCAyMjFlZTY1ZDli
OTg3ZWZhMzIyZTM2OWMxNDMwZjFlMjgwZWFmODY5Li5mY2NmMmJhMTdiMDExMmVkMmI1YWRjYWU3
ODdmOGViZTliYWVlYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFk
anVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApA
QCAtNTQ1LDIwICs1NDUsMjAgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmlj
UXVpcmtzKFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIAogICAgIGlmIChtX2RvY3VtZW50LnF1
aXJrcygpLm5lZWRzR01haWxPdmVyZmxvd1Njcm9sbFF1aXJrKCkpIHsKICAgICAgICAgLy8gVGhp
cyB0dXJucyBzaWRlYmFyIHNjcm9sbGFibGUgd2l0aG91dCBtb3VzZSBtb3ZlIGV2ZW50LgotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0
aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvbGVWYWx1ZSgibmF2
aWdhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgaWYg
KHN0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpIaWRkZW4gJiYgbV9lbGVtZW50LT5hdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHJvbGVBdHRyKSA9PSByb2xlVmFsdWUpCiAgICAg
ICAgICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZsb3c6OkF1dG8pOwogICAgIH0KICAgICBp
ZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc1lvdVR1YmVPdmVyZmxvd1Njcm9sbFF1aXJrKCkp
IHsKICAgICAgICAgLy8gVGhpcyB0dXJucyBzaWRlYmFyIHNjcm9sbGFibGUgd2l0aG91dCBob3Zl
ci4KLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGlkVmFsdWUoImd1
aWRlLWlubmVyLWNvbnRlbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
aWRWYWx1ZSgiZ3VpZGUtaW5uZXItY29udGVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICAgICAgaWYgKHN0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpIaWRk
ZW4gJiYgbV9lbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpID09IGlkVmFsdWUpCiAgICAg
ICAgICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZsb3c6OkF1dG8pOwogICAgIH0KICAgICBp
ZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc0Z1bGxzY3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkp
IHsKICAgICAgICAgaWYgKGlzPEhUTUxEaXZFbGVtZW50PihtX2VsZW1lbnQpICYmIHN0eWxlLmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluc3RyZWFtTmF0aXZlVmlkZW9EaXZDbGFzcygi
aW5zdHJlYW0tbmF0aXZlLXZpZGVvLS1tb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gdmlkZW9FbGVtZW50SUQoInZqc192aWRlb18zX2h0bWw1X2FwaSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNz
KCJpbnN0cmVhbS1uYXRpdmUtdmlkZW8tLW1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdmlkZW9FbGVtZW50SUQoInZqc192aWRlb18zX2h0bWw1X2FwaSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgICAgICAgICAgYXV0byYg
ZGl2ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCptX2VsZW1lbnQpOwogICAgICAgICAgICAg
aWYgKGRpdi5oYXNDbGFzcygpICYmIGRpdi5jbGFzc05hbWVzKCkuY29udGFpbnMoaW5zdHJlYW1O
YXRpdmVWaWRlb0RpdkNsYXNzKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAKaW5kZXggNWQwNTIxMTljNjQ0Y2JlZjI0MDJhMmMzOTZmNjc3NzY5
NjFjODkxOC4uMjU0NThjNGVhN2VkMjkyMWE0OGQxYmM3ZmNlMWNhNTA5YjkzNTViYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC0xMDks
OCArMTA5LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAKIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2Rl
KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
YXV0b1ZhbCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2UoImF1dG8t
cmV2ZXJzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9WYWwoImF1dG8i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZl
cnNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21T
dHJpbmcmIHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6cm90YXRlQXR0cik7CiAgICAg
aWYgKHJvdGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4gUm90YXRlQXV0bzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAxYjQ2MWI0NzMxODY4
MDY0MjBjOGEwZWQ3YTM3YzE2ODk2NmQzYjMyLi40NWU0NWQ1YmNlNGYzYTQyYWNmNjg0YjYyZGRi
ZWEwYWIyMTdlNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
Y3BwCkBAIC0yNzYsMTAgKzI3NiwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0
ZUFuaW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2Rl
KGNvbnN0IEF0b21TdHJpbmcmIGNhbGNNb2RlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBkaXNjcmV0ZSgiZGlzY3JldGUiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNlZCgicGFj
ZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbGluZWFyKCJsaW5lYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzcGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBpZiAoY2FsY01vZGUgPT0gZGlzY3JldGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNNb2Rl
OjpEaXNjcmV0ZSk7CiAgICAgZWxzZSBpZiAoY2FsY01vZGUgPT0gbGluZWFyKQpAQCAtMjk0LDgg
KzI5NCw4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRv
bVN0cmluZyYgY2FsY01vZGUpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmli
dXRlVHlwZShjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4geG1sKCJYTUwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3Mo
IkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNz
cykKICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQXR0cmlidXRlVHlwZTo6Q1NTOwogICAgIGVs
c2UgaWYgKGF0dHJpYnV0ZVR5cGUgPT0geG1sKQpAQCAtMzIxLDE0ICszMjEsMTQgQEAgU3RyaW5n
IFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0
aW9uRWxlbWVudDo6aXNBZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwg
YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OkJ5OwogfQogCiBib29sIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihTVkdOYW1lczo6YWNjdW11bGF0ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBz
dW0gJiYgYW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRvOwogfQpAQCAtNjA2LDcg
KzYwNiw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y29tcHV0ZUNTU1Byb3BlcnR5VmFs
dWUoU1ZHRWxlbWVudCogZWxlbWVudCwgQ1NTUHJvcGVyCiAKIHN0YXRpYyBib29sIGluaGVyaXRz
RnJvbVByb3BlcnR5KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwg
dmFsdWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3R5bGVFbGVtZW50LmNwcAppbmRleCA2Y2U3NWVlNzUzMzI0YjhkZTYzMWEzMDY0M2Y5YmQ4
ZWY4MWQ4NjlkLi4yNWI4MmEyOWE2NzQwMTZhNzYyZWRkNTljYjU4OGVhNjlhZDBlM2FkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFNWR1N0eWxlRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBzZXREaXNhYmxlZCkKIAogY29uc3Qg
QXRvbVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFZhbHVlKCJ0ZXh0L2NzcyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3Mi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmlu
ZyYgbiA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlz
TnVsbCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsKIH0KQEAgLTc2LDcgKzc2LDcgQEAgdm9p
ZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKIAogY29u
c3QgQXRvbVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFZhbHVlKCJhbGwiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgbiA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAg
ICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUuZ2V0KCkgOiBuOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCA0NDli
MTRjZDUwMWRmMjU1ODc0ZWNjZmM1ODQ5Yzg5NGYyODExNmZkLi4wNDMyMTI4Yzk4MTJlOTViNjBl
YzcxN2E2ZThmNzk1OWU5ZmM0MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtMzQwLDcgKzM0MCw3IEBAIFNNSUxUaW1lIFNWR1NN
SUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUoY29uc3QgU3RyaW5nJiBkYXRhKQogICAgIAogICAg
IFN0cmluZyBwYXJzZSA9IGRhdGEuc3RyaXBXaGl0ZVNwYWNlKCk7CiAKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRlZmluaXRl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRl
ZmluaXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChwYXJz
ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0
ZSgpOwogCkBAIC02NTIsOCArNjUyLDggQEAgYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNGcm96ZW4o
KSBjb25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJl
c3RhcnQoKSBjb25zdAogeyAgICAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbmV2ZXIoIm5ldmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3aGVuTm90QWN0
aXZlKCJ3aGVuTm90QWN0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmV2
ZXIoIm5ldmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2hlbk5vdEFjdGl2
ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oU1ZHTmFtZXM6OnJlc3RhcnRBdHRyKTsKICAgICBpZiAodmFsdWUgPT0gbmV2ZXIpCiAgICAg
ICAgIHJldHVybiBSZXN0YXJ0TmV2ZXI7CkBAIC02NjQsNyArNjY0LDcgQEAgU1ZHU01JTEVsZW1l
bnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogICAgIAogU1ZHU01J
TEVsZW1lbnQ6OkZpbGxNb2RlIFNWR1NNSUxFbGVtZW50OjpmaWxsKCkgY29uc3QKIHsgICAKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnJlZXplKCJmcmVlemUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmcmVlemUoImZyZWV6ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OmZpbGxBdHRyKTsK
ICAgICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9
CkBAIC02OTcsNyArNjk3LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50
KCkgY29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBTTUlMVGlt
ZTo6dW5yZXNvbHZlZCgpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAodmFsdWUgPT0gaW5kZWZpbml0ZVZhbHVlKQog
ICAgICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKICAgICBib29sIG9rOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRp
dmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcAppbmRleCA3MmIyNWI1Yjhj
YzJmYzFlNzAxYzc5MTllMzM5Mjc2N2MyMzE0MDVkLi40NzZmYjM0YjNhY2E0YjIxZmI3ZDBlZGNl
YzFkZjBhOTEyOGQ5ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25J
bXBsLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENvbG9yIFNW
R0FuaW1hdGlvbkNvbG9yRnVuY3Rpb246OmNvbG9yRnJvbVN0cmluZyhTVkdFbGVtZW50KiB0YXJn
ZXRFbGVtZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VycmVudENvbG9yKCJjdXJyZW50Q29sb3IiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdXJyZW50Q29sb3IoImN1cnJlbnRDb2xvciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChzdHJpbmcgIT0g
Y3VycmVudENvbG9yLmdldCgpKQogICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8Q29s
b3I+Ojpmcm9tU3RyaW5nKHN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgKaW5kZXggMjFlODgzZmUyNDQ4MzhmZjM3NDY4
NjliZjExYTNkZjQ2ZmY0YmUyYS4uZDhlOGVjMTc2M2M5MjAyOWExOTY4OWJlNTdlNjUxZWI4YWI1
MGU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5QW5pbWF0b3IuaApAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBTVkdQcm9wZXJ0eUFuaW1hdG9y
IDogcHVibGljIFNWR0F0dHJpYnV0ZUFuaW1hdG9yIHsKIAogICAgIFN0cmluZyBhZGp1c3RGb3JJ
bmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdAogICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IGluaGVyaXQgPyBjb21wdXRlSW5oZXJpdGVkQ1NT
UHJvcGVydHlWYWx1ZSh0YXJnZXRFbGVtZW50KSA6IHZhbHVlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398148</attachid>
            <date>2020-04-30 20:02:52 -0700</date>
            <delta_ts>2020-04-30 20:27:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430200251.patch</filename>
            <type>text/plain</type>
            <size>145113</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmM4YzQxNGM5MDA5NzgxZmY2ZDUyNTUxYTEwYzJjNzAwNGEwYmFi
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTI5ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIERlYWRsb2NrIGluIFdU
Rjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0d29ya1Byb2Nlc3MuZXhlIGlzIGV4
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2FhMWRjNjM2MjkzYmMyN2ZhNzhiYTVj
NGVlLi4xMjQ2ZGVmNmNiNWE5MWIyYTBmYmNlMDYzN2Y1N2U5YjM4MTQyMmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYyIEBACisyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAv
IE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlv
bnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0
YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1O
YW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2lu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGlu
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjph
cnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFu
dFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6
Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNw
cDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFk
ZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1
dG9jYXBpdGFsaXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFs
aXplVHlwZSk6CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc0NvbnRhY3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0
ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lz
dGVtUHJldmlld0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlw
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjp0cnVlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6OnNldEF1dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6
Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0TW9kZU5hbWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRN
b2RlTmFtZXM6Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRl
Y2ltYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVj
a2JveCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpkYXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9u
dGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpyYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxh
eWJhY2tTdGF0ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVk
KToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1Nl
YXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Q
c2V1ZG9UeXBlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bk
b3duSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQXV0b0ZpbGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9u
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpU
ZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hG
aWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpjb21tZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNj
cmlwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9y
Y2VkS2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Ny
b2xsaW5nQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRl
eHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0Zvcndh
cmRDYWNoZSBjb25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5
ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3Rl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3Rl
bUZvbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpleHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21w
bGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6
Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhl
blN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhh
c2lzTWFya1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25z
dCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpyZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAy
MC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNv
bWUgSFRNTCBlbGVtZW50IGNyaXRpY2FsIHBhdGhzIGluY2x1ZGUgQXRvbVN0cmluZyBtYXRlcmlh
bGl6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaAppbmRleCA2ZTk3ZDVkOWVlOTA5NjBmMWNlMzJlNjgwM2JjZmZkZTQy
MjA0Y2NlLi43MWE3ZjFhN2U4YjlkNDkwOGQxODQwZDBkNWIwNjU1NDdiYzNlYjcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2Fy
ZC5oCkBAIC01OCw4ICs1OCw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBDb21wbGV0aW9u
SGFuZGxlcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEdW1iUHRyVHJhaXRzOwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJWYWx1ZVRyYWl0czsKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBGdW5jdGlvbjsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBMYXp5TmV2ZXJE
ZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7Cit0ZW1w
bGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWU+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZDsKK3RlbXBs
YXRlPHR5cGVuYW1lLCB0eXBlbmFtZT4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7CiB0ZW1wbGF0ZTx0
eXBlbmFtZT4gY2xhc3MgT3B0aW9uU2V0OwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIE9wdGlv
bmFsOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUGFja2VkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaCBiL1NvdXJjZS9XVEYvd3RmL05ldmVyRGVzdHJv
eWVkLmgKaW5kZXggYjljOTE1YTUyYjRiZTE5MmZiZGEzMDBkMjBiOTJmNjYxNmZjNDc0My4uMjNh
NmEwMjg0YmUyNDM3NDUwMTljODhjMGQxZTkzMjc3Nzk4NGQyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ry
b3llZC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yYmlkSGVhcEFsbG9jYXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIC8v
IE5ldmVyRGVzdHJveWVkIGlzIGEgc21hcnQtcG9pbnRlci1saWtlIGNsYXNzIHRoYXQgZW5zdXJl
cyB0aGF0IHRoZSBkZXN0cnVjdG9yCkBAIC00MiwxOCArNDMsMzMgQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKK3N0cnVj
dCBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzIHsKKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRBY2Nlc3Mo
KQorICAgIHsKKyAgICB9Cit9OworCitzdHJ1Y3QgTWFpblRocmVhZEFjY2Vzc1RyYWl0cyB7Cisg
ICAgc3RhdGljIHZvaWQgYXNzZXJ0QWNjZXNzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
QWNjZXNzVHJhaXRzID0gQW55VGhyZWFkc0FjY2Vzc1RyYWl0cz4gY2xhc3MgTmV2ZXJEZXN0cm95
ZWQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldmVyRGVzdHJveWVkKTsKICAgICBXVEZf
Rk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIEFyZ3M+IE5ldmVyRGVzdHJveWVkKEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKKyAgICAgICAg
QWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsKICAgICAgICAgTWF5YmVSZWxheDxUPihuZXcg
KHN0b3JhZ2VQb2ludGVyKCkpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7CiAgICAg
fQogCiAgICAgTmV2ZXJEZXN0cm95ZWQoTmV2ZXJEZXN0cm95ZWQmJiBvdGhlcikKICAgICB7Cisg
ICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIE1heWJlUmVsYXg8
VD4obmV3IChzdG9yYWdlUG9pbnRlcigpKSBUKFdURk1vdmUoKm90aGVyLnN0b3JhZ2VQb2ludGVy
KCkpKSk7CiAgICAgfQogCkBAIC03MCw3ICs4NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBOZXZlckRlc3Ryb3llZCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFBvaW50ZXJUeXBlID0g
dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VD46OnR5cGUqOwogCi0gICAgUG9pbnRlclR5cGUg
c3RvcmFnZVBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PFBvaW50ZXJUeXBlPihy
ZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdlKSk7IH0KKyAgICBQb2ludGVyVHlw
ZSBzdG9yYWdlUG9pbnRlcigpIGNvbnN0CisgICAgeworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFz
c2VydEFjY2VzcygpOworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOworICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXggPSBzdGQ6OmlzX2Jhc2Vfb2Y8
UmVmQ291bnRlZEJhc2UsIFB0clR5cGU+Ojp2YWx1ZT4gc3RydWN0IE1heWJlUmVsYXggewogICAg
ICAgICBleHBsaWNpdCBNYXliZVJlbGF4KFB0clR5cGUqKSB7IH0KQEAgLTg0LDEyICsxMDQsMTIg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQgewogICAgIHR5cGVu
YW1lIHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46
OnZhbHVlPjo6dHlwZSBtX3N0b3JhZ2U7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBOZXZl
ckRlc3Ryb3llZDxUPiBtYWtlTmV2ZXJEZXN0cm95ZWQoVCYmKTsKK3RlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIFQyPiBOZXZlckRlc3Ryb3llZDxULCBUMj4gbWFrZU5ldmVyRGVzdHJveWVk
KFQmJik7CiAKIC8vIEZJWE1FOiBJdCdzIG1lc3N5IHRvIGhhdmUgdG8gcmVwZWF0IHRoZSB3aG9s
ZSBjbGFzcyBqdXN0IHRvIG1ha2UgdGhpcyAibGF6eSIgdmVyc2lvbi4KIC8vIFNob3VsZCByZXZp
c2l0IGNsaWVudHMgdG8gc2VlIGlmIHdlIHJlYWxseSBuZWVkIHRoaXMsIGFuZCBwZXJoYXBzIHVz
ZSB0ZW1wbGF0ZXMgdG8KIC8vIHNoYXJlIG1vcmUgb2YgdGhlIGNvZGUgd2l0aCB0aGUgbWFpbiBO
ZXZlckRlc3Ryb3llZCBhYm92ZS4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZCB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHMg
PSBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKExhenlOZXZlckRlc3Ryb3llZCk7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6CkBAIC05OSw2ICsxMTksNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHZvaWQgY29uc3RydWN0
KEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2lzQ29uc3RydWN0ZWQp
OworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOwogCiAjaWYgQVNTRVJUX0VO
QUJMRUQKICAgICAgICAgbV9pc0NvbnN0cnVjdGVkID0gdHJ1ZTsKQEAgLTEyNyw2ICsxNDgsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIFBv
aW50ZXJUeXBlIHN0b3JhZ2VQb2ludGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVCht
X2lzQ29uc3RydWN0ZWQpOworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOwog
ICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBUKj4oJm1fc3RvcmFnZSkpOwogICAgIH0KIApAQCAtMTQ4LDEzICsxNzAsMjEgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkIHsKICAgICB0eXBlbmFt
ZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2
YWx1ZT46OnR5cGUgbV9zdG9yYWdlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5l
IE5ldmVyRGVzdHJveWVkPFQ+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYgYXJndW1lbnQpCit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHMgPSBBbnlUaHJlYWRzQWNjZXNz
VHJhaXRzPiBpbmxpbmUgTmV2ZXJEZXN0cm95ZWQ8VCwgQWNjZXNzVHJhaXRzPiBtYWtlTmV2ZXJE
ZXN0cm95ZWQoVCYmIGFyZ3VtZW50KQogewogICAgIHJldHVybiBXVEZNb3ZlKGFyZ3VtZW50KTsK
IH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZCA9IE5ldmVyRGVzdHJveWVkPFQsIE1haW5UaHJlYWRBY2Nlc3NUcmFpdHM+OworCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgordXNpbmcgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZCA9IExhenlO
ZXZlckRlc3Ryb3llZDxULCBNYWluVGhyZWFkQWNjZXNzVHJhaXRzPjsKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RGOwogCiB1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3llZDsKIHVzaW5nIFdURjo6TmV2
ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Om1ha2VOZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkOwordXNpbmcgV1RGOjpNYWluVGhyZWFkTGF6eU5ldmVy
RGVzdHJveWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKaW5kZXggNzA2OGY1ZmZhNDgy
ZGIwNzA1ODUxZWNmNGQyZmQ1M2EzZmY3NGJkMS4uN2YxODYxNjNkMzgxMjZiMjM0YTQ1ZWFjYzZh
ZDdlNTcxZDVlNDA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5n
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3BwCkBAIC0xMzMsMTEg
KzEzMywxMSBAQCB2b2lkIEF0b21TdHJpbmc6OnNob3coKSBjb25zdAogCiAjZW5kaWYKIAotV1RG
X0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBudWxsQXRvbURh
dGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGVt
cHR5QXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHN0YXJBdG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUg
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBudWxsQXRvbURh
dGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOworV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3RhckF0b21EYXRhOworV1RG
X0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4geG1sQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxuc0F0b21EYXRhOwogCiB2b2lkIEF0b21T
dHJpbmc6OmluaXQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3Ry
aW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuaAppbmRleCA4OGI0ZWJhYzMy
NzFiZDNlYjNjMTQxM2Q1ZjQ4MGJhM2ViY2MyMmQ0Li43MDM2YTNkMWZjODJiNzJmZDk5YTQ0NTk3
YmNlYTQ3ZjRmZTgyMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJp
bmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuaApAQCAtMjkwLDExICsy
OTAsMTEgQEAgaW5saW5lIEF0b21TdHJpbmc6OkF0b21TdHJpbmcoTlNTdHJpbmcgKnN0cmluZykK
IAogLy8gRGVmaW5lIGV4dGVybmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBjb21tb25seSB1
c2VkIGF0b20gc3RyaW5ncy4KIC8vIFRoZXNlIGFyZSBvbmx5IHVzYWJsZSBmcm9tIHRoZSBtYWlu
IHRocmVhZC4KLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG51bGxBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7Ci1leHRlcm4gV1RGX0VYUE9S
VF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7Ci1l
eHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4
bWxBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1h
aW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbnVsbEF0b21EYXRh
OworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3RhckF0
b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbEF0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRf
UFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHht
bG5zQXRvbURhdGE7CiAKIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBudWxsQXRvbSgpIHsgcmV0
dXJuIG51bGxBdG9tRGF0YS5nZXQoKTsgfQogaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIGVtcHR5
QXRvbSgpIHsgcmV0dXJuIGVtcHR5QXRvbURhdGEuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0
eUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAppbmRleCA1Yzg0Yzg1ZWM3NzFkZDU4Nzc5YjQz
OTY1ODY1ODNjYmI5ZTVjMGIxLi5iOWI2NmEyYjViOTVhNDYwMTUwNThhNTY1NWI2OGMyNGIwNzcy
NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCkBA
IC0zNyw4ICszNyw4IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJLaXRQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50KTsKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHN0
cmluZ0ZvclBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2YWls
YWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbm90QXZhaWxhYmxlU3RyaW5nKCJub3QtYXZhaWxhYmxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFp
bGFibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub3RBdmFpbGFibGVTdHJp
bmcoIm5vdC1hdmFpbGFibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAK
ICAgICByZXR1cm4gYXZhaWxhYmxlID8gYXZhaWxhYmxlU3RyaW5nIDogbm90QXZhaWxhYmxlU3Ry
aW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggN2M1NDZkYzYwMGIxMmM1NzZkZDA4Mjc5
YWI3YzY2N2ZhNTVmYjkxMy4uM2IyNWQwNmIxMjNhMWE1MWEwYTJhY2ZiNGY2NTZmOGQ5NGFkYjNm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0
RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0yNTgsMTkgKzI1OCwxOSBAQCB2b2lkIEluaXRE
YXRhUmVnaXN0cnk6OnJlZ2lzdGVySW5pdERhdGFUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGluaXRE
YXRhVHlwZSwgSW5pdAogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5OjpjZW5j
TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBN
QUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoImNlbmMiKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMi
KSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMiKSB9OwogICAgIHJldHVy
biBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5Ojp3ZWJtTmFt
ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgid2VibSIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoIndlYm0iKSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApp
bmRleCA2MGVhNmU3ZDEwNTYzZWUxNzk0MGZjNTkzM2U4MzNlOWEwY2ZhZDFhLi5mOTgxZWNjYzI5
NmQ3OGM4NzBkNzY4OGEwNmEwY2ZmODJmNzc2MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAg
LTQzLDI1ICs0MywyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcm
IE1lZGlhQ29udHJvbHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXV0b21hdGljOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25seUtleXdvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JjZWRP
bmx5KCJmb3JjZWQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNl
ZE9ubHkoImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBmb3JjZWRPbmx5OwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYWx3
YXlzT25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGFsd2F5c09uKCJhbHdheXMtb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGFsd2F5c09uOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
bWFudWFsS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGFsd2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBhbHdheXNPbigibWFudWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBhbHdheXNPbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggZDBiMmNiOWZkMGFh
MWJkMWYyOWFjZWRjNWI2MDkzOTc3NGExMWNiMC4uMDg1ZTRmZDZmYjgzMWU4NDI1NWE4MmEwMmVh
OGYxNzA0MmY5ZmY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xMDksOCArMTA5LDggQEAgTWVkaWFT
dHJlYW1UcmFjazo6fk1lZGlhU3RyZWFtVHJhY2soKQogCiBjb25zdCBBdG9tU3RyaW5nJiBNZWRp
YVN0cmVhbVRyYWNrOjpraW5kKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gYXVkaW9LaW5kKCJhdWRpbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmlkZW9LaW5k
KCJ2aWRlbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1ZGlvS2luZCgiYXVk
aW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0tpbmQoInZpZGVvIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKG1fcHJpdmF0ZS0+
dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICByZXR1
cm4gYXVkaW9LaW5kOwpAQCAtMTI5LDExICsxMjksMTEgQEAgY29uc3QgU3RyaW5nJiBNZWRpYVN0
cmVhbVRyYWNrOjpsYWJlbCgpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhU3RyZWFt
VHJhY2s6OmNvbnRlbnRIaW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc3BlZWNoSGludCgic3BlZWNoIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtdXNpY0hpbnQoIm11c2ljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXRhaWxIaW50
KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRIaW50KCJ0ZXh0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBtb3Rpb25IaW50KCJtb3Rpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBtdXNpY0hpbnQoIm11c2ljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZGV0YWlsSGludCgiZGV0YWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gdGV4dEhpbnQoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb3Rp
b25IaW50KCJtb3Rpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBzd2l0Y2ggKG1fcHJpdmF0ZS0+Y29udGVudEhpbnQoKSkgewogICAgIGNhc2UgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6OkhpbnRWYWx1ZTo6RW1wdHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDZhMGRmMDRm
NTFmYmI5OGY5ZTI4Mjk5MjBiYzVlZjAxM2JhZTljYWQuLjBiZTMxMmFmMGU2Y2FiY2Y3ZjAxNGRj
MTk1NTdhZTE5MWI3NGIyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCkBAIC00MywxMyArNDMsMTMgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ0RhdGFDaGFubmVsKTsKIAogc3RhdGljIGNvbnN0IEF0
b21TdHJpbmcmIGJsb2JLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gYmxvYigiYmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJs
b2IoImJsb2IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGJsb2I7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhcnJheWJ1ZmZlcktleXdvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhcnJheWJ1ZmZlcigi
YXJyYXlidWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcnJheWJ1ZmZl
cigiYXJyYXlidWZmZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGFycmF5YnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwMmM3NTcw
MGE4NWIzYzcyNTY2OTc3YmEyZGJjMWUzYWY4MjkxNGI1Li4yNjJiMjljOWM1YmY1N2NiZTZhN2Iw
MDExNzZiMWVjZDY5YjUyOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTM0MTAsNyArMzQx
MCw3IEBAIGNvbnN0IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9u
U3RhdHVzKCkgY29uc3QKIAogY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRMaXZlUmVnaW9uUmVsZXZhbnQoImFkZGl0aW9ucyB0
ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdExpdmVSZWdpb25S
ZWxldmFudCgiYWRkaXRpb25zIHRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgcmVsZXZhbnQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9y
ZWxldmFudEF0dHIpOwogCiAgICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9u
cyB0ZXh0Ii4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5
TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcAppbmRl
eCBmZDE0MmY3ZGVhYjA3NDhlOTZhMTljNWIwZGFlZDkwNjI3MGQzMGIyLi5iZTVhZDQ4M2UwYzEz
OTdiNWYyODljYTdkYzMyYTI2ZTU5ZDZmODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29uc3RhbnRQcm9wZXJ0eU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0
YW50UHJvcGVydHlNYXAuY3BwCkBAIC01MCwxNSArNTAsMTUgQEAgY29uc3QgQ29uc3RhbnRQcm9w
ZXJ0eU1hcDo6VmFsdWVzJiBDb25zdGFudFByb3BlcnR5TWFwOjp2YWx1ZXMoKSBjb25zdAogCiBj
b25zdCBBdG9tU3RyaW5nJiBDb25zdGFudFByb3BlcnR5TWFwOjpuYW1lRm9yUHJvcGVydHkoQ29u
c3RhbnRQcm9wZXJ0eSBwcm9wZXJ0eSkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFRvcE5hbWUoInNhZmUtYXJlYS1pbnNldC10b3Ai
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRSaWdodE5hbWUoInNhZmUtYXJlYS1pbnNl
dC1yaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldEJvdHRvbU5hbWUoInNhZmUt
YXJlYS1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRMZWZ0TmFt
ZSgic2FmZS1hcmVhLWluc2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNl
dFRvcE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2Ny
ZWVuSW5zZXRMZWZ0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBmdWxsc2NyZWVuSW5zZXRCb3R0b21OYW1lKCJmdWxsc2NyZWVuLWluc2V0LWJvdHRvbSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0UmlnaHROYW1lKCJmdWxsc2NyZWVuLWluc2V0
LXJpZ2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbk5hbWUo
ImZ1bGxzY3JlZW4tYXV0by1oaWRlLWR1cmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc2FmZUFyZWFJbnNldFRvcE5hbWUoInNhZmUtYXJlYS1pbnNldC10b3AiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0UmlnaHROYW1lKCJzYWZl
LWFyZWEtaW5zZXQtcmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzYWZl
QXJlYUluc2V0Qm90dG9tTmFtZSgic2FmZS1hcmVhLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRMZWZ0TmFtZSgic2FmZS1hcmVhLWlu
c2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5z
ZXRUb3BOYW1lKCJmdWxsc2NyZWVuLWluc2V0LXRvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldExlZnROYW1lKCJmdWxsc2NyZWVuLWluc2V0LWxlZnQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRCb3R0b21O
YW1lKCJmdWxsc2NyZWVuLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGZ1bGxzY3JlZW5JbnNldFJpZ2h0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1yaWdodCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0
aW9uTmFtZSgiZnVsbHNjcmVlbi1hdXRvLWhpZGUtZHVyYXRpb24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CiAgICAgY2FzZSBD
b25zdGFudFByb3BlcnR5OjpTYWZlQXJlYUluc2V0VG9wOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggYzZkOTU4YjI1ZDFiZjUzNmMyNzRiN2U1MmY5YzUzYjVhZjJiNWYwYy4uMTcxYmFjMzU5
NWYxYTNiMGJjYWEwNzdmZmQ2NzI3MzYzMmRmM2M4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0xMjU5LDcgKzEyNTksNyBAQCBDdXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXMg
RG9jdW1lbnQ6OnZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUoY29uc3QgQXRvbQogI2lmIEVOQUJM
RShNQVRITUwpCiAgICAgY29uc3QgYXV0byYgYW5ub3RhdGlvblhtbExvY2FsTmFtZSA9IE1hdGhN
TE5hbWVzOjphbm5vdGF0aW9uX3htbFRhZy0+bG9jYWxOYW1lKCk7CiAjZWxzZQotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1l
KCJhbm5vdGF0aW9uLXhtbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFubm90
YXRpb25YbWxMb2NhbE5hbWUoImFubm90YXRpb24teG1sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogI2VuZGlmCiAKICAgICBpZiAobG9jYWxOYW1lID09IFNWR05hbWVzOjpj
b2xvcl9wcm9maWxlVGFnLT5sb2NhbE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5l
U3R5bGVTaGVldE93bmVyLmNwcAppbmRleCBmYjI5NTkwZGYzMGU3NDY0ZmY5NzhhYzU5NTRhZTRk
ODhiYmZmZmZjLi5iZWQ5N2UxMGM2YTYyNTViNzI2ZDVlMjZjMDE5MmZlYWE5ZTc4NGJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcApAQCAtMTQ5LDcg
KzE0OSw3IEBAIGlubGluZSBib29sIGlzVmFsaWRDU1NDb250ZW50VHlwZShFbGVtZW50JiBlbGVt
ZW50LCBjb25zdCBBdG9tU3RyaW5nJiB0eXBlKQogICAgIC8vIEZJWE1FOiBTaG91bGQgTUlNRSB0
eXBlcyByZWFsbHkgYmUgY2FzZSBzZW5zaXRpdmUgaW4gWE1MIGRvY3VtZW50cz8gRG9lc24ndCBz
ZWVtIGxpa2UgdGhleSBzaG91bGQsCiAgICAgLy8gZXZlbiB0aG91Z2ggb3RoZXIgdGhpbmdzIGFy
ZSBjYXNlIHNlbnNpdGl2ZSBpbiB0aGF0IGNvbnRleHQuIE1JTUUgdHlwZXMgc2hvdWxkIG5ldmVy
IGJlIGNhc2Ugc2Vuc2l0aXZlLgogICAgIC8vIFdlIHNob3VsZCB2ZXJpZnkgdGhpcyBhbmQgdGhl
biByZW1vdmUgdGhlIGlzSFRNTEVsZW1lbnQgY2hlY2sgaGVyZS4KLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3NzQ29udGVudFR5cGUoInRleHQvY3NzIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3NzQ29udGVudFR5cGUoInRleHQvY3NzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBlbGVtZW50Lmlz
SFRNTEVsZW1lbnQoKSA/IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ0ZXh0
L2NzcyIpIDogdHlwZSA9PSBjc3NDb250ZW50VHlwZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvblJlY29yZC5jcHAKaW5kZXggNTE5MzIwZDQ2OTkxYzE0YjM3Mjc4MWFjY2VhYzc0OTAzYzA4
MmExOC4uZTk2NGVmMzA0ZTBiNzA2MjUyNDdkOWZhMWZmNzQ4ZjljYTAxYjY1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCkBAIC0xNzQsMTkgKzE3NCwxOSBAQCBjbGFzcyBN
dXRhdGlvblJlY29yZFdpdGhOdWxsT2xkVmFsdWUgZmluYWwgOiBwdWJsaWMgTXV0YXRpb25SZWNv
cmQgewogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGlsZExpc3RSZWNvcmQ6OnR5cGUoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjaGlsZExpc3QoImNoaWxkTGlzdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRMaXN0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGlsZExpc3Q7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRyaWJ1dGVz
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXR0cmlidXRlcygiYXR0cmlidXRl
cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXR0cmli
dXRlczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQ2hhcmFjdGVyRGF0YVJlY29yZDo6dHlwZSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoYXJhY3RlckRhdGEo
ImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFyYWN0
ZXJEYXRhKCJjaGFyYWN0ZXJEYXRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBs
CmluZGV4IDcwNDFmMTIxNzFkZTAzZTk1MGE4ODgyN2Y3ZmQxMWY5ZDhkNzI1ZmEuLmI1Mzg5MjY1
YmFhNmQ0NTkwM2MxNTk3ZjY1NGU4ZDVlZWU0M2ZlZWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVz
LnBsCkBAIC0xMTUsNyArMTE1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+
CiBFTkQKIAotICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIExhenlOZXZlckRlc3Ryb3llZDxj
b25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAgcHJpbnRNYWNy
b3MoJEYsICJleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0
b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CiAgICAgcHJpbnQgRiAiI2VuZGlmXG5cbiI7
CiAKICAgICBwcmludEluaXQoJEYsIDEpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIEVORAogCiAgICAg
cHJpbnQgRiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOwogCi0g
ICAgcHJpbnRNYWNyb3MoJEYsICJMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3Ry
aW5nPiIsICIiLCBcJXBhcmFtZXRlcnMpOworICAgIHByaW50TWFjcm9zKCRGLCAiTWFpblRocmVh
ZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1l
dGVycyk7CiAKICAgICBwcmludEluaXQoJEYsIDApOwogCkBAIC03MjIsNyArNzIyLDcgQEAgRU5E
CiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVz
cGFjZVByZWZpeH0pOwogCiAgICAgcHJpbnQgRiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50
IEYgIldFQkNPUkVfRVhQT1JUIGV4dGVybiBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpB
dG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7
CisgICAgcHJpbnQgRiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIE1haW5UaHJlYWRMYXp5TmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZp
eH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAg
ICBwcmludCBGICIvLyBUYWdzXG4iOwpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBwcmludE5hbWVz
Q3BwRmlsZQogICAgIAogICAgIG15ICRsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXggPSBsYygkcGFy
YW1ldGVyc3tuYW1lc3BhY2VQcmVmaXh9KTsKIAotICAgIHByaW50IEYgIkxhenlOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3Bh
Y2VVUkk7XG5cbiI7CisgICAgcHJpbnQgRiAiTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7
XG5cbiI7CiAKICAgICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlYWxs
U3RyaW5ncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxp
emUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKaW5kZXggM2Ew
ZjkxMTk5YjZiYjdiODQ3Y2M1ODUwNjE4ODMzZGI3ZTAxZWE3NS4uNzM1YmUwZmE3NTcyOGFkNGRi
ZjEyZjYyNmVhOGNjYzljNmNlN2IxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9B
dXRvY2FwaXRhbGl6ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6
ZS5jcHAKQEAgLTU3LDE5ICs1NywxOSBAQCBjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmdGb3JBdXRv
Y2FwaXRhbGl6ZVR5cGUoQXV0b2NhcGl0YWxpemVUeXBlIHR5cGUpCiAgICAgY2FzZSBBdXRvY2Fw
aXRhbGl6ZVR5cGVEZWZhdWx0OgogICAgICAgICByZXR1cm4gbnVsbEF0b20oKTsKICAgICBjYXNl
IEF1dG9jYXBpdGFsaXplVHlwZU5vbmU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlTm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiB2YWx1ZU5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZU5vbmU7CiAgICAgfQogICAgIGNhc2Ug
QXV0b2NhcGl0YWxpemVUeXBlU2VudGVuY2VzOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVNlbnRlbmNlcygic2VudGVuY2VzIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlU2VudGVuY2VzKCJzZW50ZW5jZXMi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1
ZVNlbnRlbmNlczsKICAgICB9CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVXb3Jkczogewot
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVXb3Jk
cygid29yZHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVXb3Jk
cygid29yZHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJl
dHVybiB2YWx1ZVdvcmRzOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZUFsbENo
YXJhY3RlcnM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHZhbHVlQWxsQ2hhcmFjdGVycygiY2hhcmFjdGVycyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiB2YWx1ZUFsbENoYXJhY3RlcnMoImNoYXJhY3RlcnMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZUFsbENoYXJh
Y3RlcnM7CiAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0
b2ZpbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5jcHAKaW5kZXggYTBhN2Q3
N2I1YzkyNWYwMGQwMTE1ODg1ZWQ4ZWI4YzA0MWE4MTRmNC4uNjczNWUyNjlmMjVhZWY3YmMwOTEy
NzU1MzkyMTQ4MWNkZTNlOGViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRv
ZmlsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5jcHAKQEAgLTEzMiwx
MSArMTMyLDExIEBAIEF1dG9maWxsRmllbGROYW1lIHRvQXV0b2ZpbGxGaWVsZE5hbWUoY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRhY3RUb2tlbihj
b25zdCBBdG9tU3RyaW5nJiB0b2tlbikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gaG9tZSgiaG9tZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gd29yaygid29yayIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gbW9iaWxlKCJtb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZheCgiZmF4Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBob21lKCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd29y
aygid29yayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vYmlsZSgibW9iaWxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdG9rZW4gPT0gaG9tZSB8fCB0b2tlbiA9PSB3
b3JrIHx8IHRva2VuID09IG1vYmlsZSB8fCB0b2tlbiA9PSBmYXggfHwgdG9rZW4gPT0gcGFnZXI7
CiB9CkBAIC0xNjEsOCArMTYxLDggQEAgc3RhdGljIHVuc2lnbmVkIG1heFRva2Vuc0ZvckF1dG9m
aWxsRmllbGRDYXRlZ29yeShBdXRvZmlsbENhdGVnb3J5IGNhdGVnb3J5KQogLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNwcm9jZXNzaW5nLW1vZGVs
LTMKIEF1dG9maWxsRGF0YSBBdXRvZmlsbERhdGE6OmNyZWF0ZUZyb21IVE1MRm9ybUNvbnRyb2xF
bGVtZW50KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
b2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIC8vIExhYmVsOiBEZWZhdWx0CiAgICAgLy8gMjYuIExl
dCB0aGUgZWxlbWVudCdzIElETC1leHBvc2VkIGF1dG9maWxsIHZhbHVlIGJlIHRoZSBlbXB0eSBz
dHJpbmcsIGFuZCBpdHMgYXV0b2ZpbGwgaGludCBzZXQgYW5kIGF1dG9maWxsIHNjb3BlIGJlIGVt
cHR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAK
aW5kZXggZWJiN2QyYThiMDAzZjQ0ZTQ4MWVmYjAyNjg2Njk5ZjgzNmU2MDVhMy4uYTk0OTk1NmU5
MzMyMmUwNmM0ZDNkNGI4ZDgxMDdkNjFhNDFjOGRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCkBAIC05OSw3ICs5OSw3IEBAIGJvb2wgQmFz
ZUNoZWNrYWJsZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KQogCiBTdHJpbmcgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmFsbGJhY2tWYWx1ZSgpIGNvbnN0
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb24uZ2V0KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggN2IxMDYxZmUxYTFmNDkxMzJhZGY0M2Q1OWNiODc1ZWRiZjdmZTYx
MC4uNTQyMWZkYjRiZjZiODFkZTlmNTRlMWIyMTY2NWE5NzViZDNhMzMxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiAKIHZvaWQgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBz
ZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12
YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEFTU0VSVChl
bGVtZW50KCkpOwogICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwCmluZGV4IDllMmYwNGM0MDAwNTY1NzlkNTRjNDUyNDY4Y2EyZGM4MWFiMWU2NzIuLmQ0
Yzg1OGEzZjkyMDE1YjZkMzhlNTQwYmM2YzY1OWUwMzY5ZjNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xNDMsOSArMTQzLDggQEAgdm9pZCBDb2xvcklucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaE5hbWUoIi13ZWJraXQtY29s
b3Itc3dhdGNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaFdyYXBw
ZXJOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3
YXRjaE5hbWUoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hXcmFwcGVyTmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0
Y2gtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIERv
Y3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBhdXRvIHdyYXBw
ZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBhOGVkYzk5ZjBiN2Q5NWZkYjZlM2EyNTM1OWJi
ODdkYzI4MWNkZTA2Li4zZTJmOWJlYWYwMGQyNTg2MDQzNmI3YjYwOGJmZTlmYjIzMTk1YmFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTg5LDkgKzg5LDggQEAgUmVm
PFVwbG9hZEJ1dHRvbkVsZW1lbnQ+IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRp
cGxlKERvY3VtZW50JiBkb2N1bWUKIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1dFRh
ZywgZG9jdW1lbnQsIDAsIGZhbHNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFR5cGUoYnV0dG9u
TmFtZSk7CiAgICAgc2V0UHNldWRvKHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggNzlkYjM0MWUxYzk1NjVmMWQw
ZjkxM2QyYzdjN2QzYzQ2YjI2Y2Y1Yi4uYzdhNzA5YTBhMjQxMjQ0M2Q0M2YxN2Y2ZmE1ZjMxMmQ5
OWIwYTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTMyMCw3
ICszMjAsNyBAQCBBdG9tU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY29udAogewogICAgIGF1dG8gZm9ybSA9IG1h
a2VSZWZQdHIob3duZXJGb3JtRm9yU3RhdGUoY29udHJvbCkpOwogICAgIGlmICghZm9ybSkgewot
ICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZm9ybUtleUZvck5vT3du
ZXIoIk5vIG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcm1L
ZXlGb3JOb093bmVyKCJObyBvd25lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgcmV0dXJuIGZvcm1LZXlGb3JOb093bmVyOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCAwMDlmNTU0NzhkM2E2ZTg2MTk4
OGU2YmJmMjVjZTQwYjIxMzhjY2JjLi42ZmM5YjQ3ZmRiMTJmNjhkNmNmNGMxNWE2OTAzMTNlNzVi
NzIzYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAt
MjUzLDkgKzI1Myw5IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAgIC8vIERvIG5v
dGhpbmcuCiAgICAgfSBlbHNlIGlmIChuYW1lID09IHJlbEF0dHIpIHsKICAgICAgICAgLy8gVXBk
YXRlIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkgaWYgbW9yZSByZWwgYXR0cmlidXRlcyB2
YWx1ZXMgYXJlIHN1cHBvcnRlZC4KLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub09w
ZW5lcigibm9vcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuZXIoIm9wZW5lciIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub1JlZmVycmVyKCJub3JlZmVycmVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vT3BlbmVyKCJub29wZW5l
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuZXIoIm9wZW5lciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgY29uc3QgYm9vbCBz
aG91bGRGb2xkQ2FzZSA9IHRydWU7CiAgICAgICAgIFNwYWNlU3BsaXRTdHJpbmcgcmVsVmFsdWUo
dmFsdWUsIHNob3VsZEZvbGRDYXNlKTsKICAgICAgICAgaWYgKHJlbFZhbHVlLmNvbnRhaW5zKG5v
UmVmZXJyZXIpKQpAQCAtMzgxLDcgKzM4MSw3IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6Omlz
U3lzdGVtUHJldmlld0xpbmsoKSBjb25zdAogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zeXN0ZW1QcmV2aWV3RW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVt
UHJldmlld1JlbFZhbHVlKCJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5
c3RlbVByZXZpZXdSZWxWYWx1ZSgiYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICBpZiAoIXJlbExpc3QoKS5jb250YWlucyhzeXN0ZW1QcmV2aWV3UmVsVmFsdWUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwCmluZGV4IDcxZmUxYTBiNzg1OGNmMGYzMDkyNmY5MGY3NGZmNzc0ZmY1N2ZlMTgu
LjQyYTI5Y2M1Nzg4YzM5YTNjNjQ2M2VjNGIwMTM2ODJkYzdhZGFmNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC03NCwxNSArNzQsMTUgQEAgY29uc3Qg
QXRvbVN0cmluZyYgSFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJtaXQoInN1Ym1p
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VibWl0KCJzdWJt
aXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1
cm4gc3VibWl0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQlVUVE9OOiB7Ci0gICAgICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uKCJidXR0b24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbigiYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJu
IGJ1dHRvbjsKICAgICAgICAgfQogICAgICAgICBjYXNlIFJFU0VUOiB7Ci0gICAgICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcmVzZXQoInJlc2V0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzZXQ7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAKaW5kZXggNjBkZDFmYjI1MjAzODYwZDNkOTJhN2E1YWNiMzMxYzJhYjA0YjU5MS4uMDdj
YjE2NGFlZTFhZTA4MTZiY2QxNTY0NDM0MzhkZTBlZjU2OTBhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgRGV0
YWlsRXZlbnRTZW5kZXImIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKIAogc3RhdGljIGNvbnN0
IEF0b21TdHJpbmcmIHN1bW1hcnlTbG90TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHN1bW1hcnlTbG90KCJzdW1tYXJ5U2xvdCIpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1
bW1hcnlTbG90Iik7CiAgICAgcmV0dXJuIHN1bW1hcnlTbG90OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCmluZGV4IDdhNmE2ZmUzZTkxNGU4NWI5ODkzZDE2OTY0MjczZDZiMmM1
YmE5NjMuLjViN2Y5YWYzODYxMTZkYWRiNmYwNTNjYjg0MGU4NzU3ODY1NGM0MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC01MDUsOSArNTA1LDkgQEAgc3RhdGljIFJlZjxE
b2N1bWVudEZyYWdtZW50PiB0ZXh0VG9GcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGUKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2xpbWl0ZWQtdG8t
b25seS1rbm93bi12YWx1ZXMKIHN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgdG9WYWxp
ZERpclZhbHVlKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBydGxW
YWx1ZSgicnRsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdXRvVmFsdWUoImF1dG8iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gcnRsVmFsdWUoInJ0bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJsdHIiKSkK
ICAgICAgICAgcmV0dXJuIGx0clZhbHVlOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh2YWx1ZSwgInJ0bCIpKQpAQCAtNjYyLDIyICs2NjIsMTkgQEAgU3RyaW5nIEhUTUxF
bGVtZW50Ojpjb250ZW50RWRpdGFibGUoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmlu
ZyYgdHJ1ZU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB0cnVlVmFsdWUoInRydWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJ1ZVZhbHVlLmdldCgpOwogfQog
CiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZmFsc2VOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VWYWx1ZSgiZmFsc2UiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZh
bHNlVmFsdWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBmYWxzZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
cGxhaW50ZXh0T25seU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBwbGFpbnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFp
bnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBwbGFpbnRleHRPbmx5VmFsdWUuZ2V0KCk7CiB9CiAKQEAg
LTExMTcsOSArMTExNCw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OnNob3VsZEF1dG9jb3JyZWN0KCkg
Y29uc3QKIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QoYm9vbCBhdXRvY29ycmVj
dCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb25OYW1l
KCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUo
Im9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oYXV0b2NvcnJlY3RBdHRyLCBhdXRvY29ycmVjdCA/IG9uTmFtZS5nZXQo
KSA6IG9mZk5hbWUuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcAppbmRleCA1MWFiMDE4Nzk4MDQ4N2IzYWZkNGU1MzVlNmFmYzVjYWUwZDI3
ZmUyLi42MjE4NDBjOTY4MjJmZjBhNmE4Y2M2ODU0YjY0YWZlZDVkNDQ2Yzk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTE1NCw3ICsxNTQsNyBA
QCBib29sIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogCiBjb25z
dCBBdG9tU3RyaW5nJiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNl
dCgiZmllbGRzZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNldCgi
ZmllbGRzZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGZpZWxkc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5k
ZXggNjIwZDJjNDIxYTIxMjRiYjkyYTJhODRhNGZhMDhhY2UzMWVjZWQ2Zi4uNjY1YWNlNDdlNzll
MTQzYTFkMDY1MzU5ODczN2NlNDA3YTBhMjBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtOTA2LDggKzkwNiw4IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpz
ZXRBdXRvY29tcGxldGUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21TdHJp
bmcmIEhUTUxGb3JtRWxlbWVudDo6YXV0b2NvbXBsZXRlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvZmYo
Im9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhdXRvY29tcGxldGVBdHRyKSwgIm9mZiIpID8gb2Zm
IDogb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBj
YTAwNjM5Y2ViM2I4ZDQ3Y2EwYmRjODA5MmI2ZmQ5M2Q2M2VmMjI0Li44NTRiNmJmNzRjODM1YmJi
MjhiZTIwNWQ4MGFiMzAwNDM4MWUzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKQEAgLTkwMyw4ICs5MDMsOCBAQCBzaXplX3QgSFRNTEltYWdlRWxlbWVudDo6
cGVuZGluZ0RlY29kZVByb21pc2VzQ291bnRGb3JUZXN0aW5nKCkgY29uc3QKIAogY29uc3QgQXRv
bVN0cmluZyYgSFRNTEltYWdlRWxlbWVudDo6bG9hZGluZ0ZvckJpbmRpbmdzKCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWFnZXIoImVhZ2VyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBsYXp5KCJsYXp5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gZWFnZXIoImVhZ2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbGF6eSgi
bGF6eSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvJiBhdHRy
aWJ1dGVWYWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjps
b2FkaW5nQXR0cik7CiAgICAgcmV0dXJuIGhhc0xhenlMb2FkYWJsZUF0dHJpYnV0ZVZhbHVlKGF0
dHJpYnV0ZVZhbHVlKSA/IGxhenkgOiBlYWdlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggNzgwYjc5MTkzZDk4NzYzMmI1OTJjOWIyNGQ4NTgwYjRl
YzZhOGU0MC4uMTY1MTBjZjc3Y2VlMzk1MDdlZTA1ZDBkNzI0MjBlZjZhYThiNzg3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
Y2xhc3MgS2V5Z2VuU2VsZWN0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MU2VsZWN0RWxlbWVu
dCB7CiAgICAgS2V5Z2VuU2VsZWN0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAg
IDogSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVudCwgMCkKICAgICB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1r
ZXlnZW4tc2VsZWN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBzZXVk
b0lkKCItd2Via2l0LWtleWdlbi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogCkBAIC0xMzAsNyAr
MTMwLDcgQEAgYm9vbCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURh
dGEmIGZvcm1EYXRhLCBib29sKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MS2V5Z2VuRWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4ga2V5Z2VuKCJrZXlnZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA5ZmU5ZTE0YjU2NTE1OTA2OTlmMDlhOTU1YzZjYjYy
NDMyYmVkNmYwLi45M2E2ZjRjY2Y1M2U0YjMwZDNkMjk5NWU0ZWFlNDMzZjM4ZTc5NDE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4
LDcgQEAgYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGNv
bnN0IEF0b21TdHJpbmcmIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wdGdy
b3VwKCJvcHRncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wdGdyb3Vw
KCJvcHRncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gb3B0Z3JvdXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91
dHB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5j
cHAKaW5kZXggNTZiNzIwNmFlM2JlOGYxMGE4ODE0YWU5YWZhYzYyYmZlYjU2MDlhYy4uMzYwNjY1
YjcyODgwMTY4YjFmZDU5MDU2NWJkMjc0YzhjOWZiYWUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPEhUTUxPdXRwdXRF
bGVtZW50PiBIVE1MT3V0cHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIEQKIAogY29uc3QgQXRvbVN0cmluZyYgSFRNTE91dHB1dEVsZW1lbnQ6OmZvcm1Db250
cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG91dHB1dCgib3V0cHV0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
b3V0cHV0KCJvdXRwdXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG91dHB1dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHAKaW5kZXggN2YwMzU0ZjVjODM5ZjQ1YzVhMmE2Y2M2ZDU3NTFkNGRjZDdi
YjQ0Yi4uMWRiZDQ1NDFiZjMxNjA2ZWU0OTk2ZDAwMDMyNTFhYmUwM2I1ZDIxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC00MjIsNyAr
NDIyLDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFk
b3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAKIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
cGFydE9mU25hcHNob3RPdmVybGF5KGNvbnN0IEV2ZW50VGFyZ2V0KiB0YXJnZXQpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNlbGVjdG9yKCIuc25hcHNo
b3Qtb3ZlcmxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVjdG9yKCIu
c25hcHNob3Qtb3ZlcmxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBhdXRvIHNoYWRvdyA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBpZiAoIXNoYWRvdykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAppbmRleCBlZTQzNzM2NjcyYmVkMjNiNDc5ZjFhMzRkMjI3MDQ3MTc0ZjFlOWViLi4z
MTMzZDAzMTAxNzI0NGEzY2JiNmFiZTNhZmMzM2I2ZTQ4OGRkNWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMTAwLDggKzEwMCw4IEBAIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2Ugc3R5bGVDaGFuZ2Up
CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
ZWxlY3RNdWx0aXBsZSgic2VsZWN0LW11bHRpcGxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
ZWxlY3RPbmUoInNlbGVjdC1vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
ZWxlY3RNdWx0aXBsZSgic2VsZWN0LW11bHRpcGxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc2VsZWN0T25lKCJzZWxlY3Qtb25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBtX211bHRpcGxlID8gc2VsZWN0TXVsdGlwbGUgOiBzZWxl
Y3RPbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5j
cHAKaW5kZXggYTYwMDM4ZmU5NGYyOThiMDhlYTRhYjZlZGFjZDdkMTU1N2FhODc1NS4uYzA2YTNl
NTMzMzgzYTFkNTIxYzNiNjlhZjJjNWZiYjJmM2RkNGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKQEAgLTE2OSwxMCArMTY5LDEwIEBAIHZvaWQg
SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNldFJvd1NwYW5Gb3JCaW5kaW5ncyh1bnNpZ25lZCBuKQog
Y29uc3QgQXRvbVN0cmluZyYgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNjb3BlKCkgY29uc3QKIHsK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90YWJsZXMuaHRt
bCNhdHRyLXRoLXNjb3BlCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHJvdygicm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2woImNvbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBy
b3coInJvdyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbCgiY29sIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sZ3JvdXAoImNvbGdyb3VwIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUg
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c2NvcGVBdHRyKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggZTE5
NTA0YmQ5Yjg3MGI2NjgzM2RjYWIyZmM1NTJmNjE0NmYzMTA0Yi4uYTg5ODgzZmFkMzBkOTc5ZmVl
NmE4YWQzMzQyYzhkMmJiNTM0OTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAKIGNvbnN0
IEF0b21TdHJpbmcmIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVh
KCJ0ZXh0YXJlYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVhKCJ0
ZXh0YXJlYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
dGV4dGFyZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggMzg4ZWNiOGIwMWEwZmM3NzE3NjEyNzA5NDc4OTc1NjRh
NjRjOWVhNi4uM2RjNDYzYmI3ZGMyNmUzZjBiN2U2ZGUyODM5ZWRmM2VhNGYxZmM3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTM5Nyw5ICszOTcsOSBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbXB1
dGVTZWxlY3Rpb25FbmQoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZGlyZWN0
aW9uU3RyaW5nKFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGZvcndhcmQoImZvcndhcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGJhY2t3YXJkKCJiYWNrd2FyZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3J3YXJkKCJm
b3J3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYmFja3dhcmQoImJhY2t3
YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChk
aXJlY3Rpb24pIHsKICAgICBjYXNlIFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOgpAQCAtNTM1LDkg
KzUzNSw4IEBAIGJvb2wgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKCkgY29uc3QKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpCiB7CiAgICAgaWYgKGF1dG8gaW5uZXJU
ZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpblRleHRPbmx5TmFtZSgicGxhaW50ZXh0LW9ubHkiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxzZU5hbWUoImZhbHNlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHBsYWluVGV4dE9ubHlOYW1lKCJwbGFpbnRleHQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBmYWxzZU5hbWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgICAgICBjb25zdCBhdXRvJiB2YWx1ZSA9IGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKCkgPyBwbGFpblRleHRPbmx5TmFtZS5nZXQoKSA6IGZhbHNlTmFtZS5nZXQo
KTsKICAgICAgICAgaW5uZXJUZXh0LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KGNvbnRlbnRlZGl0YWJsZUF0dHIsIHZhbHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0TW9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0TW9k
ZS5jcHAKaW5kZXggYTIwZWFjY2ZmOWM2ZDA1NzY5Yjk4ZDY4YzczZjVhZmMxYjliZTZiZS4uMzQ5
ZDg1YjU2MmU3YmI5YzVhZGZlZDUyNzExZjUzMDVjNDdkZTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dE1vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRNb2RlLmNwcApAQCAtODIsNDkgKzgyLDQ5IEBAIG5hbWVzcGFjZSBJbnB1dE1vZGVOYW1lcyB7
CiAKIGNvbnN0IEF0b21TdHJpbmcmIG5vbmUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBtb2RlKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbW9kZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGV4dCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBtb2RlKCJ0ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZWwoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJ0ZWwiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJ0ZWwiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIHVybCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUo
InVybCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInVybCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgZW1haWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBtb2RlKCJlbWFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1v
ZGUoImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBudW1lcmljKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoIm51bWVyaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRl
Y2ltYWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJk
ZWNpbWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgiZGVjaW1hbCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0K
IAogY29uc3QgQXRvbVN0cmluZyYgc2VhcmNoKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbW9kZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbW9kZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtb2RlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZU5hbWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3Bw
CmluZGV4IGE4YTZlNzlkY2M2OGIyOTZiZmQ4NzE5N2NjZjRiNDZlOWE3ZjllZTQuLjNlMjZkNzBi
NmYwZWM3ZWVmMWQ0OTlhMTlkNGEwYmZhOWQyMjljNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlTmFtZXMuY3BwCkBAIC0zMywxMzkgKzMzLDEzOSBAQCBuYW1lc3BhY2UgSW5wdXRUeXBl
TmFtZXMgewogCiBjb25zdCBBdG9tU3RyaW5nJiBidXR0b24oKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBuYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGNoZWNrYm94
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiY2hlY2ti
b3giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbVN0cmluZyYgY29sb3IoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBuYW1lKCJjb2xvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG5hbWUoImNvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBkYXRlKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoImRhdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGV0aW1l
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRp
bWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWVsb2NhbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lLWxvY2FsIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIGVtYWlsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFt
ZSgiZW1haWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJlbWFpbCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IAogY29uc3QgQXRvbVN0cmluZyYgZmlsZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IG5hbWUoImZpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBuYW1lKCJmaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBoaWRkZW4oKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJoaWRkZW4iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJoaWRkZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGlt
YWdlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiaW1h
Z2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgbW9udGgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBuYW1lKCJtb250aCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5h
bWUoIm1vbnRoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBudW1iZXIoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJudW1iZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBuYW1lKCJudW1iZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHBhc3N3
b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicGFz
c3dvcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29yZCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IAogY29uc3QgQXRvbVN0cmluZyYgcmFkaW8oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBuYW1lKCJyYWRpbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG5hbWUoInJhZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiByYW5nZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInJhbmdlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJl
c2V0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmVz
ZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgc2VhcmNoKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBzdWJtaXQoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJzdWJtaXQiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJzdWJtaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRl
bGVwaG9uZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUo
InRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRlbCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgdGV4dCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KCJ0ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0aW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5hbWUoInRpbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHVybCgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInVybCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInVybCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgd2Vl
aygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIndlZWsi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJ3ZWVrIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKaW5kZXggZTQ4MmIzNjJiMThhN2E1NDk0NTM3
NjQ2NDRjY2ZlN2NiZjUxNTJiMy4uMzIxMTUwY2E3ZWY5NDIxZDc0ZGNkNTJkOGQ2YzI3MjhjMDFi
NTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcApAQCAtMjg5LDE5
ICsyODksMTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xsZXI6OnNldE11dGVkKGJvb2wgZmxhZykKIAog
c3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHBsYXliYWNrU3RhdGVXYWl0aW5nKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdhaXRpbmcoIndhaXRpbmciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAKIHN0YXRp
YyBjb25zdCBBdG9tU3RyaW5nJiBwbGF5YmFja1N0YXRlUGxheWluZygpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGF5aW5nKCJwbGF5aW5nIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBwbGF5aW5nOwogfQogCiBzdGF0aWMgY29u
c3QgQXRvbVN0cmluZyYgcGxheWJhY2tTdGF0ZUVuZGVkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW5kZWQoImVuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZW5kZWQoImVuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBlbmRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAppbmRleCBkYjYzNmUyNjlhMGM1Yjk3OWYzNDUyZmJiYjlhYzA1ZTZmMTIzMWI3Li5k
ZjVlYjM1MGM0MTcwMDEyNjgyODc2OWI3ODU1N2I2MDNlNmZmOGZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjU1LDggKzI1NSw3IEBAIHZvaWQgUmFuZ2VJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAg
IEFTU0VSVChlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2xpZGVyUnVubmFibGVUcmFj
a05hbWUoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJS
dW5uYWJsZVRyYWNrTmFtZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxl
bWVudCgpLT5kb2N1bWVudCgpOwogICAgIGF1dG8gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+c2V0UHNldWRvKHdlYmtpdFNsaWRlclJ1bm5hYmxl
VHJhY2tOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCA3
NzFjZjQ3MTIzMmI4NWVjMzBiMjI2NTU0YTMyOWQ4MGIyNWEwMzYxLi4xODdmM2Y2NGZmOTU2MzAw
MzEyZmViYTBmN2MxMzBhYmNmNzllYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwCkBAIC02NCwxMCArNjQsOSBAQCB2b2lkIFNlYXJjaElucHV0VHlwZTo6YWRkU2Vh
cmNoUmVzdWx0KCkKIAogc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZShT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50JiByZXN1bHRCdXR0b24sIGludCBtYXhSZXN1
bHRzKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJr
aXRTZWFyY2hEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKCItd2Vi
a2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdl
YmtpdFNlYXJjaFJlc3VsdHNCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gd2Via2l0U2VhcmNoRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWRlY29y
YXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1
bHRzRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3VsdHNCdXR0b25O
YW1lKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBpZiAoIW1heFJlc3VsdHMpCiAgICAgICAgIHJlc3VsdEJ1dHRv
bi5zZXRQc2V1ZG8od2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKTsKICAgICBlbHNl
IGlmIChtYXhSZXN1bHRzIDwgMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAppbmRleCAyZjU5ZTQ1MzkyMjk2NDNkMWM4MDNiYzZjZTAyNGVjNmU0NTBlMDM4Li4y
ZGU0M2RhZDVhOWZiNmQ4YzU5MWQ3ZmZmZDQ0ZTFjNDQyNjc4NmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0zNDgsOCArMzQ4LDcgQEAgdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIH0KIAogICAgIGlm
IChzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSgiLXdl
YmtpdC1jYXBzLWxvY2staW5kaWNhdG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENhcHNMb2NrSW5k
aWNhdG9yTmFtZSgiLXdlYmtpdC1jYXBzLWxvY2staW5kaWNhdG9yIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3It
PnNldFBzZXVkbyh3ZWJraXRDYXBzTG9ja0luZGljYXRvck5hbWUpOwogCkBAIC00NTcsOCArNDU2
LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZURhdGFMaXN0RHJvcGRvd25JbmRp
Y2F0b3IoKQogICAgIGlmICghbV9jb250YWluZXIpCiAgICAgICAgIGNyZWF0ZUNvbnRhaW5lcigp
OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdExp
c3RCdXR0b25OYW1lKCItd2Via2l0LWxpc3QtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRMaXN0QnV0dG9u
TmFtZSgiLXdlYmtpdC1saXN0LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93
ZWRTY29wZSgqbV9jb250YWluZXIpOwogICAgIG1fZGF0YUxpc3REcm9wZG93bkluZGljYXRvciA9
IERhdGFMaXN0QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgKnRo
aXMpOwogICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9kYXRhTGlzdERyb3Bkb3duSW5k
aWNhdG9yKTsKQEAgLTc4Miw4ICs3ODAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQ29udGFpbmVyKCkKICAgICBBU1NFUlQoIW1fY29udGFpbmVyKTsKICAgICBBU1NFUlQoZWxl
bWVudCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRUZXh0ZmllbGREZWNvcmF0aW9uQ29udGFpbmVyTmFtZSgiLXdlYmtpdC10ZXh0ZmllbGQt
ZGVjb3JhdGlvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFRleHRmaWVsZERlY29yYXRpb25Db250
YWluZXJOYW1lKCItd2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFNjcmlwdERpc2FsbG93ZWRTY29w
ZTo6RXZlbnRBbGxvd2VkU2NvcGUgYWxsb3dlZFNjb3BlKCplbGVtZW50KCktPnVzZXJBZ2VudFNo
YWRvd1Jvb3QoKSk7CiAKQEAgLTgwMyw4ICs4MDAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlw
ZTo6Y3JlYXRlQXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9u
VAogICAgIGlmIChhdXRvRmlsbEJ1dHRvblR5cGUgPT0gQXV0b0ZpbGxCdXR0b25UeXBlOjpOb25l
KQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7
CiAgICAgbV9hdXRvRmlsbEJ1dHRvbiA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSwgKnRoaXMpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldFBz
ZXVkbyhhdXRvRmlsbEJ1dHRvblR5cGVUb0F1dG9GaWxsQnV0dG9uUHNldWRvQ2xhc3NOYW1lKGF1
dG9GaWxsQnV0dG9uVHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcAppbmRleCBjOGNjNmI0OWU0NmUwY2Y5MGJhYjMyNjVkMTliZGMwMjA4Yzc0Y2UwLi45OWM5
YTY4NDc2NGU3NjAwYjg5MzAwMzg1YjY0MjhhOTk5OTE1OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcApAQCAtMTgxLDE1ICsxODEsMTQgQEAgdm9pZCBWYWxp
ZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKCkKIAogICAgIFNoYWRvd1Jvb3QmIHNoYWRv
d1Jvb3QgPSBtX2VsZW1lbnQtPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKIAotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnVi
YmxlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUFycm93Q2xpcHBlck5hbWUoIi13ZWJraXQtdmFsaWRh
dGlvbi1idWJibGUtYXJyb3ctY2xpcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
VmFsaWRhdGlvbkJ1YmJsZUFycm93TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJv
dyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU1lc3NhZ2VO
YW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVJY29uTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9u
LWJ1YmJsZS1pY29uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnVi
YmxlVGV4dEJsb2NrTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSGVhZGluZ05hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUJvZHlOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWJvZHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVOYW1lKCItd2Via2l0LXZhbGlk
YXRpb24tYnViYmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFs
aWRhdGlvbkJ1YmJsZUFycm93Q2xpcHBlck5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
YXJyb3ctY2xpcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZh
bGlkYXRpb25CdWJibGVBcnJvd05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ci
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxl
TWVzc2FnZU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVJY29uTmFtZSgi
LXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1pY29uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZVRleHRCbG9ja05hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtdGV4dC1ibG9jayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVIZWFkaW5nTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9u
LWJ1YmJsZS1oZWFkaW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
VmFsaWRhdGlvbkJ1YmJsZUJvZHlOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWJvZHki
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCk7CiAgICAgbV9idWJibGUgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcAppbmRleCAyZjE2NmY3MjIyNTYxZDg5YzM5ZTkw
ZjgyY2I3NzIxNDEwOGEwY2ZkLi4xMmQ1MGZjZmE0Y2VkYTdlMjIzMDdmYzZlOWYzNjA3ZmIwYWJk
ZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtl
ckNvbnRyb2wuY3BwCkBAIC00OSw4ICs0OSw3IEBAIFJlZjxEZXRhaWxzTWFya2VyQ29udHJvbD4g
RGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBEZXRhaWxz
TWFya2VyQ29udHJvbDo6RGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFy
a2VyTmFtZSgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0RGV0YWlsc01hcmtl
ck5hbWUoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdERldGFpbHNNYXJrZXJOYW1lKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAppbmRleCA0ZjUxYjUyZTZjNDY3
YjQwMzhiNDdjYTA1NTk3NGU0ZGE3YTVhMGExLi4xZDNlOTJkM2ViNGRlYzIzMGVlYTgwZThlM2E3
OWM3ZGYwMTc3M2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApA
QCAtNzcsOCArNzcsNyBAQCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvYwogICAgIDogSFRNTERpdkVs
ZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1ha2VXZWFrUHRy
KCZlbGVtZW50KSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJOYW1lKCItd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUo
Ii13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFp
bmVyTmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1By
b2dyZXNzU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9n
cmVzc1NoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDZiYzExNzBmZDRmYjk4OWI4NDlhZGU0ZTdjYzM2
YzJhYWI4NTM2ODUuLmY1NzRmMDc0N2QxOWFiMDhiMTBhNDVmMzE5ZTc4NDNhYTI0YjI2YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcApAQCAtOTEsOCArOTEsNyBAQCB2b2lkIFByb2dyZXNzVmFsdWVFbGVtZW50OjpzZXRX
aWR0aFBlcmNlbnRhZ2UoZG91YmxlIHdpZHRoKQogCiBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+
IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0lu
bmVyRWxlbWVudE5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnROYW1lKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1l
bnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNz
SW5uZXJFbGVtZW50PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzSW5uZXJFbGVtZW50
KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NJbm5lckVs
ZW1lbnROYW1lKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTAwLDggKzk5LDcgQEAgUmVmPFBy
b2dyZXNzSW5uZXJFbGVtZW50PiBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIAogUmVmPFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0Jhck5hbWUoIi13ZWJraXQtcHJvZ3Jl
c3MtYmFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0Jhck5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtYmFy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZjxQcm9ncmVzc0Jh
ckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NCYXJFbGVtZW50KGRvY3Vt
ZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NCYXJOYW1lKTsKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5LDggKzEwNyw3IEBAIFJlZjxQcm9ncmVzc0JhckVsZW1l
bnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogUmVm
PFByb2dyZXNzVmFsdWVFbGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdFByb2dyZXNzVmFsdWVOYW1lKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZjxQcm9ncmVzc1ZhbHVlRWxl
bWVudD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc1ZhbHVlRWxlbWVudChkb2N1bWVu
dCkpOwogICAgIHJlc3VsdC0+c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzVmFsdWVOYW1lKTsKICAg
ICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKaW5kZXggMzUzM2U4YmE4MDc3NGRjMmQ2NmMxNWE0ODEyMWM2Mzc4
ZGRhZTZhOS4uNjhhNDkwZTFmYjE0NGU3MzFkM2QwNzQ4Yzg3OTBjOTczY2UxODNiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBA
IC01ODcsOCArNTg3LDggQEAgT3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyVGh1
bWJFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUoY29uc3QgUmVuZGUKIHsKICAgICAvLyBUaGlz
IGRvZXNuJ3QgYWN0dWFsbHkgY29tcHV0ZSBzdHlsZS4gVGhpcyBpcyBqdXN0IGEgaGFjayB0byBw
aWNrIHNoYWRvdyBwc2V1ZG8gaWQgd2hlbiBob3N0IHN0eWxlIGlzIGtub3duLgogCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlclRodW1iU2hhZG93UHNl
dWRvSWQoIi13ZWJraXQtc2xpZGVyLXRodW1iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtZWRp
YVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRo
dW1iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFob3N0
U3R5bGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC02NDEsOCArNjQxLDggQEAg
T3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6cmVz
b2x2ZUN1c3RvbVN0eWxlKGNvbnN0IFIKIHsKICAgICAvLyBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkg
Y29tcHV0ZSBzdHlsZS4gVGhpcyBpcyBqdXN0IGEgaGFjayB0byBwaWNrIHNoYWRvdyBwc2V1ZG8g
aWQgd2hlbiBob3N0IHN0eWxlIGlzIGtub3duLgogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xpZGVyQ29udGFpbmVyKCItd2Via2l0LW1lZGlhLXNs
aWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlckNvbnRhaW5lcigi
LXdlYmtpdC1zbGlkZXItY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbWVkaWFTbGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlckNvbnRhaW5lcigiLXdlYmtp
dC1zbGlkZXItY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgaWYgKCFob3N0U3R5bGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXgg
OWUzMjhmNmM2YjFhY2E3ZmNkMTBlZmU1YmM0ZmUyMjRkY2ZhZDQyMy4uOTg0NmQwM2Q5NjZiM2Y5
MzIwNmI5MTQ0MmZkMjIzYjAyMGNjYTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAtNTUsOCArNTUsNyBAQCBpbmxpbmUgU3Bp
bkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgU3Bp
bkJ1dHRvbk93bmVyJgogICAgICwgbV9wcmVzc1N0YXJ0aW5nU3RhdGUoSW5kZXRlcm1pbmF0ZSkK
ICAgICAsIG1fcmVwZWF0aW5nVGltZXIoKnRoaXMsICZTcGluQnV0dG9uRWxlbWVudDo6cmVwZWF0
aW5nVGltZXJGaXJlZCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0SW5uZXJTcGluQnV0dG9uTmFtZSgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gd2Via2l0SW5uZXJTcGluQnV0dG9uTmFtZSgiLXdlYmtpdC1pbm5lci1zcGluLWJ1
dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRIYXNDdXN0
b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKICAgICBzZXRQc2V1ZG8od2Via2l0SW5uZXJTcGlu
QnV0dG9uTmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA3OTM0ZGRjNWUyNmNlYmVlMDk2YTY4
OGEwNmM1MmY2NTIzMGMyZGM3Li5iNmQ2OWMxYzQ4ZDQyNDllZTQ2MGNjZTVjZjk3NWVlMjU3NGRh
NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTE4Miw4ICsxODIsNyBAQCBPcHRpb25hbDxTdHlsZTo6
RWxlbWVudFN0eWxlPiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OnJlc29sdmVDdXN0b21T
dHlsZShjbwogaW5saW5lIFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpUZXh0Q29udHJv
bFBsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxl
bWVudChkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBwbGFjZWhvbGRlck5hbWUoInBsYWNlaG9sZGVyIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFjZWhv
bGRlck5hbWUoInBsYWNlaG9sZGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHNldFBzZXVkbyhwbGFjZWhvbGRlck5hbWUpOwogICAgIHNldEhhc0N1c3RvbVN0eWxl
UmVzb2x2ZUNhbGxiYWNrcygpOwogfQpAQCAtMjU2LDkgKzI1NSw4IEBAIGJvb2wgU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQog
aW5saW5lIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRDYW5jZWxC
dXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KGRp
dlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHdlYmtpdFNlYXJjaENhbmNlbEJ1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWNhbmNl
bC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0U2VhcmNoQ2FuY2VsQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1
dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHNldEhhc0N1c3Rv
bVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDIyZjYyMDk2
ZGNiMGZjZThhNjNkMGY4YzQ4ZDQ1OWFkMDMxZDFhNWQuLjk3NWE2NWIwY2M0NzM5YWM4NmQ3NzJl
NzE5NmVhMGJlOTYzZDI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC00MSw4ICs0MSw3IEBAIFJl
ZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvYykKIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OllvdVR1YmVF
bWJlZFNoYWRvd0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1l
bnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUoIi13ZWJr
aXQtcGx1Z2luLXJlcGxhY2VtZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUo
Ii13ZWJraXQtcGx1Z2luLXJlcGxhY2VtZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHNldFBzZXVkbyh3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAppbmRleCA5NjQzMTZhMjJlMmFmM2E0Mjk3
ZTk4ZTczMTM0NjI1NzY1YWM5ZGY2Li42ZDgwMWE2MTVmMTE2YjRkNTk2MjdlMjg5YWE2M2VkMTZm
NmNlYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKQEAgLTk0LDggKzk0LDcg
QEAgUmVmUHRyPEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBJbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYzo6dHJ5Q3JlYXRlKEQKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdlYmtpdC1pbWFn
ZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSgi
eC13ZWJraXQtaW1hZ2UtY29udHJvbHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogCiAgICAgYXV0byBidXR0b24gPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB4V2Via2l0SW1hZ2VD
b250cm9sc0J1dHRvbk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCAyZjlk
ZjQ5YzIyZWJlYTBiOGU0NTkyYWYxYTU2NDdiNjc2NTFmMjliLi4zYWE0NTQ5YzEzYzg3NTE3NTUw
YjNmNzFmMzg0OTc4MmI2ZDBiODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAt
ODYsOCArODYsNyBAQCBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZShEb2N1bWVudCYgZAogICAgIGlmICghZG9jdW1lbnQu
cGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUoIngtd2Via2l0
LWltYWdlLWNvbnRyb2xzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUoIngtd2Via2l0
LWltYWdlLWNvbnRyb2xzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAg
ICAgUmVmPEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigq
bmV3IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYyhkb2N1bWVudCkpOwogICAgIGNvbnRyb2xz
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y2xhc3NBdHRy
LCB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVk
aW9UcmFjay5jcHAKaW5kZXggMDIwOWY5ZWMxYzAyYzk3NGZkNGU2MGIxZmQ0MDAzNzg2MzgzNjBj
My4uMjNhOTFkMDAwYWNiYmUxMDI1YzA1NGJmMmM1YjJiY2U2MTEwOGMyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC00MSwzNyArNDEsMzcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2
ZUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhbHRl
cm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBh
bHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRp
b1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBkZXNjcmlwdGlvbigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBkZXNjcmlwdGlvbigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBtYWluKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBtYWluOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNr
OjptYWluRGVzY0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBtYWluRGVzYygibWFpbi1kZXNjIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbWFpbkRlc2MoIm1haW4tZGVzYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbWFpbkRlc2M7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJh
Y2s6OnRyYW5zbGF0aW9uS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJhbnNsYXRpb247CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRleCBjNjVhMTE4Nzll
NjUxMzIzOTUxMzE0MzcyODA3YmNjZDZlMWZjYzY0Li5kNGUwZjY5MTMxYTFiYjBhYzM0YTNhNjBh
ZjUwMjU3MjE4NDQxNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3Bw
CkBAIC01MiwzNyArNTIsMzcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRleHRUcmFj
ayk7CiAKIGNvbnN0IEF0b21TdHJpbmcmIFRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxlcygi
c3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJz
dWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHN1YnRpdGxlczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGNhcHRpb25zS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRp
b25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRpb25z
KCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gY2FwdGlvbnM7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBkZXNjcmlwdGlvbnNL
ZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZGVzY3JpcHRpb25zKCJkZXNjcmlwdGlvbnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBkZXNjcmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb25zOwogfQogCiBzdGF0aWMgY29uc3Qg
QXRvbVN0cmluZyYgY2hhcHRlcnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJzIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGFwdGVyczsKIH0KIAogc3RhdGljIGNvbnN0
IEF0b21TdHJpbmcmIG1ldGFkYXRhS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG1ldGFkYXRhKCJtZXRhZGF0YSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG1ldGFkYXRhKCJtZXRhZGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAgICAgCiBzdGF0aWMg
Y29uc3QgQXRvbVN0cmluZyYgZm9yY2VkS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZCgiZm9yY2VkIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGZvcmNlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDY1NTEwOGE1OTdjOTUzZmMwODc5ZWYwOGE4
MzJjMTI0NGI4ZGZkYTEuLjdkYzhhYTNmNmE0ODZkNDFjZmI3MDk3ZTBlNDNiNmFjOGY1NTlkOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTY0LDE5
ICs2NCwxOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNrQ3VlQm94KTsK
IAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1ZSgiY3VlIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGN1ZTsKIH0KIAogY29uc3QgQXRvbVN0
cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCb3hTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrRGlzcGxheUJveFNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkKCItd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIFRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1ZUJhY2tk
cm9wU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5LWJhY2tk
cm9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ryb3BTaGFkb3dQ
c2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ryb3AiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGN1ZUJhY2tkcm9wU2hh
ZG93UHNldWRvSWQ7CiB9CiAKQEAgLTQ4OCw4ICs0ODgsNyBAQCB2b2lkIFRleHRUcmFja0N1ZTo6
cmVidWlsZERpc3BsYXlUcmVlKCkKICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxs
b3dlZFNjb3BlIGFsbG93ZWRTY29wZUZvclJlZmVyZW5jZVRyZWUoKm1fY3VlTm9kZSk7CiAKICAg
ICBpZiAoIW1fZGlzcGxheVRyZWUpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdEdlbmVyaWNDdWVSb290TmFtZSgiLXdlYmtpdC1nZW5lcmlj
LWN1ZS1yb290IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdEdlbmVyaWNDdWVSb290TmFtZSgiLXdlYmtp
dC1nZW5lcmljLWN1ZS1yb290IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICBtX2Rpc3BsYXlUcmVlID0gVGV4dFRyYWNrQ3VlQm94OjpjcmVhdGUob3duZXJEb2N1
bWVudCgpLCAqdGhpcyk7CiAgICAgICAgIG1fZGlzcGxheVRyZWUtPnNldFBzZXVkbyh3ZWJraXRH
ZW5lcmljQ3VlUm9vdE5hbWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVn
aW9uLmNwcAppbmRleCAzYTZlNDcyMWU3NzJkOGZkMWRiNTllZDgzM2ZlN2IyZDU0MTY4MzZmLi5j
ZDhjODdiMDI3ZTdhNDc1MzhjMmFlMmJhOGZiZmNlNDNiYzMyODhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb24uY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gVlRUUmVnaW9uOjpzZXRWaWV3cG9ydEFuY2hvclkoZG91YmxlIHZhbHVlKQogCiBzdGF0
aWMgY29uc3QgQXRvbVN0cmluZyYgdXBLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHVwS2V5d29yZCgidXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHVwS2V5d29yZDsKIH0KIApAQCAtMjYyLDIxICsyNjIsMjEg
QEAgdm9pZCBWVFRSZWdpb246OnBhcnNlU2V0dGluZ1ZhbHVlKFJlZ2lvblNldHRpbmcgc2V0dGlu
ZywgVlRUU2Nhbm5lciYgaW5wdXQpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFZUVFJlZ2lvbjo6dGV4
dFRyYWNrQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGlu
Z0NsYXNzKCJzY3JvbGxpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFj
a1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0NsYXNzKCJzY3JvbGxpbmciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25DdWVDb250
YWluZXJTY3JvbGxpbmdDbGFzczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0
ZXh0VHJhY2tDdWVDb250YWluZXJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyUHNldWRv
SWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24tY29udGFpbmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZCgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25DdWVDb250YWlu
ZXJQc2V1ZG9JZDsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJhY2tS
ZWdpb25TaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4
dC10cmFjay1yZWdpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1Jl
Z2lvblNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9u
U2hhZG93UHNldWRvSWQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNw
cAppbmRleCBiNWRmMTgzYWJkMmZmOGNlMWI4ZjM5ZWJmZDFkMjBmNTYwYzA1OWEzLi4zOGVkNTFj
NzZlMWY1M2MwOGJlNzIwYWU4ZDc2NjRiNDgwMTQ0NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTQ2LDM3ICs0NiwzNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVybmF0
aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVy
bmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJh
Y2s6OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZp
ZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gY2FwdGlvbnMoIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJh
Y2s6OnNpZ25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc2lnbigic2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNp
Z24oInNpZ24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IHNpZ247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0
aXRsZXMoInN1YnRpdGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRp
dGxlcygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXgg
ZTRhOTRhNTA1OTYxYWEzNzk3ZmE2ZDA0ZWE2NWM2NDU2NWFkOTZkZC4uNzUwOGQ3NWFjZmExOWUx
MWRmYTI1NmI2NjczNDRhNjMzZGEyM2FjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAg
Y29uc3QgQXRvbVN0cmluZyYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkg
Y29uc3QKICAgICBpZiAoIW1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBtX2luaXRpYXRvck5hbWU7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gZGVmYXVsdE5hbWUoIm90aGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZGVmYXVsdE5hbWUoIm90aGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBkZWZhdWx0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDg5YjZiNmQ3ZTFmNGMxYTkxZWU2ZTI1MjE1NTAwN2RmZTA5YTAwOTguLmE3MDIz
YTZkMzc1MGI2MTYwNzc3OWRiZGYzYmExZDAwNzQ1YWU3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTM0MDYsMTAgKzM0MDYsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmludGVybmFsS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5
RXZlbnQKIAogc3RhdGljIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uRm9yS2V5KGNvbnN0
IEF0b21TdHJpbmcmIGtleUlkZW50aWZpZXIpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IERvd24oIkRvd24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IFVwKCJVcCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gTGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gUmlnaHQoIlJpZ2h0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IFVwKCJVcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IExlZnQoIkxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBSaWdo
dCgiUmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBGb2N1
c0RpcmVjdGlvbiByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbk5vbmU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmNwcAppbmRleCAyMjk2YThmOWRkNTlmMmFlOTg0NWQ2ZTIyN2EzNzg1M2QxZmM1OTVlLi5lMmE0
YzA4MGFkNDJiNjExY2VjOTM3M2U2MjMzMWU1ODBkMGM4NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
Y3BwCkBAIC02ODQsNyArNjg0LDcgQEAgYm9vbCBRdWlya3M6OnNob3VsZEJ5cGFzc0JhY2tGb3J3
YXJkQ2FjaGUoKSBjb25zdAogICAgIC8vIGJlY2F1c2UgaXQgcHV0cyBhbiBvdmVybGF5ICh3aXRo
IGNsYXNzICJkb2NzLWhvbWVzY3JlZW4tZnJlZXplLWVsLWZ1bGwiKSBvdmVyIHRoZSBwYWdlIHdo
ZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBmYWlscwogICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIGNv
bWluZyBiYWNrIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSAoZS5nLiBpbiAncGFnZXNob3cn
IGV2ZW50IGhhbmRsZXIpLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3NjcwMDY0Pi4KICAgICAvLyBO
b3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGVjayBmb3IgZG9jcy5nb29nbGUuY29tIGhvc3QgYmVj
YXVzZSBvZiBob3N0ZWQgRyBTdWl0ZSBhcHBzLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBnb29nbGVEb2NzT3ZlcmxheURpdkNsYXNzKCJkb2NzLWhvbWVzY3Jl
ZW4tZnJlZXplLWVsLWZ1bGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBnb29n
bGVEb2NzT3ZlcmxheURpdkNsYXNzKCJkb2NzLWhvbWVzY3JlZW4tZnJlZXplLWVsLWZ1bGwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0byogZmlyc3RDaGlsZElu
Qm9keSA9IG1fZG9jdW1lbnQtPmJvZHkoKSA/IG1fZG9jdW1lbnQtPmJvZHkoKS0+Zmlyc3RDaGls
ZCgpIDogbnVsbHB0cjsKICAgICBpZiAoaXM8SFRNTERpdkVsZW1lbnQ+KGZpcnN0Q2hpbGRJbkJv
ZHkpKSB7CiAgICAgICAgIGF1dG8mIGRpdiA9IGRvd25jYXN0PEhUTUxEaXZFbGVtZW50PigqZmly
c3RDaGlsZEluQm9keSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCBlZTBkNTY4OGNiODgxYWRkZTAwYTY5ZDZiNjNk
OWVjZTlhZDY3MzdkLi45M2M0OWJjZjZkOTFmNGRjZGY1NDY3MTRhNTQzNjgzZTEyZDQ3OTc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1h
dGlvbi5jcHAKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBk
YXRlS2V5ZnJhbWVBbmltYXRpb25zKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlcgogICAg
IC8vIFRvc3MgdGhlIGFuaW1hdGlvbiBvcmRlciBtYXAuCiAgICAgbV9rZXlmcmFtZUFuaW1hdGlv
bk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5v
bmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgCiAgICAg
Ly8gTm93IG1hcmsgYW55IHN0aWxsIGFjdGl2ZSBhbmltYXRpb25zIGFzIGFjdGl2ZSBhbmQgYWRk
IGFueSBuZXcgYW5pbWF0aW9ucy4KICAgICBpZiAodGFyZ2V0U3R5bGUuYW5pbWF0aW9ucygpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IGIxNDk1MTg0NDczZGNhZTFh
ZmM1Y2E5N2Q0NDRhYmM2NTkxN2I4YzguLjA4NGY0MzI5NWQ4MTVlMzAwMzMyNWQ5ODNiNzcwMzkz
ZDk2OWE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC00MDMsNyAr
NDAzLDcgQEAgY29uc3QgVmVjdG9yPEF0b21TdHJpbmc+JiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudDo6b2JzZXJ2ZWRFdmVudE5hbWVzKCkKIAogY29uc3QgQXRvbVN0cmluZyYgIFBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBldmVudE5hbWVBbGwoImFsbEV2ZW50cyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRz
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBldmVudE5h
bWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggZThlMzlj
OTI2M2Q3YTU4NzNiYTljMTc0YjU4ZTQxZmY4M2Q3N2Q0MC4uM2FkNjliN2U3NDNjZWExODFkNGNm
ZmM1OGJmMmQyYmU3ODY2NDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0K
QEAgLTE4NCw3ICsxODQsNyBAQCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50OjpvYnNlcnZlZEV2ZW50TmFtZXMoKQogCiBjb25zdCBBdG9t
U3RyaW5nJiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZXZlbnROYW1lQWxsKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc0V2ZW50TmFtZUFsbCA9
ICJhbGxFdmVudHMiOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gc0V2ZW50TmFtZUFsbCA9ICJhbGxFdmVudHMiOwogICAgIHJldHVybiBzRXZl
bnROYW1lQWxsOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmNwcAppbmRleCA3ZmNhYTQ0ZDU0YTM4NzQyZjdkZDU4NzQwMDZhYTQzNzZlMjU4NDhj
Li5hYmExYTg0MjY4MDI1YzEyZjc1ZDY3MzczYjkzMzI2Y2VjNmIzZjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTE0OSwxMiArMTQ5
LDEyIEBAIHN0YXRpYyBGb250UGxhdGZvcm1EYXRhQ2FjaGUmIGZvbnRQbGF0Zm9ybURhdGFDYWNo
ZSgpCiAKIGNvbnN0IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZShj
b25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBhcmlhbCgiQXJpYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNvdXJpZXIoIkNv
dXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNvdXJpZXJOZXcoIkNvdXJpZXIgTmV3IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBoZWx2ZXRpY2EoIkhlbHZldGljYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdGltZXMo
IlRpbWVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcmlhbCgiQXJpYWwiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyKCJDb3VyaWVyIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWx2ZXRpY2EoIkhlbHZldGljYSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRpbWVzKCJUaW1lcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIHBsYXRmb3Jt
U3BlY2lmaWNBbHRlcm5hdGUgPSBwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoZmFtaWx5TmFt
ZSk7CiAgICAgaWYgKCFwbGF0Zm9ybVNwZWNpZmljQWx0ZXJuYXRlLmlzTnVsbCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGM4
MjhiYmU3ZTc3NTVlZTcxMTIxNzIzZTlmMTcwMjdlZDFmYWUyNDYuLjVjMmFhZjhhY2NiMzE2MDAw
OGRjYmZhZDA5ZjRmNWZhOGZhNzkxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTI5NywxMyArMjk3LDEzIEBAIHN0YXRpYyB2
b2lkIGFkZE1lZGlhRW5naW5lKHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllckZhY3Rvcnk+JiYg
ZmFjdG9yeSkKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJl
YW0oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcHBs
aWNhdGlvbk9jdGV0U3RyZWFtKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCJhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW07CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3Ry
aW5nJiB0ZXh0UGxhaW4oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0ZXh0UGxhaW4oInRleHQvcGxhaW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0ZXh0UGxhaW4oInRleHQvcGxhaW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRleHRQbGFpbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFt
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9D
RE1GYWlyUGxheVN0cmVhbWluZy5jcHAKaW5kZXggMmQ2ZTlhYTYzYzRlMTk5ZGQ5OTJlMTc0NDJl
NWRhZTBlNjM0MThiZS4uOGFjNDhlYzVkYzY5YjMxNDk1N2JhNDMzZjk3MTAxZWEyNzc2OTY0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCkBAIC03NSwxMyAr
NzUsMTMgQEAgY29uc3QgVmVjdG9yPEZvdXJDQz4mIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWlu
Zzo6dmFsaWRGYWlyUGxheVN0cmVhbWluZ1NjaGVtZXMKIAogY29uc3QgQXRvbVN0cmluZyYgQ0RN
UHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpzaW5mTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2lu
ZiIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoInNpbmYiKSB9OwogICAgIHJldHVy
biBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1p
bmc6OnNrZE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBz
a2QgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2tkIikgfTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNrZCB7IE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJza2QiKSB9OwogICAgIHJldHVybiBza2Q7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IDk5YTkzYzI1OThkNDc2YzE0MjY5YjQ0ZjkxYjEzMDdkNGM1N2I5OGQuLjNi
ODA0Mjg5ZTEzY2VkOGMxMjdkMmMwMDk0ZTFmMDQ5M2ZhN2M3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtMzAxOCwxMiArMzAxOCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaQog
I2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIG1ldGFk
YXRhVHlwZShOU1N0cmluZyAqYXZNZXRhZGF0YUtleVNwYWNlKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVVc2VyRGF0YSgiY29tLmFwcGxl
LnF1aWNrdGltZS51ZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3Jn
Lm1wNHJhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFw
cGxlLnF1aWNrdGltZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpVHVuZXNNZXRhZGF0
YSgiY29tLmFwcGxlLml0dW5lcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEo
Im9yZy5pZDMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhsc0RhdGVSYW5nZU1ldGFkYXRhKCJj
b20uYXBwbGUucXVpY2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHF1aWNrVGltZVVzZXJEYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcXVpY2tUaW1lTWV0YWRhdGEoImNvbS5hcHBsZS5xdWlj
a3RpbWUubWR0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFk
YXRhKCJjb20uYXBwbGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
aWQzTWV0YWRhdGEoIm9yZy5pZDMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBo
bHNEYXRlUmFuZ2VNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS5ITFMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoW2F2TWV0YWRhdGFLZXlTcGFjZSBp
c0VxdWFsVG9TdHJpbmc6QVZNZXRhZGF0YUtleVNwYWNlUXVpY2tUaW1lVXNlckRhdGFdKQogICAg
ICAgICByZXR1cm4gcXVpY2tUaW1lVXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5k
ZXggZjYyOGFjMmI2Y2U3NGZmYzUyMDZiMWEyZDljZmY1NzkyMTkwOTdkNS4uMzMyZDJlZmMwNmZl
OWE0MGFhMWVjNmYyZTQ3NWQ4ZTMyNzcyZDE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApA
QCAtNzA1LDEzICs3MDUsMTMgQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXQKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIC8vIFN1YnN0aXR1dGUgdGhlIGRlZmF1bHQgbW9ub3NwYWNlIGZv
bnQgZm9yIHdlbGwta25vd24gbW9ub3NwYWNlIGZvbnRzLgogICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICJtb25hY28iKSB8fCBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShmYW1pbHksICJtZW5sbyIpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBjb3VyaWVyKCJjb3VyaWVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoImNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2NyaXB0aW9uLCBj
b3VyaWVyKTsKICAgICB9CiAKICAgICAvLyBTdWJzdGl0dXRlIFZlcmRhbmEgZm9yIEx1Y2lkYSBH
cmFuZGUuCiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgImx1
Y2lkYSBncmFuZGUiKSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gdmVyZGFuYSgidmVyZGFuYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB2ZXJkYW5hKCJ2ZXJkYW5hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICByZXR1cm4gZm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwgdmVyZGFuYSk7CiAgICAg
fQogI2VuZGlmCkBAIC03MjAsOCArNzIwLDggQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c2lt
aWxhckZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXQKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwYXNodG8oTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoIlBhc2h0byIpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1cmR1
KE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJVcmR1IikpOwogICAgIHN0YXRpYyBTdHJpbmcqIG1h
dGNoV29yZHNbM10gPSB7ICZhcmFiaWMuZ2V0KCksICZwYXNodG8uZ2V0KCksICZ1cmR1LmdldCgp
IH07Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGdlZXphUGxhaW4oIkdl
ZXphUHJvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBnZWV6YUJvbGQoIkdlZXphUHJvLUJvbGQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBnZWV6YVBsYWluKCJHZWV6YVBybyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBmb3IgKFN0cmluZyogbWF0Y2hX
b3JkIDogbWF0Y2hXb3JkcykgewogICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zSWdub3JpbmdB
U0NJSUNhc2UoKm1hdGNoV29yZCkpCiAgICAgICAgICAgICByZXR1cm4gZm9udEZvckZhbWlseShk
ZXNjcmlwdGlvbiwgaXNGb250V2VpZ2h0Qm9sZChkZXNjcmlwdGlvbi53ZWlnaHQoKSkgPyBnZWV6
YUJvbGQgOiBnZWV6YVBsYWluKTsKQEAgLTE1MDcsMTAgKzE1MDcsMTAgQEAgY29uc3QgQXRvbVN0
cmluZyYgRm9udENhY2hlOjpwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbVN0
cmluZyYgZmFtaWwKICAgICBzdGF0aWMgY29uc3QgVUNoYXIgd2VpcnVhbllhSGVpU3RyaW5nW10g
PSB7IDB4NWZhZSwgMHg4ZjZmLCAweDk2YzUsIDB4OWVkMSB9OwogICAgIHN0YXRpYyBjb25zdCBV
Q2hhciB3ZWlydWFuWmhlbmdIZWl0aVN0cmluZ1tdID0geyAweDVmYWUsIDB4OGVkZiwgMHg2YjYz
LCAweDllZDEsIDB4OWFkNCB9OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IHNvbmd0aVNDKCJTb25ndGkgU0MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNvbmd0aVRDKCJTb25n
dGkgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0ZhbmcgU0Mi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGhlaXRpVENSZXBsYWNlbWVudCgiUGluZ0ZhbmcgVEMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzb25ndGlTQygiU29uZ3RpIFNDIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc29uZ3RpVEMoIlNvbmd0aSBUQyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0ZhbmcgU0Mi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWl0aVRDUmVwbGFjZW1lbnQoIlBp
bmdGYW5nIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dp
dGNoIChmYW1pbHlOYW1lLmxlbmd0aCgpKSB7CiAgICAgY2FzZSAyOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29y
ZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVt
Rm9udERhdGFiYXNlQ29yZVRleHQuY3BwCmluZGV4IGNjNGUyYmM0NDZmMjhlNDlkZWI1MzM2YTMz
YjBiYmY3OTg2ZmMyZDAuLjM1MGIxNmE3ZTFlYzJhNTNjNDlmOTEyYWRjZTY3OTExNTJmM2NhMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3Rl
bUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKQEAgLTIxMywyMiAr
MjEzLDIyIEBAIFN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRl
cnMgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5CiAKICAgICBzd2l0Y2ggKHN5c3RlbUZv
bnRLaW5kKSB7CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6U3lzdGVtVUk6IHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygi
c3lzdGVtLXVpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJ
ID0gQXRvbVN0cmluZygic3lzdGVtLXVpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICByZXN1bHQuZm9udE5hbWUgPSBzeXN0ZW1VSS5nZXQoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJU2VyaWY6IHsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJU2VyaWYgPSBBdG9t
U3RyaW5nKCJ1aS1zZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
eXN0ZW1VSVNlcmlmID0gQXRvbVN0cmluZygidWktc2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJU2VyaWYu
Z2V0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpV
SU1vbm9zcGFjZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
c3lzdGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5nKCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5n
KCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJTW9ub3NwYWNlLmdldCgpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlSb3VuZGVkOiB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1VSVJvdW5kZWQgPSBB
dG9tU3RyaW5nKCJ1aS1yb3VuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHN5c3RlbVVJUm91bmRlZCA9IEF0b21TdHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3Rl
bVVJUm91bmRlZC5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApp
bmRleCBhMGFhMjUwM2VhNWViZWM5Y2JlYTVhYzcyN2Y3MDYwNTkzOTQ1NzU1Li5lZjY5NTIxNjRm
MDMwZjViMGY3NGEzODA1ZjM1N2JhZTYyYjdjYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMzcs
NyArMzcsNyBAQCBSZWY8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyRWZm
ZWN0JiBzb3VyY2VFZmZlY3QpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNvdXJjZUFscGhhOjplZmZl
Y3ROYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHNfZWZmZWN0TmFtZSgiU291cmNlQWxwaGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5j
cHAKaW5kZXggMDQ1ZWUwMWYyMjNlNDIyZmZmMDQ2ZmVhMmY0Y2EyZGRlMGRkZDcxMi4uODhhMzZh
NDEwMjZiZDNhNTg1NDQ3ODIwMjc0YzExMDdkNzgzOTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
CkBAIC0zNiw3ICszNiw3IEBAIFJlZjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVh
dGUoRmlsdGVyJiBmaWx0ZXIpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNvdXJjZUdyYXBoaWM6OmVm
ZmVjdE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzX2VmZmVjdE5hbWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzX2VmZmVjdE5hbWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KaW5k
ZXggNGYwOGNhMDZkMjRlOWRjM2ZhMDQzNDE4YzNjYmZjMjgyNzZlZTFkMS4uNWY0ZGQ4YTcxYWFm
NzNlZjBjZWNkOTE4ZTlkNDhjZDRkNzNmZjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCkBAIC01Myw4ICs1Myw4IEBA
IEZvbnRQbGF0Zm9ybURhdGEqIEZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KGNvbnN0
IFVJbnQzMiBjLCBjb25zdCBGb250RGVzCiB7CiAgICAgQVNTRVJUKHJlcXVpcmVzQ3VzdG9tRmFs
bGJhY2tGb250KGMpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBo
ZWx2ZXRpY2FGYW1pbHkoIkhlbHZldGljYSBOZXVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lc05l
d1JvbWFuUFNNVEZhbWlseSgiVGltZXNOZXdSb21hblBTTVQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBoZWx2ZXRpY2FGYW1pbHkoIkhlbHZldGljYSBOZXVlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXNOZXdSb21hblBTTVRGYW1pbHkoIlRpbWVzTmV3
Um9tYW5QU01UIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgQXRv
bVN0cmluZyogZmFtaWx5ID0gbnVsbHB0cjsKICAgICBzd2l0Y2ggKGMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggMTdjYjUwZTNhNTU1MTA1NWIzM2I1NmQz
YTUxYTY2ODNiNzdmYzAyMy4uMDk4OTk4MGU0NjU2OThkZWNmNjRlNGY0NzViNTQxMmJiODIwOGRi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFRFWE1BUF9ERUNMQVJFX1ZBUklB
QkxFKEFjY2Vzc29yLCBOYW1lLCBUeXBlKSBcCiAgICAgR0x1aW50IEFjY2Vzc29yIyNMb2NhdGlv
bigpIHsgXAotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZShOYW1lLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7IFwKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKE5h
bWUsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAogICAgICAgICByZXR1cm4g
Z2V0TG9jYXRpb24obmFtZS5nZXQoKSwgVHlwZSk7IFwKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXgg
NjhkNDhlODc2NDk1YTgyNjdlNzU4OTczZjFkZTVhYmMyZTE4MTVmOC4uNGE0MDk3ZWQ0ZmFkYjUz
MDFlNzQ5MDBiNjIxOTRmODg2ZDI1ZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM3Myw3ICszNzMsNyBA
QCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpmb250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbgogCiBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVz
b3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1l
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZmFsbGJhY2tGb250TmFtZTsKIAogICAgIGlmICghZmFsbGJhY2tGb250TmFtZS5nZXQoKS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiAqZm9udEZvckZhbWlseShmb250RGVzY3JpcHRpb24sIGZh
bGxiYWNrRm9udE5hbWUpOwpAQCAtMzg0LDcgKzM4NCw3IEBAIFJlZjxGb250PiBGb250Q2FjaGU6
Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpCiAgICAgLy8gU2VhcmNoIGFsbCB0eXBpY2FsIFdpbmRvd3MtaW5zdGFsbGVkIGZ1bGwgVW5p
Y29kZSBmb250cy4KICAgICAvLyBTb3J0ZWQgYnkgbW9zdCB0byBsZWFzdCBnbHlwaHMgYWNjb3Jk
aW5nIHRvIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW5pY29kZV90eXBlZmFjZXMKICAg
ICAvLyBTdGFydCB3aXRoIFRpbWVzIE5ldyBSb21hbiBhbHNvIHNpbmNlIGl0IGlzIHRoZSBkZWZh
dWx0IGlmIHRoZSB1c2VyIGRvZXNuJ3QgY2hhbmdlIHByZWZzLgotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7
CiAgICAgICAgIEF0b21TdHJpbmcoIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSwKICAgICAgICAgQXRvbVN0cmluZygiTWljcm9zb2Z0IFNhbnMgU2Vy
aWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksCiAgICAgICAgIEF0b21TdHJp
bmcoIlRhaG9tYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKQEAgLTY5NCw4
ICs2OTQsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogCiBjb25zdCBBdG9tU3RyaW5nJiBG
b250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBm
YW1pbHlOYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1l
c05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1pY3Jvc29mdFNh
bnNTZXJpZigiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBtaWNyb3NvZnRTYW5zU2VyaWYoIk1pY3Jvc29mdCBTYW5zIFNlcmlm
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChmYW1p
bHlOYW1lLmxlbmd0aCgpKSB7CiAgICAgLy8gT24gV2luZG93cywgd2UgZG9uJ3Qgc3VwcG9ydCBi
aXRtYXAgZm9udHMsIGJ1dCBsZWdhY3kgY29udGVudCBleHBlY3RzIHN1cHBvcnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9u
c2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3Vy
Y2VSZXNwb25zZUNvY29hLm1tCmluZGV4IDg1YWExZTE0MTViMDBmNTExOWVkN2ExYjY0M2I5NmFm
ZDIwYjc1MDkuLmI4YjA1N2I5MjkzY2UyYTI5OTAxZjFiOGEwM2I4NGFlZDcwYmQyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNw
b25zZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
UmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIGlubGlu
ZSBBdG9tU3RyaW5nIGV4dHJhY3RIVFRQU3RhdHVzVGV4dChDRkhUVFBNZXNzYWdlUmVmIG1lc3Nh
Z2VSZWYpCiAgICAgaWYgKGF1dG8gaHR0cFN0YXR1c0xpbmUgPSBhZG9wdENGKENGSFRUUE1lc3Nh
Z2VDb3B5UmVzcG9uc2VTdGF0dXNMaW5lKG1lc3NhZ2VSZWYpKSkKICAgICAgICAgcmV0dXJuIGV4
dHJhY3RSZWFzb25QaHJhc2VGcm9tSFRUUFN0YXR1c0xpbmUoaHR0cFN0YXR1c0xpbmUuZ2V0KCkp
OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGRlZmF1bHRTdGF0dXNU
ZXh0KCJPSyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRTdGF0dXNU
ZXh0KCJPSyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
ZGVmYXVsdFN0YXR1c1RleHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Db21wbGV4TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29t
cGxleExpbmVMYXlvdXQuY3BwCmluZGV4IDI5ZWJlNTZhZjA5MTEyYjMxZTUzNjlmZTg5ZWE3ODk3
NGJmNzdlMDAuLjQxYmI1MmYwNmVmNDg2YjcxYTRjZTc2ZDgzMjBmMzdlOTE4ZTI5NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcApAQCAtMjE1
OCw3ICsyMTU4LDcgQEAgdm9pZCBDb21wbGV4TGluZUxheW91dDo6Y2hlY2tMaW5lc0ZvclRleHRP
dmVyZmxvdygpCiAgICAgLy8gRGV0ZXJtaW5lIHRoZSB3aWR0aCBvZiB0aGUgZWxsaXBzaXMgdXNp
bmcgdGhlIGN1cnJlbnQgZm9udC4KICAgICAvLyBGSVhNRTogQ1NTMyBzYXlzIHRoaXMgaXMgY29u
ZmlndXJhYmxlLCBhbHNvIG5lZWQgdG8gdXNlIDB4MDAyRSAoRlVMTCBTVE9QKSBpZiBob3Jpem9u
dGFsIGVsbGlwc2lzIGlzICJub3QgcmVuZGVyYWJsZSIKICAgICBjb25zdCBGb250Q2FzY2FkZSYg
Zm9udCA9IHN0eWxlKCkuZm9udENhc2NhZGUoKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbGxpcHNpc1N0
cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICBjb25zdCBGb250Q2FzY2FkZSYgZmlyc3RM
aW5lRm9udCA9IG1fZmxvdy5maXJzdExpbmVTdHlsZSgpLmZvbnRDYXNjYWRlKCk7CiAgICAgZmxv
YXQgZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA9IGZpcnN0TGluZUZvbnQud2lkdGgobV9mbG93LmNv
bnN0cnVjdFRleHRSdW4oJmhvcml6b250YWxFbGxpcHNpcywgMSwgbV9mbG93LmZpcnN0TGluZVN0
eWxlKCkpKTsKICAgICBmbG9hdCBlbGxpcHNpc1dpZHRoID0gKGZvbnQgPT0gZmlyc3RMaW5lRm9u
dCkgPyBmaXJzdExpbmVFbGxpcHNpc1dpZHRoIDogZm9udC53aWR0aChtX2Zsb3cuY29uc3RydWN0
VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBzdHlsZSgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3Bw
CmluZGV4IDgxNTBmNTVmZGUyNmE2NDdhN2VkODAzYTNkYjc3MzM2YzRhNzA5OGIuLjk3MDNiZTQ0
OWY2MjI5ZmJjMzYwMGYwNTJlMDg0ZGE2OTE0NmUzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC05
OTEsOCArOTkxLDggQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TGlu
ZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGNvbnN0IFVDaGFyIGVsbGlwc2lzQW5kU3BhY2VbMl0gPSB7IGhvcml6
b250YWxFbGxpcHNpcywgJyAnIH07Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBlbGxpcHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOwotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250
YWxFbGxpcHNpcywgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihlbGxpcHNpc0FuZFNwYWNlLCAy
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICAgICAgY29uc3Qg
UmVuZGVyU3R5bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9PSAxID8gZmlyc3RMaW5l
U3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gbGlu
ZVN0eWxlLmZvbnRDYXNjYWRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDFkN2YwMzFjZmU1MWEyMjRhNWFmOGEwNmUyZGI4N2U4
ZDQ5ZGVmMjcuLmJkMGI5MGU1ZjkyYTQxOGJiMmVjNTBmZDg2ZmYzYTM3NzEyM2RkODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTU2
Niw4ICsxNTY2LDggQEAgY29uc3QgQXRvbVN0cmluZyYgUmVuZGVyU3R5bGU6Omh5cGhlblN0cmlu
ZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBoeXBoZW5hdGlvblN0cmluZzsKIAogICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBkZXBlbmQgb24gbG9jYWxlLgotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBoeXBoZW5NaW51c1N0cmluZygmaHlwaGVuTWludXMsIDEpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwg
MSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBoeXBoZW5NaW51c1N0cmluZygmaHlwaGVuTWludXMsIDEpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4s
IDEpOwogICAgIHJldHVybiBmb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCkuZ2x5cGhGb3JDaGFy
YWN0ZXIoaHlwaGVuKSA/IGh5cGhlblN0cmluZyA6IGh5cGhlbk1pbnVzU3RyaW5nOwogfQogCkBA
IC0xNTc5LDI4ICsxNTc5LDI4IEBAIGNvbnN0IEF0b21TdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0
RW1waGFzaXNNYXJrU3RyaW5nKCkgY29uc3QKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkN1
c3RvbToKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKTsKICAgICBjYXNl
IFRleHRFbXBoYXNpc01hcms6OkRvdDogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOwotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkRvdFN0cmluZygmd2hpdGVCdWxsZXQsIDEp
OworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGZpbGxlZERvdFN0cmluZygmYnVsbGV0LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1
bGxldCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhh
c2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKICAgICB9
CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDaXJjbGU6IHsKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUs
IDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkNpcmNs
ZVN0cmluZygmd2hpdGVDaXJjbGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJj
bGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG9wZW5DaXJjbGVTdHJpbmcoJndoaXRlQ2lyY2xlLCAxKTsKICAgICAgICAgcmV0
dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxs
ZWRDaXJjbGVTdHJpbmcgOiBvcGVuQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRF
bXBoYXNpc01hcms6OkRvdWJsZUNpcmNsZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nKCZmaXNoZXllLCAxKTsKLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVT
dHJpbmcoJmJ1bGxzZXllLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUs
IDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKICAgICAgICAgcmV0
dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxs
ZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nOwogICAgIH0KICAg
ICBjYXNlIFRleHRFbXBoYXNpc01hcms6OlRyaWFuZ2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmaWxsZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50
aW5nVHJpYW5nbGUsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gb3BlblRyaWFuZ2xlU3RyaW5nKCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmls
bGVkVHJpYW5nbGVTdHJpbmcoJmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuVHJp
YW5nbGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKICAgICAgICAgcmV0dXJu
IHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRU
cmlhbmdsZVN0cmluZyA6IG9wZW5UcmlhbmdsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0
RW1waGFzaXNNYXJrOjpTZXNhbWU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGZpbGxlZFNlc2FtZVN0cmluZygmc2VzYW1lRG90LCAxKTsKLSAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5TZXNhbWVTdHJpbmcoJndoaXRlU2Vz
YW1lRG90LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmaWxsZWRTZXNhbWVTdHJpbmcoJnNlc2FtZURvdCwgMSk7CisgICAgICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlblNl
c2FtZVN0cmluZygmd2hpdGVTZXNhbWVEb3QsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhh
c2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFNlc2FtZVN0cmlu
ZyA6IG9wZW5TZXNhbWVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6
QXV0bzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMjIxZWU2NWQ5
Yjk4N2VmYTMyMmUzNjljMTQzMGYxZTI4MGVhZjg2OS4uZmNjZjJiYTE3YjAxMTJlZDJiNWFkY2Fl
Nzg3ZjhlYmU5YmFlZWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVB
ZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAK
QEAgLTU0NSwyMCArNTQ1LDIwIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyhSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAKICAgICBpZiAobV9kb2N1bWVudC5x
dWlya3MoKS5uZWVkc0dNYWlsT3ZlcmZsb3dTY3JvbGxRdWlyaygpKSB7CiAgICAgICAgIC8vIFRo
aXMgdHVybnMgc2lkZWJhciBzY3JvbGxhYmxlIHdpdGhvdXQgbW91c2UgbW92ZSBldmVudC4KLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHJvbGVWYWx1ZSgibmF2aWdh
dGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb2xlVmFsdWUoIm5h
dmlnYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIGlm
IChzdHlsZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6SGlkZGVuICYmIG1fZWxlbWVudC0+YXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihyb2xlQXR0cikgPT0gcm9sZVZhbHVlKQogICAg
ICAgICAgICAgc3R5bGUuc2V0T3ZlcmZsb3dZKE92ZXJmbG93OjpBdXRvKTsKICAgICB9CiAgICAg
aWYgKG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNZb3VUdWJlT3ZlcmZsb3dTY3JvbGxRdWlyaygp
KSB7CiAgICAgICAgIC8vIFRoaXMgdHVybnMgc2lkZWJhciBzY3JvbGxhYmxlIHdpdGhvdXQgaG92
ZXIuCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBpZFZhbHVlKCJn
dWlkZS1pbm5lci1jb250ZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGlkVmFsdWUoImd1aWRlLWlubmVyLWNvbnRlbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgICAgIGlmIChzdHlsZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6SGlk
ZGVuICYmIG1fZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSBpZFZhbHVlKQogICAg
ICAgICAgICAgc3R5bGUuc2V0T3ZlcmZsb3dZKE92ZXJmbG93OjpBdXRvKTsKICAgICB9CiAgICAg
aWYgKG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNGdWxsc2NyZWVuRGlzcGxheU5vbmVRdWlyaygp
KSB7CiAgICAgICAgIGlmIChpczxIVE1MRGl2RWxlbWVudD4obV9lbGVtZW50KSAmJiBzdHlsZS5k
aXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3Mo
Imluc3RyZWFtLW5hdGl2ZS12aWRlby0tbW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHZpZGVvRWxlbWVudElEKCJ2anNfdmlkZW9fM19odG1sNV9hcGkiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluc3RyZWFtTmF0aXZlVmlkZW9EaXZDbGFz
cygiaW5zdHJlYW0tbmF0aXZlLXZpZGVvLS1tb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvRWxlbWVudElEKCJ2anNfdmlkZW9fM19odG1sNV9hcGki
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAgICAgICAgIGF1dG8m
IGRpdiA9IGRvd25jYXN0PEhUTUxEaXZFbGVtZW50PigqbV9lbGVtZW50KTsKICAgICAgICAgICAg
IGlmIChkaXYuaGFzQ2xhc3MoKSAmJiBkaXYuY2xhc3NOYW1lcygpLmNvbnRhaW5zKGluc3RyZWFt
TmF0aXZlVmlkZW9EaXZDbGFzcykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IDVkMDUyMTE5YzY0NGNiZWYyNDAyYTJjMzk2ZjY3Nzc2
OTYxYzg5MTguLjI1NDU4YzRlYTdlZDI5MjFhNDhkMWJjN2ZjZTFjYTUwOWI5MzU1YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtMTA5
LDggKzEwOSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgCiBTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cm90YXRlTW9k
ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGF1dG9WYWwoImF1dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9SZXZlcnNlKCJhdXRv
LXJldmVyc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvVmFsKCJhdXRv
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2UoImF1dG8tcmV2
ZXJzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9t
U3RyaW5nJiByb3RhdGUgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAg
IGlmIChyb3RhdGUgPT0gYXV0b1ZhbCkKICAgICAgICAgcmV0dXJuIFJvdGF0ZUF1dG87CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKaW5kZXggMWI0NjFiNDczMTg2
ODA2NDIwYzhhMGVkN2EzN2MxNjg5NjZkM2IzMi4uNDVlNDVkNWJjZTRmM2E0MmFjZjY4NGI2MmRk
YmVhMGFiMjE3ZTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
LmNwcApAQCAtMjc2LDEwICsyNzYsMTAgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50Ojp1cGRh
dGVBbmltYXRpb25Nb2RlKCkKIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9k
ZShjb25zdCBBdG9tU3RyaW5nJiBjYWxjTW9kZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBsaW5lYXIoImxpbmVhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGFjZWQoInBh
Y2VkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzcGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGRpc2NyZXRlKCJkaXNjcmV0ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gcGFjZWQoInBhY2VkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc3BsaW5lKCJzcGxpbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgaWYgKGNhbGNNb2RlID09IGRpc2NyZXRlKQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9k
ZTo6RGlzY3JldGUpOwogICAgIGVsc2UgaWYgKGNhbGNNb2RlID09IGxpbmVhcikKQEAgLTI5NCw4
ICsyOTQsOCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0
b21TdHJpbmcmIGNhbGNNb2RlKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJp
YnV0ZVR5cGUoY29uc3QgQXRvbVN0cmluZyYgYXR0cmlidXRlVHlwZSkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3NzKCJDU1MiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3Nz
KCJDU1MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWwoIlhNTCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoYXR0cmlidXRlVHlwZSA9PSBj
c3MpCiAgICAgICAgIG1fYXR0cmlidXRlVHlwZSA9IEF0dHJpYnV0ZVR5cGU6OkNTUzsKICAgICBl
bHNlIGlmIChhdHRyaWJ1dGVUeXBlID09IHhtbCkKQEAgLTMyMSwxNCArMzIxLDE0IEBAIFN0cmlu
ZyBTVkdBbmltYXRpb25FbGVtZW50Ojpmcm9tVmFsdWUoKSBjb25zdAogCiBib29sIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihTVkdOYW1lczo6YWRkaXRpdmVBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gc3VtIHx8
IGFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpCeTsKIH0KIAogYm9vbCBTVkdBbmlt
YXRpb25FbGVtZW50Ojppc0FjY3VtdWxhdGVkKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oU1ZHTmFtZXM6OmFjY3VtdWxhdGVBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0g
c3VtICYmIGFuaW1hdGlvbk1vZGUoKSAhPSBBbmltYXRpb25Nb2RlOjpUbzsKIH0KQEAgLTYwNiw3
ICs2MDYsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNvbXB1dGVDU1NQcm9wZXJ0eVZh
bHVlKFNWR0VsZW1lbnQqIGVsZW1lbnQsIENTU1Byb3BlcgogCiBzdGF0aWMgYm9vbCBpbmhlcml0
c0Zyb21Qcm9wZXJ0eShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAKICAgICBpZiAodmFsdWUuaXNFbXB0eSgpIHx8
IHZhbHVlICE9IGluaGVyaXQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggNmNlNzVlZTc1MzMyNGI4ZGU2MzFhMzA2NDNmOWJk
OGVmODFkODY5ZC4uMjViODJhMjlhNjc0MDE2YTc2MmVkZDU5Y2I1ODhlYTY5YWQwZTNhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9p
ZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAKIGNvbnN0
IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3Mi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvY3Nz
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJp
bmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5p
c051bGwoKSA/IGRlZmF1bHRWYWx1ZS5nZXQoKSA6IG47CiB9CkBAIC03Niw3ICs3Niw3IEBAIHZv
aWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAKIGNv
bnN0IEF0b21TdHJpbmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkaWEoKSBjb25zdAogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFsdWUoImFsbCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIG4g
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjptZWRpYUF0dHIpOwog
ICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggNDQ5
YjE0Y2Q1MDFkZjI1NTg3NGVjY2ZjNTg0OWM4OTRmMjgxMTZmZC4uMDQzMjEyOGM5ODEyZTk1YjYw
ZWM3MTdhNmU4Zjc5NTllOWZjNDJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2Fu
aW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1h
dGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAgLTM0MCw3ICszNDAsNyBAQCBTTUlMVGltZSBTVkdT
TUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAg
ICBTdHJpbmcgcGFyc2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5k
ZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAocGFy
c2UgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5p
dGUoKTsKIApAQCAtNjUyLDggKzY1Miw4IEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6OmlzRnJvemVu
KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50Ojpy
ZXN0YXJ0KCkgY29uc3QKIHsgICAgCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5ldmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2hlbk5vdEFj
dGl2ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5l
dmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdoZW5Ob3RBY3Rp
dmUoIndoZW5Ob3RBY3RpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFNWR05hbWVzOjpyZXN0YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAg
ICAgICByZXR1cm4gUmVzdGFydE5ldmVyOwpAQCAtNjY0LDcgKzY2NCw3IEBAIFNWR1NNSUxFbGVt
ZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NN
SUxFbGVtZW50OjpGaWxsTW9kZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZyZWV6ZSgiZnJlZXpl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnJlZXplKCJmcmVlemUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjpmaWxsQXR0cik7
CiAgICAgcmV0dXJuIHZhbHVlID09IGZyZWV6ZSA/IEZpbGxGcmVlemUgOiBGaWxsUmVtb3ZlOwog
fQpAQCAtNjk3LDcgKzY5Nyw3IEBAIFNNSUxUaW1lIFNWR1NNSUxFbGVtZW50OjpyZXBlYXRDb3Vu
dCgpIGNvbnN0CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gU01JTFRp
bWU6OnVucmVzb2x2ZWQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHZhbHVlID09IGluZGVmaW5pdGVWYWx1ZSkK
ICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7CiAgICAgYm9vbCBvazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0
aXZlVmFsdWVGdW5jdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKaW5kZXggNzJiMjViNWI4
Y2MyZmMxZTcwMWM3OTE5ZTMzOTI3NjdjMjMxNDA1ZC4uNDc2ZmIzNGIzYWNhNGIyMWZiN2QwZWRj
ZWMxZGYwYTkxMjhkOTg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9u
SW1wbC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb2xvciBT
VkdBbmltYXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1cnJlbnRDb2xvcigiY3VycmVudENvbG9yIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VycmVudENvbG9yKCJjdXJyZW50Q29sb3Ii
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoc3RyaW5nICE9
IGN1cnJlbnRDb2xvci5nZXQoKSkKICAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPENv
bG9yPjo6ZnJvbVN0cmluZyhzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvci5oCmluZGV4IDIxZTg4M2ZlMjQ0ODM4ZmYzNzQ2
ODY5YmYxMWEzZGY0NmZmNGJlMmEuLmQ4ZThlYzE3NjNjOTIwMjlhMTk2ODliZTU3ZTY1MWViOGFi
NTBlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5QW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eUFuaW1hdG9yLmgKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgU1ZHUHJvcGVydHlBbmltYXRv
ciA6IHB1YmxpYyBTVkdBdHRyaWJ1dGVBbmltYXRvciB7CiAKICAgICBTdHJpbmcgYWRqdXN0Rm9y
SW5oZXJpdGFuY2UoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBpbmhlcml0ID8gY29tcHV0ZUluaGVyaXRlZENT
U1Byb3BlcnR5VmFsdWUodGFyZ2V0RWxlbWVudCkgOiB2YWx1ZTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398152</attachid>
            <date>2020-04-30 20:26:31 -0700</date>
            <delta_ts>2020-04-30 20:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430202630.patch</filename>
            <type>text/plain</type>
            <size>145337</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmM4YzQxNGM5MDA5NzgxZmY2ZDUyNTUxYTEwYzJjNzAwNGEwYmFi
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTI5ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIERlYWRsb2NrIGluIFdU
Rjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0d29ya1Byb2Nlc3MuZXhlIGlzIGV4
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2FhMWRjNjM2MjkzYmMyN2ZhNzhiYTVj
NGVlLi4xMjQ2ZGVmNmNiNWE5MWIyYTBmYmNlMDYzN2Y1N2U5YjM4MTQyMmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYyIEBACisyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAv
IE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlv
bnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0
YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1O
YW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2lu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGlu
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjph
cnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFu
dFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6
Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNw
cDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFk
ZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1
dG9jYXBpdGFsaXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFs
aXplVHlwZSk6CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc0NvbnRhY3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0
ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lz
dGVtUHJldmlld0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlw
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjp0cnVlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6OnNldEF1dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6
Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0TW9kZU5hbWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRN
b2RlTmFtZXM6Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRl
Y2ltYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVj
a2JveCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpkYXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9u
dGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpyYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxh
eWJhY2tTdGF0ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVk
KToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1Nl
YXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Q
c2V1ZG9UeXBlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bk
b3duSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQXV0b0ZpbGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9u
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpU
ZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hG
aWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpjb21tZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNj
cmlwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9y
Y2VkS2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Ny
b2xsaW5nQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRl
eHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0Zvcndh
cmRDYWNoZSBjb25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5
ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3Rl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3Rl
bUZvbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpleHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21w
bGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6
Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhl
blN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhh
c2lzTWFya1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25z
dCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpyZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAy
MC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNv
bWUgSFRNTCBlbGVtZW50IGNyaXRpY2FsIHBhdGhzIGluY2x1ZGUgQXRvbVN0cmluZyBtYXRlcmlh
bGl6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaAppbmRleCA2ZTk3ZDVkOWVlOTA5NjBmMWNlMzJlNjgwM2JjZmZkZTQy
MjA0Y2NlLi5mNzZjYTQzYzJiM2VmM2IwNDcyYjgyYzUzMThlNWFjOThjYjQ1NTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2Fy
ZC5oCkBAIC01NCwxMiArNTQsMTQgQEAgc3RydWN0IFZlY3Rvck1hbGxvYzsKIHVzaW5nIFZlY3Rv
ck1hbGxvYyA9IEZhc3RNYWxsb2M7CiAjZW5kaWYKIAorc3RydWN0IEFueVRocmVhZHNBY2Nlc3NU
cmFpdHM7CitzdHJ1Y3QgTWFpblRocmVhZEFjY2Vzc1RyYWl0czsKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBDb21wbGV0aW9uSGFuZGxlcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBE
dW1iUHRyVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJWYWx1ZVRyYWl0
czsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGdW5jdGlvbjsKLXRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgTmV2
ZXJEZXN0cm95ZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSBBbnlUaHJlYWRzQWNj
ZXNzVHJhaXRzPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwg
dHlwZW5hbWUgPSBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzPiBjbGFzcyBOZXZlckRlc3Ryb3llZDsK
IHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBPcHRpb25TZXQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgT3B0aW9uYWw7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYWNrZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIvU291cmNlL1dURi93dGYv
TmV2ZXJEZXN0cm95ZWQuaAppbmRleCBiOWM5MTVhNTJiNGJlMTkyZmJkYTMwMGQyMGI5MmY2NjE2
ZmM0NzQzLi5kODI0MmZlN2U3Y2EzOTBkZGQ0MDI5NzIyNTRmNWJkMTQ2NDgxZmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L05ldmVyRGVzdHJveWVkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Gb3JiaWRIZWFwQWxsb2NhdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KIAogLy8gTmV2ZXJEZXN0cm95ZWQgaXMgYSBzbWFydC1wb2ludGVyLWxpa2UgY2xhc3Mg
dGhhdCBlbnN1cmVzIHRoYXQgdGhlIGRlc3RydWN0b3IKQEAgLTQyLDE4ICs0MywzMyBAQAogCiBu
YW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0cm95
ZWQgeworc3RydWN0IEFueVRocmVhZHNBY2Nlc3NUcmFpdHMgeworICAgIHN0YXRpYyB2b2lkIGFz
c2VydEFjY2VzcygpCisgICAgeworICAgIH0KK307CisKK3N0cnVjdCBNYWluVGhyZWFkQWNjZXNz
VHJhaXRzIHsKKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRBY2Nlc3MoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHM+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShOZXZlckRlc3Ryb3llZCk7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FM
TE9DQVRJT047CiBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBOZXZl
ckRlc3Ryb3llZChBcmdzJiYuLi4gYXJncykKICAgICB7CisgICAgICAgIEFjY2Vzc1RyYWl0czo6
YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIE1heWJlUmVsYXg8VD4obmV3IChzdG9yYWdlUG9pbnRl
cigpKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOwogICAgIH0KIAogICAgIE5ldmVy
RGVzdHJveWVkKE5ldmVyRGVzdHJveWVkJiYgb3RoZXIpCiAgICAgeworICAgICAgICBBY2Nlc3NU
cmFpdHM6OmFzc2VydEFjY2VzcygpOwogICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoc3RvcmFn
ZVBvaW50ZXIoKSkgVChXVEZNb3ZlKCpvdGhlci5zdG9yYWdlUG9pbnRlcigpKSkpOwogICAgIH0K
IApAQCAtNzAsNyArODYsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0
cm95ZWQgewogcHJpdmF0ZToKICAgICB1c2luZyBQb2ludGVyVHlwZSA9IHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKjsKIAotICAgIFBvaW50ZXJUeXBlIHN0b3JhZ2VQb2ludGVy
KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOyB9CisgICAgUG9pbnRlclR5cGUgc3RvcmFnZVBvaW50
ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsK
KyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UG9pbnRlclR5cGU+KHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgVCo+KCZtX3N0b3JhZ2UpKTsKKyAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
dHJUeXBlLCBib29sIFNob3VsZFJlbGF4ID0gc3RkOjppc19iYXNlX29mPFJlZkNvdW50ZWRCYXNl
LCBQdHJUeXBlPjo6dmFsdWU+IHN0cnVjdCBNYXliZVJlbGF4IHsKICAgICAgICAgZXhwbGljaXQg
TWF5YmVSZWxheChQdHJUeXBlKikgeyB9CkBAIC04NCwxMiArMTA0LDEyIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKICAgICB0eXBlbmFtZSBzdGQ6OmFsaWdu
ZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUg
bV9zdG9yYWdlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gTmV2ZXJEZXN0cm95ZWQ8VD4g
bWFrZU5ldmVyRGVzdHJveWVkKFQmJik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBB
Y2Nlc3NUcmFpdHMgPSBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzPiBOZXZlckRlc3Ryb3llZDxULCBB
Y2Nlc3NUcmFpdHM+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYpOwogCiAvLyBGSVhNRTogSXQncyBt
ZXNzeSB0byBoYXZlIHRvIHJlcGVhdCB0aGUgd2hvbGUgY2xhc3MganVzdCB0byBtYWtlIHRoaXMg
ImxhenkiIHZlcnNpb24uCiAvLyBTaG91bGQgcmV2aXNpdCBjbGllbnRzIHRvIHNlZSBpZiB3ZSBy
ZWFsbHkgbmVlZCB0aGlzLCBhbmQgcGVyaGFwcyB1c2UgdGVtcGxhdGVzIHRvCiAvLyBzaGFyZSBt
b3JlIG9mIHRoZSBjb2RlIHdpdGggdGhlIG1haW4gTmV2ZXJEZXN0cm95ZWQgYWJvdmUuCi10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewordGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQWNjZXNzVHJhaXRzPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExhenlOZXZlckRlc3Ryb3llZCk7CiAgICAgV1RG
X0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6CkBAIC05OSw2ICsxMTksNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHZvaWQgY29u
c3RydWN0KEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2lzQ29uc3Ry
dWN0ZWQpOworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOwogCiAjaWYgQVNT
RVJUX0VOQUJMRUQKICAgICAgICAgbV9pc0NvbnN0cnVjdGVkID0gdHJ1ZTsKQEAgLTEyNyw2ICsx
NDgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewog
ICAgIFBvaW50ZXJUeXBlIHN0b3JhZ2VQb2ludGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX2lzQ29uc3RydWN0ZWQpOworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vz
cygpOwogICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOwogICAgIH0KIApAQCAtMTQ4LDEzICsxNzAsMjMg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkIHsKICAgICB0
eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29m
PFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIE5ldmVyRGVzdHJveWVkPFQ+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYgYXJndW1lbnQp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHM+IGlubGluZSBOZXZl
ckRlc3Ryb3llZDxULCBBY2Nlc3NUcmFpdHM+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYgYXJndW1l
bnQpCiB7CiAgICAgcmV0dXJuIFdURk1vdmUoYXJndW1lbnQpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgordXNpbmcgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkID0gTmV2ZXJEZXN0cm95ZWQ8
VCwgTWFpblRocmVhZEFjY2Vzc1RyYWl0cz47CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2lu
ZyBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkID0gTGF6eU5ldmVyRGVzdHJveWVkPFQsIE1h
aW5UaHJlYWRBY2Nlc3NUcmFpdHM+OworCiB9IC8vIG5hbWVzcGFjZSBXVEY7CiAKIHVzaW5nIFdU
Rjo6TGF6eU5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpOZXZlckRlc3Ryb3llZDsKIHVzaW5n
IFdURjo6bWFrZU5ldmVyRGVzdHJveWVkOwordXNpbmcgV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ7Cit1c2luZyBXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ7Cit1c2luZyBX
VEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM7Cit1c2luZyBXVEY6Ok1haW5UaHJlYWRBY2Nlc3NU
cmFpdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3BwIGIv
U291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcAppbmRleCA3MDY4ZjVmZmE0ODJkYjA3
MDU4NTFlY2Y0ZDJmZDUzYTNmZjc0YmQxLi43ZjE4NjE2M2QzODEyNmIyMzRhNDVlYWNjNmFkN2U1
NzFkNWU0MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKQEAgLTEzMywxMSArMTMz
LDExIEBAIHZvaWQgQXRvbVN0cmluZzo6c2hvdygpIGNvbnN0CiAKICNlbmRpZgogCi1XVEZfRVhQ
T1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsK
LVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1wdHlB
dG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gc3RhckF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWlu
VGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsK
K1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExh
enlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7CitXVEZfRVhQ
T1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB4bWxBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CiAKIHZvaWQgQXRvbVN0cmlu
Zzo6aW5pdCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDg4YjRlYmFjMzI3MWJk
M2ViM2MxNDEzZDVmNDgwYmEzZWJjYzIyZDQuLjcwMzZhM2QxZmM4MmI3MmZkOTlhNDQ1OTdiY2Vh
NDdmNGZlODIxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC0yOTAsMTEgKzI5MCwx
MSBAQCBpbmxpbmUgQXRvbVN0cmluZzo6QXRvbVN0cmluZyhOU1N0cmluZyAqc3RyaW5nKQogCiAv
LyBEZWZpbmUgZXh0ZXJuYWwgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIGNvbW1vbmx5IHVzZWQg
YXRvbSBzdHJpbmdzLgogLy8gVGhlc2UgYXJlIG9ubHkgdXNhYmxlIGZyb20gdGhlIG1haW4gdGhy
ZWFkLgotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbnVsbEF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BS
SVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKLWV4dGVy
biBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbEF0
b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRo
cmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7Citl
eHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUg
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURh
dGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sbnNB
dG9tRGF0YTsKIAogaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIG51bGxBdG9tKCkgeyByZXR1cm4g
bnVsbEF0b21EYXRhLmdldCgpOyB9CiBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgZW1wdHlBdG9t
KCkgeyByZXR1cm4gZW1wdHlBdG9tRGF0YS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCmluZGV4IDVjODRjODVlYzc3MWRkNTg3NzliNDM5NjU4
NjU4M2NiYjllNWMwYjEuLmI5YjY2YTJiNWI5NWE0NjAxNTA1OGE1NjU1YjY4YzI0YjA3NzI1M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKQEAgLTM3
LDggKzM3LDggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktpdFBsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5RXZlbnQpOwogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgc3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxhYmxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2YWlsYWJs
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vdEF2YWlsYWJsZVN0cmluZygi
bm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IHJldHVybiBhdmFpbGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBub3RBdmFpbGFibGVTdHJpbmc7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0lu
aXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA3YzU0NmRjNjAwYjEyYzU3NmRkMDgyNzlhYjdj
NjY3ZmE1NWZiOTEzLi4zYjI1ZDA2YjEyM2ExYTUxYTBhMmFjZmI0ZjY1NmY4ZDk0YWRiM2ZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRh
UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTI1OCwxOSArMjU4LDE5IEBAIHZvaWQgSW5pdERhdGFS
ZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmluZyYgaW5pdERhdGFU
eXBlLCBJbml0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmNlbmNOYW1l
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJjZW5jIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiY2VuYyIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIElu
aXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
aW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CiAgICAgcmV0dXJuIHNp
bmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJ3ZWJtIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
d2VibSIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4
IDYwZWE2ZTdkMTA1NjNlZTE3OTQwZmM1OTMzZTgzM2U5YTBjZmFkMWEuLmY5ODFlY2NjMjk2ZDc4
Yzg3MGQ3Njg4YTA2YTBjZmY4MmY3NzYxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtNDMs
MjUgKzQzLDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbVN0cmluZyYgTWVk
aWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9tYXRpYygiYXV0b21hdGljIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdXRvbWF0aWM7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3JjZWRPbmx5S2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZE9ubHko
ImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkT25s
eSgiZm9yY2VkLW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGZvcmNlZE9ubHk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhbHdheXNP
bktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBhbHdheXNPbigiYWx3YXlzLW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
YWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gYWx3YXlzT247CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBtYW51
YWxLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYWx3YXlzT24oIm1hbnVhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFs
d2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGFsd2F5c09uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBkMGIyY2I5ZmQwYWExYmQx
ZjI5YWNlZGM1YjYwOTM5Nzc0YTExY2IwLi4wODVlNGZkNmZiODMxZTg0MjU1YTgyYTAyZWE4ZjE3
MDQyZjlmZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCBNZWRpYVN0cmVh
bVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2aWRlb0tpbmQoInZp
ZGVvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXVkaW9LaW5kKCJhdWRpbyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9wcml2YXRlLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBh
dWRpb0tpbmQ7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhU3RyZWFt
VHJhY2s6OmxhYmVsKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFTdHJlYW1UcmFj
azo6Y29udGVudEhpbnQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRldGFpbEhpbnQoImRl
dGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQoInRleHQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHNwZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBkZXRhaWxIaW50KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0
ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vdGlvbkhp
bnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3
aXRjaCAobV9wcml2YXRlLT5jb250ZW50SGludCgpKSB7CiAgICAgY2FzZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6SGludFZhbHVlOjpFbXB0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggNmEwZGYwNGY1MWZi
Yjk4ZjllMjgyOTkyMGJjNWVmMDEzYmFlOWNhZC4uMGJlMzEyYWYwZTZjYWJjZjdmMDE0ZGMxOTU1
N2FlMTkxYjc0YjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUlRDRGF0YUNoYW5uZWwpOwogCiBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgYmxvYktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBibG9iKCJibG9iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYmxvYigi
YmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYmxv
YjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFycmF5YnVmZmVyS2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFycmF5YnVmZmVyKCJhcnJh
eWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFycmF5YnVmZmVyKCJh
cnJheWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gYXJyYXlidWZmZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDAyYzc1NzAwYTg1
YjNjNzI1NjY5NzdiYTJkYmMxZTNhZjgyOTE0YjUuLjI2MmIyOWM5YzViZjU3Y2JlNmE3YjAwMTE3
NmIxZWNkNjliNTI5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMzQxMCw3ICszNDEwLDcg
QEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25TdGF0
dXMoKSBjb25zdAogCiBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2
ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCgiYWRkaXRpb25zIHRleHQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2
YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBjb25zdCBBdG9tU3RyaW5nJiByZWxldmFudCA9IGdldEF0dHJpYnV0ZShhcmlhX3JlbGV2
YW50QXR0cik7CiAKICAgICAvLyBEZWZhdWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRl
eHQiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCmluZGV4IGZk
MTQyZjdkZWFiMDc0OGU5NmExOWM1YjBkYWVkOTA2MjcwZDMwYjIuLmJlNWFkNDgzZTBjMTM5N2I1
ZjI4OWNhN2RjMzJhMjZlNTlkNmY4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b25zdGFudFByb3BlcnR5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQ
cm9wZXJ0eU1hcC5jcHAKQEAgLTUwLDE1ICs1MCwxNSBAQCBjb25zdCBDb25zdGFudFByb3BlcnR5
TWFwOjpWYWx1ZXMmIENvbnN0YW50UHJvcGVydHlNYXA6OnZhbHVlcygpIGNvbnN0CiAKIGNvbnN0
IEF0b21TdHJpbmcmIENvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQcm9wZXJ0eShDb25zdGFu
dFByb3BlcnR5IHByb3BlcnR5KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgic2FmZS1hcmVhLWluc2V0LXJp
Z2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0Qm90dG9tTmFtZSgic2FmZS1hcmVh
LWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1lKCJz
YWZlLWFyZWEtaW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0VG9w
TmFtZSgiZnVsbHNjcmVlbi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5J
bnNldExlZnROYW1lKCJmdWxsc2NyZWVuLWluc2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1
bGxzY3JlZW5JbnNldEJvdHRvbU5hbWUoImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtcmln
aHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uTmFtZSgiZnVs
bHNjcmVlbi1hdXRvLWhpZGUtZHVyYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRSaWdodE5hbWUoInNhZmUtYXJl
YS1pbnNldC1yaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVh
SW5zZXRCb3R0b21OYW1lKCJzYWZlLWFyZWEtaW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1lKCJzYWZlLWFyZWEtaW5zZXQt
bGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldFRv
cE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZnVsbHNjcmVlbkluc2V0TGVmdE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtbGVmdCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldEJvdHRvbU5hbWUo
ImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gZnVsbHNjcmVlbkluc2V0UmlnaHROYW1lKCJmdWxsc2NyZWVuLWluc2V0LXJpZ2h0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb25O
YW1lKCJmdWxsc2NyZWVuLWF1dG8taGlkZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKICAgICBjYXNlIENvbnN0
YW50UHJvcGVydHk6OlNhZmVBcmVhSW5zZXRUb3A6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBjNmQ5NThiMjVkMWJmNTM2YzI3NGI3ZTUyZjljNTNiNWFmMmI1ZjBjLi4xNzFiYWMzNTk1ZjFh
M2IwYmNhYTA3N2ZmZDY3MjczNjMyZGYzYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTEyNTksNyArMTI1OSw3IEBAIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyBEb2N1
bWVudDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZShjb25zdCBBdG9tCiAjaWYgRU5BQkxFKE1B
VEhNTCkKICAgICBjb25zdCBhdXRvJiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lID0gTWF0aE1MTmFt
ZXM6OmFubm90YXRpb25feG1sVGFnLT5sb2NhbE5hbWUoKTsKICNlbHNlCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFubm90YXRpb25YbWxMb2NhbE5hbWUoImFu
bm90YXRpb24teG1sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYW5ub3RhdGlv
blhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAjZW5kaWYKIAogICAgIGlmIChsb2NhbE5hbWUgPT0gU1ZHTmFtZXM6OmNvbG9y
X3Byb2ZpbGVUYWctPmxvY2FsTmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
SW5saW5lU3R5bGVTaGVldE93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHls
ZVNoZWV0T3duZXIuY3BwCmluZGV4IGZiMjk1OTBkZjMwZTc0NjRmZjk3OGFjNTk1NGFlNGQ4OGJi
ZmZmZmMuLmJlZDk3ZTEwYzZhNjI1NWI3MjZkNWUyNmMwMTkyZmVhYTllNzg0YmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCkBAIC0xNDksNyArMTQ5
LDcgQEAgaW5saW5lIGJvb2wgaXNWYWxpZENTU0NvbnRlbnRUeXBlKEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAgICAgLy8gRklYTUU6IFNob3VsZCBNSU1FIHR5cGVz
IHJlYWxseSBiZSBjYXNlIHNlbnNpdGl2ZSBpbiBYTUwgZG9jdW1lbnRzPyBEb2Vzbid0IHNlZW0g
bGlrZSB0aGV5IHNob3VsZCwKICAgICAvLyBldmVuIHRob3VnaCBvdGhlciB0aGluZ3MgYXJlIGNh
c2Ugc2Vuc2l0aXZlIGluIHRoYXQgY29udGV4dC4gTUlNRSB0eXBlcyBzaG91bGQgbmV2ZXIgYmUg
Y2FzZSBzZW5zaXRpdmUuCiAgICAgLy8gV2Ugc2hvdWxkIHZlcmlmeSB0aGlzIGFuZCB0aGVuIHJl
bW92ZSB0aGUgaXNIVE1MRWxlbWVudCBjaGVjayBoZXJlLgotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGVsZW1lbnQuaXNIVE1M
RWxlbWVudCgpID8gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRleHQvY3Nz
IikgOiB0eXBlID09IGNzc0NvbnRlbnRUeXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
UmVjb3JkLmNwcAppbmRleCA1MTkzMjBkNDY5OTFjMTRiMzcyNzgxYWNjZWFjNzQ5MDNjMDgyYTE4
Li5lOTY0ZWYzMDRlMGI3MDYyNTI0N2Q5ZmExZmY3NDhmOWNhMDFiNjUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGNsYXNzIE11dGF0
aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBNdXRhdGlvblJlY29yZCB7
CiAKIGNvbnN0IEF0b21TdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRMaXN0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hpbGRMaXN0KCJjaGlsZExpc3QiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsKIH0K
IAogY29uc3QgQXRvbVN0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJpYnV0ZXMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRyaWJ1dGVzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdHRyaWJ1dGVz
OwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY2hhcmFjdGVyRGF0YSgiY2hh
cmFjdGVyRGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNoYXJhY3RlckRh
dGEoImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5k
ZXggNzA0MWYxMjE3MWRlMDNlOTUwYTg4ODI3ZjdmZDExZjlkOGQ3MjVmYS4uYjUzODkyNjViYWE2
ZDQ1OTAzYzE1OTdmNjU0ZThkNWVlZTQzZmVlZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwK
QEAgLTExNSw3ICsxMTUsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIEVO
RAogCi0gICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKKyAgICBwcmludE1hY3Jvcygk
RiwgImV4dGVybiBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0
cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKICAgICBwcmludCBGICIjZW5kaWZcblxuIjsKIAog
ICAgIHByaW50SW5pdCgkRiwgMSk7CkBAIC0xMjksNyArMTI5LDcgQEAgRU5ECiAKICAgICBwcmlu
dCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7CiAKLSAgICBw
cmludE1hY3JvcygkRiwgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+
IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAgcHJpbnRNYWNyb3MoJEYsICJNYWluVGhyZWFkTGF6
eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJz
KTsKIAogICAgIHByaW50SW5pdCgkRiwgMCk7CiAKQEAgLTcyMiw3ICs3MjIsNyBAQCBFTkQKICAg
ICBteSAkbG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4ID0gbGMoJHBhcmFtZXRlcnN7bmFtZXNwYWNl
UHJlZml4fSk7CiAKICAgICBwcmludCBGICIvLyBOYW1lc3BhY2VcbiI7Ci0gICAgcHJpbnQgRiAi
V0VCQ09SRV9FWFBPUlQgZXh0ZXJuIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21T
dHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxuIjsKKyAg
ICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRlc3Ry
b3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5h
bWVzcGFjZVVSSTtcblxuIjsKIAogICAgIGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIHBy
aW50IEYgIi8vIFRhZ3NcbiI7CkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIHByaW50TmFtZXNDcHBG
aWxlCiAgICAgCiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0
ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCi0gICAgcHJpbnQgRiAiTGF6eU5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVS
STtcblxuIjsKKyAgICBwcmludCBGICJNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxu
IjsKIAogICAgIHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVhbGxTdHJp
bmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNwcAppbmRleCAzYTBmOTEx
OTliNmJiN2I4NDdjYzU4NTA2MTg4MzNkYjdlMDFlYTc1Li43MzViZTBmYTc1NzI4YWQ0ZGJmMTJm
NjI2ZWE4Y2NjOWM2Y2U3YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9j
YXBpdGFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNw
cApAQCAtNTcsMTkgKzU3LDE5IEBAIGNvbnN0IEF0b21TdHJpbmcmIHN0cmluZ0ZvckF1dG9jYXBp
dGFsaXplVHlwZShBdXRvY2FwaXRhbGl6ZVR5cGUgdHlwZSkKICAgICBjYXNlIEF1dG9jYXBpdGFs
aXplVHlwZURlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxsQXRvbSgpOwogICAgIGNhc2UgQXV0
b2NhcGl0YWxpemVUeXBlTm9uZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdmFsdWVOb25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHZhbHVlTm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlTm9uZTsKICAgICB9CiAgICAgY2FzZSBBdXRv
Y2FwaXRhbGl6ZVR5cGVTZW50ZW5jZXM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlU2VudGVuY2VzKCJzZW50ZW5jZXMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVTZW50ZW5jZXMoInNlbnRlbmNlcyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlU2Vu
dGVuY2VzOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVdvcmRzOiB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRzKCJ3
b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRzKCJ3
b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJu
IHZhbHVlV29yZHM7CiAgICAgfQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlQWxsQ2hhcmFj
dGVyczogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
dmFsdWVBbGxDaGFyYWN0ZXJzKCJjaGFyYWN0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHZhbHVlQWxsQ2hhcmFjdGVycygiY2hhcmFjdGVycyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlQWxsQ2hhcmFjdGVy
czsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmls
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcAppbmRleCBhMGE3ZDc3YjVj
OTI1ZjAwZDAxMTU4ODVlZDhlYjhjMDQxYTgxNGY0Li42NzM1ZTI2OWYyNWFlZjdiYzA5MTI3NTUz
OTIxNDgxY2RlM2U4ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcApAQCAtMTMyLDExICsx
MzIsMTEgQEAgQXV0b2ZpbGxGaWVsZE5hbWUgdG9BdXRvZmlsbEZpZWxkTmFtZShjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKIAogc3RhdGljIGlubGluZSBib29sIGlzQ29udGFjdFRva2VuKGNvbnN0
IEF0b21TdHJpbmcmIHRva2VuKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBob21lKCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3b3JrKCJ3b3JrIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBtb2JpbGUoIm1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGhvbWUoImhvbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3b3JrKCJ3
b3JrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9iaWxlKCJtb2JpbGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYXgoImZheCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0b2tlbiA9PSBob21lIHx8IHRva2VuID09IHdvcmsg
fHwgdG9rZW4gPT0gbW9iaWxlIHx8IHRva2VuID09IGZheCB8fCB0b2tlbiA9PSBwYWdlcjsKIH0K
QEAgLTE2MSw4ICsxNjEsOCBAQCBzdGF0aWMgdW5zaWduZWQgbWF4VG9rZW5zRm9yQXV0b2ZpbGxG
aWVsZENhdGVnb3J5KEF1dG9maWxsQ2F0ZWdvcnkgY2F0ZWdvcnkpCiAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMwog
QXV0b2ZpbGxEYXRhIEF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVsZW1l
bnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvZmYo
Im9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gTGFiZWw6IERlZmF1bHQKICAgICAvLyAyNi4gTGV0IHRo
ZSBlbGVtZW50J3MgSURMLWV4cG9zZWQgYXV0b2ZpbGwgdmFsdWUgYmUgdGhlIGVtcHR5IHN0cmlu
ZywgYW5kIGl0cyBhdXRvZmlsbCBoaW50IHNldCBhbmQgYXV0b2ZpbGwgc2NvcGUgYmUgZW1wdHku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRl
eCBlYmI3ZDJhOGIwMDNmNDRlNDgxZWZiMDI2ODY2OTlmODM2ZTYwNWEzLi5hOTQ5OTU2ZTkzMzIy
ZTA2YzRkM2Q0YjhkODEwN2Q2MWE0MWM4ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiAK
IFN0cmluZyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAppbmRleCA3YjEwNjFmZTFhMWY0OTEzMmFkZjQzZDU5Y2I4NzVlZGJmN2ZlNjEwLi41
NDIxZmRiNGJmNmI4MWRlOWY1NGUxYjIxNjY1YTk3NWJkM2EzMzE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIAogdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRv
KCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKaW5kZXggOWUyZjA0YzQwMDA1NjU3OWQ1NGM0NTI0NjhjYTJkYzgxYWIxZTY3Mi4uZDRjODU4
YTNmOTIwMTViNmQzOGU1NDBiYzZjNjU5ZTAzNjlmM2Q4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5jcHAKQEAgLTE0Myw5ICsxNDMsOCBAQCB2b2lkIENvbG9ySW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NF
UlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoTmFtZSgiLXdlYmtpdC1jb2xvci1z
d2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoV3JhcHBlck5h
bWUoIi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNo
TmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRDb2xvclN3YXRjaFdyYXBwZXJOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRjaC13
cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRG9jdW1l
bnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIGF1dG8gd3JhcHBlckVs
ZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGE4ZWRjOTlmMGI3ZDk1ZmRiNmUzYTI1MzU5YmI4N2Rj
MjgxY2RlMDYuLjNlMmY5YmVhZjAwZDI1ODYwNDM2YjdiNjA4YmZlOWZiMjMxOTViYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtODksOSArODksOCBAQCBSZWY8VXBs
b2FkQnV0dG9uRWxlbWVudD4gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUo
RG9jdW1lbnQmIGRvY3VtZQogVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFnLCBk
b2N1bWVudCwgMCwgZmFsc2UpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRGaWxlVXBsb2FkQnV0dG9uTmFtZSgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0VHlwZShidXR0b25OYW1l
KTsKICAgICBzZXRQc2V1ZG8od2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCA3OWRiMzQxZTFjOTU2NWYxZDBmOTEz
ZDJjN2M3ZDNjNDZiMjZjZjViLi5jN2E3MDlhMGEyNDEyNDQzZDQzZjE3ZjZmYTVmMzEyZDk5YjBh
M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAtMzIwLDcgKzMy
MCw3IEBAIEF0b21TdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250CiB7CiAgICAgYXV0byBmb3JtID0gbWFrZVJl
ZlB0cihvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKSk7CiAgICAgaWYgKCFmb3JtKSB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25lcigi
Tm8gb3duZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9ybUtleUZv
ck5vT3duZXIoIk5vIG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDAwOWY1NTQ3OGQzYTZlODYxOTg4ZTZi
YmYyNWNlNDBiMjEzOGNjYmMuLjZmYzliNDdmZGIxMmY2OGQ2Y2Y0YzE1YTY5MDMxM2U3NWI3MjNi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0yNTMs
OSArMjUzLDkgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgLy8gRG8gbm90aGlu
Zy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAgICAgICAvLyBVcGRhdGUg
SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBhdHRyaWJ1dGVzIHZhbHVl
cyBhcmUgc3VwcG9ydGVkLgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5vT3BlbmVy
KCJub29wZW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVyIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBjb25zdCBib29sIHNob3Vs
ZEZvbGRDYXNlID0gdHJ1ZTsKICAgICAgICAgU3BhY2VTcGxpdFN0cmluZyByZWxWYWx1ZSh2YWx1
ZSwgc2hvdWxkRm9sZENhc2UpOwogICAgICAgICBpZiAocmVsVmFsdWUuY29udGFpbnMobm9SZWZl
cnJlcikpCkBAIC0zODEsNyArMzgxLDcgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0
ZW1QcmV2aWV3TGluaygpIGNvbnN0CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnN5c3RlbVByZXZpZXdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1QcmV2
aWV3UmVsVmFsdWUoImFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVt
UHJldmlld1JlbFZhbHVlKCJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
IAogICAgIGlmICghcmVsTGlzdCgpLmNvbnRhaW5zKHN5c3RlbVByZXZpZXdSZWxWYWx1ZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5jcHAKaW5kZXggNzFmZTFhMGI3ODU4Y2YwZjMwOTI2ZjkwZjc0ZmY3NzRmZjU3ZmUxOC4uNDJh
MjljYzU3ODhjMzlhM2M2NDYzZWM0YjAxMzY4MmRjN2FkYWY1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTc0LDE1ICs3NCwxNSBAQCBjb25zdCBBdG9t
U3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAg
ICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFNVQk1JVDogewotICAgICAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1Ym1pdCgic3VibWl0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJtaXQoInN1Ym1pdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiBz
dWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b24oImJ1dHRvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uKCJidXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gYnV0
dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVTRVQ6IHsKLSAgICAgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJlc2V0KCJyZXNldCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiByZXNldDsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cAppbmRleCA2MGRkMWZiMjUyMDM4NjBkM2Q5MmE3YTVhY2IzMzFjMmFiMDRiNTkxLi4wN2NiMTY0
YWVlMWFlMDgxNmJjZDE1NjQ0MzQzOGRlMGVmNTY5MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBEZXRhaWxF
dmVudFNlbmRlciYgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgc3VtbWFyeVNsb3ROYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW1tYXJ5U2xvdCgic3VtbWFy
eVNsb3QiKTsKICAgICByZXR1cm4gc3VtbWFyeVNsb3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKaW5kZXggN2E2YTZmZTNlOTE0ZTg1Yjk4OTNkMTY5NjQyNzNkNmIyYzViYTk2
My4uNWI3ZjlhZjM4NjExNmRhZGI2ZjA1M2NiODQwZTg3NTc4NjU0YzQwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTUwNSw5ICs1MDUsOSBAQCBzdGF0aWMgUmVmPERvY3Vt
ZW50RnJhZ21lbnQ+IHRleHRUb0ZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZQogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjbGltaXRlZC10by1vbmx5
LWtub3duLXZhbHVlcwogc3RhdGljIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiB0b1ZhbGlkRGly
VmFsdWUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHJ0bFZhbHVl
KCJydGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBydGxWYWx1ZSgicnRsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYXV0b1ZhbHVlKCJhdXRvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImx0ciIpKQogICAg
ICAgICByZXR1cm4gbHRyVmFsdWU7CiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHZhbHVlLCAicnRsIikpCkBAIC02NjIsMjIgKzY2MiwxOSBAQCBTdHJpbmcgSFRNTEVsZW1l
bnQ6OmNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB0
cnVlTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJ1ZVZhbHVlKCJ0cnVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cnVlVmFsdWUuZ2V0KCk7CiB9CiAKIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmYWxzZU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxzZVZhbHVlKCJmYWxzZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VW
YWx1ZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGZhbHNlVmFsdWUuZ2V0KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBwbGFp
bnRleHRPbmx5TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHBsYWludGV4dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWludGV4
dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHBsYWludGV4dE9ubHlWYWx1ZS5nZXQoKTsKIH0KIApAQCAtMTEx
Nyw5ICsxMTE0LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6c2hvdWxkQXV0b2NvcnJlY3QoKSBjb25z
dAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRBdXRvY29ycmVjdChib29sIGF1dG9jb3JyZWN0KQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUoIm9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uTmFtZSgib24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihhdXRvY29ycmVjdEF0dHIsIGF1dG9jb3JyZWN0ID8gb25OYW1lLmdldCgpIDog
b2ZmTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuY3BwCmluZGV4IDUxYWIwMTg3OTgwNDg3YjNhZmQ0ZTUzNWU2YWZjNWNhZTBkMjdmZTIu
LjYyMTg0MGM5NjgyMmZmMGE2YThjYzY4NTRiNjRhZmVkNWQ0NDZjOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIGJv
b2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAKIGNvbnN0IEF0
b21TdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0KCJm
aWVsZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0KCJmaWVs
ZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZmll
bGRzZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA2
MjBkMmM0MjFhMjEyNGJiOTJhMmE4NGE0ZmEwOGFjZTMxZWNlZDZmLi42NjVhY2U0N2U3OWUxNDNh
MWQwNjUzNTk4NzM3Y2U0MDdhMGEyMGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwCkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnNldEF1
dG9jb21wbGV0ZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbVN0cmluZyYg
SFRNTEZvcm1FbGVtZW50OjphdXRvY29tcGxldGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9mZigib2Zm
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGF1dG9jb21wbGV0ZUF0dHIpLCAib2ZmIikgPyBvZmYgOiBv
bjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGNhMDA2
MzljZWIzYjhkNDdjYTBiZGM4MDkyYjZmZDkzZDYzZWYyMjQuLjg1NGI2YmY3NGM4MzViYmIyOGJl
MjA1ZDgwYWIzMDA0MzgxZTNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcApAQCAtOTAzLDggKzkwMyw4IEBAIHNpemVfdCBIVE1MSW1hZ2VFbGVtZW50OjpwZW5k
aW5nRGVjb2RlUHJvbWlzZXNDb3VudEZvclRlc3RpbmcoKSBjb25zdAogCiBjb25zdCBBdG9tU3Ry
aW5nJiBIVE1MSW1hZ2VFbGVtZW50Ojpsb2FkaW5nRm9yQmluZGluZ3MoKSBjb25zdAogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlYWdlcigiZWFnZXIiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBl
YWdlcigiZWFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsYXp5KCJsYXp5
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1dG8mIGF0dHJpYnV0
ZVZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmxvYWRp
bmdBdHRyKTsKICAgICByZXR1cm4gaGFzTGF6eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUoYXR0cmli
dXRlVmFsdWUpID8gbGF6eSA6IGVhZ2VyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcAppbmRleCA3ODBiNzkxOTNkOTg3NjMyYjU5MmM5YjI0ZDg1ODBiNGVjNmE4
ZTQwLi4xNjUxMGNmNzdjZWUzOTUwN2VlMDVkMGQ3MjQyMGVmNmFhOGI3ODdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBjbGFz
cyBLZXlnZW5TZWxlY3RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50IHsK
ICAgICBLZXlnZW5TZWxlY3RFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBI
VE1MU2VsZWN0RWxlbWVudChzZWxlY3RUYWcsIGRvY3VtZW50LCAwKQogICAgIHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWtleWdl
bi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcHNldWRvSWQo
Ii13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTEzMCw3ICsxMzAs
NyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYg
Zm9ybURhdGEsIGJvb2wpCiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGtleWdlbigia2V5Z2VuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwCmluZGV4IDlmZTllMTRiNTY1MTU5MDY5OWYwOWE5NTVjNmNiNjI0MzJi
ZWQ2ZjAuLjkzYTZmNGNjZjUzZTRiMzBkM2QyOTk1ZTRlYWU0MzNmMzhlNzk0MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBA
QCBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29uc3Qg
QXRvbVN0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3JvdXAo
Im9wdGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3JvdXAoIm9w
dGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBv
cHRncm91cDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcApp
bmRleCA1NmI3MjA2YWUzYmU4ZjEwYTg4MTRhZTlhZmFjNjJiZmViNTYwOWFjLi4zNjA2NjViNzI4
ODAxNjhiMWZkNTkwNTY1YmQyNzRjOGM5ZmJhZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPdXRwdXRFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE91dHB1dEVsZW1l
bnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRAogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gb3V0cHV0KCJvdXRwdXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvdXRw
dXQoIm91dHB1dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gb3V0cHV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcAppbmRleCA3ZjAzNTRmNWM4MzlmNDVjNWEyYTZjYzZkNTc1MWQ0ZGNkN2JiNDRi
Li4xZGJkNDU0MWJmMzE2MDZlZTQ5OTZkMDAwMzI1MWFiZTAzYjVkMjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTQyMiw3ICs0MjIs
NyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jv
b3QoU2hhZG93Um9vdCYgcm9vdCkKIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0
T2ZTbmFwc2hvdE92ZXJsYXkoY29uc3QgRXZlbnRUYXJnZXQqIHRhcmdldCkgY29uc3QKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2VsZWN0b3IoIi5zbmFwc2hvdC1v
dmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0b3IoIi5zbmFw
c2hvdC1vdmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1
dG8gc2hhZG93ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGlmICghc2hhZG93KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCmluZGV4IGVlNDM3MzY2NzJiZWQyM2I0NzlmMWEzNGQyMjcwNDcxNzRmMWU5ZWIuLjMxMzNk
MDMxMDE3MjQ0YTNjYmI2YWJlM2FmYzMzYjZlNDg4ZGQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xMDAsOCArMTAwLDggQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAog
Y29uc3QgQXRvbVN0cmluZyYgSFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE9uZSgic2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzZWxlY3RPbmUoInNlbGVjdC1vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG1fbXVsdGlwbGUgPyBzZWxlY3RNdWx0aXBsZSA6IHNlbGVjdE9u
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApp
bmRleCBhNjAwMzhmZTk0ZjI5OGIwOGVhNGFiNmVkYWNkN2QxNTU3YWE4NzU1Li5jMDZhM2U1MzMz
ODNhMWQ1MjFjM2I2OWFmMmM1ZmJiMmYzZGQ0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTY5LDEwICsxNjksMTAgQEAgdm9pZCBIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2V0Um93U3BhbkZvckJpbmRpbmdzKHVuc2lnbmVkIG4pCiBjb25z
dCBBdG9tU3RyaW5nJiBIVE1MVGFibGVDZWxsRWxlbWVudDo6c2NvcGUoKSBjb25zdAogewogICAg
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RhYmxlcy5odG1sI2F0
dHItdGgtc2NvcGUKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cm93KCJyb3ciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbCgiY29sIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNv
bGdyb3VwKCJjb2xncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvdygi
cm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sKCJjb2wiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzY29wZUF0dHIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBlMTk1MDRi
ZDliODcwYjY2ODMzZGNhYjJmYzU1MmY2MTQ2ZjMxMDRiLi5hODk4ODNmYWQzMGQ5NzlmZWU2YThh
ZDMzNDJjOGQyYmI1MzQ5NDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIAogY29uc3QgQXRv
bVN0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEoInRl
eHRhcmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEoInRleHRh
cmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0ZXh0
YXJlYTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzODhlY2I4YjAxYTBmYzc3MTc2MTI3MDk0Nzg5NzU2NGE2NGM5
ZWE2Li4zZGM0NjNiYjdkYzI2ZTNmMGI3ZTZkZTI4MzllZGYzZWE0ZjFmYzc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
Mzk3LDkgKzM5Nyw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBkaXJlY3Rpb25T
dHJpbmcoVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9uZSgibm9uZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
YmFja3dhcmQoImJhY2t3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9u
ZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcndhcmQoImZvcndh
cmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dhcmQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGRpcmVj
dGlvbikgewogICAgIGNhc2UgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb246CkBAIC01MzUsOSArNTM1
LDggQEAgYm9vbCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aXNJbm5lclRleHRFbGVtZW50
RWRpdGFibGUoKSBjb25zdAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCkKIHsKICAgICBpZiAoYXV0byBpbm5lclRleHQg
PSBpbm5lclRleHRFbGVtZW50KCkpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHBsYWluVGV4dE9ubHlOYW1lKCJwbGFpbnRleHQtb25seSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxh
aW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgICAgIGNvbnN0IGF1dG8mIHZhbHVlID0gaXNJbm5lclRleHRFbGVtZW50
RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdldCgpIDogZmFsc2VOYW1lLmdldCgpOwog
ICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29u
dGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRNb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRNb2RlLmNw
cAppbmRleCBhMjBlYWNjZmY5YzZkMDU3NjliOThkNjhjNzNmNWFmYzFiOWJlNmJlLi4zNDlkODVi
NTYyZTdiYjljNWFkZmVkNTI3MTFmNTMwNWM0N2RlNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0TW9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1v
ZGUuY3BwCkBAIC04Miw0OSArODIsNDkgQEAgbmFtZXNwYWNlIElucHV0TW9kZU5hbWVzIHsKIAog
Y29uc3QgQXRvbVN0cmluZyYgbm9uZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG1vZGUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
b2RlKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbCgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
dXJsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidXJs
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBlbWFpbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG1vZGUoImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgi
ZW1haWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1v
ZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWVyaWMoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGVjaW1h
bCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImRlY2lt
YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG1vZGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlTmFtZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKaW5k
ZXggYThhNmU3OWRjYzY4YjI5NmJmZDg3MTk3Y2NmNGI0NmU5YTdmOWVlNC4uM2UyNmQ3MGI2ZjBl
YzdlZWYxZDQ5OWExOWQ0YTBiZmE5ZDIyOWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGVOYW1lcy5jcHAKQEAgLTMzLDEzOSArMzMsMTM5IEBAIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1l
cyB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgY2hlY2tib3goKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoImNvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgiY29sb3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWUoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBkYXRldGltZWxvY2FsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
ZW1haWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJl
bWFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgiZmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5h
bWUoImZpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgaW1hZ2Uo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBtb250aCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG5hbWUoIm1vbnRoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgi
bW9udGgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWJlcigpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcGFzc3dvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29y
ZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiByYWRpbygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG5hbWUoInJhZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgicmFkaW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcmVzZXQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBuYW1lKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVsZXBo
b25lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGVs
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbmFtZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRl
eHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbmFtZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWVrKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgid2VlayIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAppbmRleCBlNDgyYjM2MmIxOGE3YTU0OTQ1Mzc2NDY0
NGNjZmU3Y2JmNTE1MmIzLi4zMjExNTBjYTdlZjk0MjFkNzRkY2Q1MmQ4ZDZjMjcyOGMwMWI1N2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4
OSwxOSBAQCB2b2lkIE1lZGlhQ29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0
aWMgY29uc3QgQXRvbVN0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGljIGNv
bnN0IEF0b21TdHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBB
dG9tU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCmluZGV4IGRiNjM2ZTI2OWEwYzViOTc5ZjM0NTJmYmJiOWFjMDVlNmYxMjMxYjcuLmRmNWVi
MzUwYzQxNzAwMTI2ODI4NzY5Yjc4NTU3YjYwM2U2ZmY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yNTUsOCArMjU1LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNrTmFt
ZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNsaWRlclJ1bm5h
YmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50
KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xpZGVyUnVubmFibGVUcmFj
a05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IDc3MWNm
NDcxMjMyYjg1ZWMzMGIyMjY1NTRhMzI5ZDgwYjI1YTAzNjEuLjE4N2YzZjY0ZmY5NTYzMDAzMTJm
ZWJhMGY3YzEzMGFiY2Y3OWViNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAKQEAgLTY0LDEwICs2NCw5IEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjphZGRTZWFyY2hS
ZXN1bHQoKQogCiBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQmIHJlc3VsdEJ1dHRvbiwgaW50IG1heFJlc3VsdHMp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNl
YXJjaERlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQt
c2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
U2VhcmNoUmVzdWx0c0J1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRTZWFyY2hEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3VsdHNE
ZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0J1dHRvbk5hbWUo
Ii13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIGlmICghbWF4UmVzdWx0cykKICAgICAgICAgcmVzdWx0QnV0dG9uLnNl
dFBzZXVkbyh3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUpOwogICAgIGVsc2UgaWYg
KG1heFJlc3VsdHMgPCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCmluZGV4IDJmNTllNDUzOTIyOTY0M2QxYzgwM2JjNmNlMDI0ZWM2ZTQ1MGUwMzguLjJkZTQz
ZGFkNWE5ZmI2ZDhjNTkxZDdmZmZkNDRlMWM0NDI2Nzg2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTM0OCw4ICszNDgsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgfQogCiAgICAgaWYgKHNo
b3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRpY2F0b3JOYW1lKCItd2Via2l0
LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRpY2F0
b3JOYW1lKCItd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3IgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0
UHNldWRvKHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSk7CiAKQEAgLTQ1Nyw4ICs0NTYsNyBA
QCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlRGF0YUxpc3REcm9wZG93bkluZGljYXRv
cigpCiAgICAgaWYgKCFtX2NvbnRhaW5lcikKICAgICAgICAgY3JlYXRlQ29udGFpbmVyKCk7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TGlzdEJ1
dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdExpc3RCdXR0b25OYW1l
KCItd2Via2l0LWxpc3QtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxvd2VkU2NvcGUgYWxsb3dlZFNj
b3BlKCptX2NvbnRhaW5lcik7CiAgICAgbV9kYXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yID0gRGF0
YUxpc3RCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpLCAqdGhpcyk7
CiAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2RhdGFMaXN0RHJvcGRvd25JbmRpY2F0
b3IpOwpAQCAtNzgyLDggKzc4MCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVD
b250YWluZXIoKQogICAgIEFTU0VSVCghbV9jb250YWluZXIpOwogICAgIEFTU0VSVChlbGVtZW50
KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dFRleHRmaWVsZERlY29yYXRpb25Db250YWluZXJOYW1lKCItd2Via2l0LXRleHRmaWVsZC1kZWNv
cmF0aW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3JhdGlvbkNvbnRhaW5l
ck5hbWUoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpF
dmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoKmVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93
Um9vdCgpKTsKIApAQCAtODAzLDggKzgwMCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUgYXV0b0ZpbGxCdXR0b25UCiAg
ICAgaWYgKGF1dG9GaWxsQnV0dG9uVHlwZSA9PSBBdXRvRmlsbEJ1dHRvblR5cGU6Ok5vbmUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBtX2F1dG9GaWxsQnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLT5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0UHNldWRv
KGF1dG9GaWxsQnV0dG9uVHlwZVRvQXV0b0ZpbGxCdXR0b25Qc2V1ZG9DbGFzc05hbWUoYXV0b0Zp
bGxCdXR0b25UeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CmluZGV4IGM4Y2M2YjQ5ZTQ2ZTBjZjkwYmFiMzI2NWQxOWJkYzAyMDhjNzRjZTAuLjk5YzlhNjg0
NzY0ZTc2MDBiODkzMDAzODViNjQyOGE5OTk5MTU4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODEsMTUgKzE4MSwxNCBAQCB2b2lkIFZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogCiAgICAgU2hhZG93Um9vdCYgc2hhZG93Um9v
dCA9IG1fZWxlbWVudC0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVO
YW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9u
LWJ1YmJsZS1hcnJvdy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxp
ZGF0aW9uQnViYmxlQXJyb3dOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTWVzc2FnZU5hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVU
ZXh0QmxvY2tOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVIZWFkaW5nTmFtZSgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1oZWFkaW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRWYWxpZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
Ym9keSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFsaWRhdGlv
bi1idWJibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0
aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJv
dy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRh
dGlvbkJ1YmJsZUFycm93TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVNZXNz
YWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlVGV4dEJsb2NrTmFtZSgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0VmFsaWRhdGlvbkJ1YmJsZUhlYWRpbmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWhlYWRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxp
ZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAgICBtX2J1YmJsZSA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDJmMTY2ZjcyMjI1NjFkODljMzllOTBmODJj
Yjc3MjE0MTA4YTBjZmQuLjEyZDUwZmNmYTRjZWRhN2UyMjMwN2ZjNmU5ZjM2MDdmYjBhYmRkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAKQEAgLTQ5LDggKzQ5LDcgQEAgUmVmPERldGFpbHNNYXJrZXJDb250cm9sPiBEZXRh
aWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIERldGFpbHNNYXJr
ZXJDb250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdERldGFpbHNNYXJrZXJO
YW1lKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2VyTmFt
ZSgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0RGV0YWlsc01hcmtlck5hbWUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tD
b250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDRmNTFiNTJlNmM0NjdiNDAz
OGI0N2NhMDU1OTc0ZTRkYTdhNWEwYTEuLjFkM2U5MmQzZWI0ZGVjMjMwZWVhODBlOGUzYTc5Yzdk
ZjAxNzczZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC03
Nyw4ICs3Nyw3IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiAgICAgOiBIVE1MRGl2RWxlbWVu
dChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVs
ZW1lbnQpKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSgiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJO
YW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNz
U2hhZG93RWxlbWVudC5jcHAKaW5kZXggNmJjMTE3MGZkNGZiOTg5Yjg0OWFkZTRlN2NjMzZjMmFh
Yjg1MzY4NS4uZjU3NGYwNzQ3ZDE5YWIwOGIxMGE0NWYzMTllNzg0M2FhMjRiMjZhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
Y3BwCkBAIC05MSw4ICs5MSw3IEBAIHZvaWQgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OnNldFdpZHRo
UGVyY2VudGFnZShkb3VibGUgd2lkdGgpCiAKIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVudD4gUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzSW5uZXJF
bGVtZW50TmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQ
cm9ncmVzc0lubmVyRWxlbWVudE5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NJbm5lckVsZW1lbnQoZG9j
dW1lbnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0lubmVyRWxlbWVu
dE5hbWUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDAsOCArOTksNyBAQCBSZWY8UHJvZ3Jl
c3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogCiBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1i
YXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzQmFyRWxl
bWVudD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9jdW1lbnQp
KTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0Jhck5hbWUpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDksOCArMTA3LDcgQEAgUmVmPFByb2dyZXNzQmFyRWxlbWVudD4g
UHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZWY8UHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzVmFsdWVFbGVtZW50
PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7
CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUpOwogICAgIHJl
dHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAppbmRleCAzNTMzZThiYTgwNzc0ZGMyZDY2YzE1YTQ4MTIxYzYzNzhkZGFl
NmE5Li42OGE0OTBlMWZiMTQ0ZTczMWQzZDA3NDhjODc5MGM5NzNjZTE4M2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTU4
Nyw4ICs1ODcsOCBAQCBPcHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJUaHVtYkVs
ZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25zdCBSZW5kZQogewogICAgIC8vIFRoaXMgZG9l
c24ndCBhY3R1YWxseSBjb21wdXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBpY2sg
c2hhZG93IHBzZXVkbyBpZCB3aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xp
ZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCIt
d2Via2l0LXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1l
ZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoIWhvc3RTdHls
ZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY0MSw4ICs2NDEsOCBAQCBPcHRp
b25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZl
Q3VzdG9tU3R5bGUoY29uc3QgUgogewogICAgIC8vIFRoaXMgZG9lc24ndCBhY3R1YWxseSBjb21w
dXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBpY2sgc2hhZG93IHBzZXVkbyBpZCB3
aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xpZGVy
LWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Vi
a2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
ZWRpYVNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Via2l0LXNs
aWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBpZiAoIWhvc3RTdHlsZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRleCA5ZTMy
OGY2YzZiMWFjYTdmY2QxMGVmZTViYzRmZTIyNGRjZmFkNDIzLi45ODQ2ZDAzZDk2NmIzZjkzMjA2
YjkxNDQyZmQyMjNiMDIwY2NhM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw4ICs1NSw3IEBAIGlubGluZSBTcGluQnV0
dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGluQnV0
dG9uT3duZXImCiAgICAgLCBtX3ByZXNzU3RhcnRpbmdTdGF0ZShJbmRldGVybWluYXRlKQogICAg
ICwgbV9yZXBlYXRpbmdUaW1lcigqdGhpcywgJlNwaW5CdXR0b25FbGVtZW50OjpyZXBlYXRpbmdU
aW1lckZpcmVkKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEhhc0N1c3RvbVN0
eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogICAgIHNldFBzZXVkbyh3ZWJraXRJbm5lclNwaW5CdXR0
b25OYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDc5MzRkZGM1ZTI2Y2ViZWUwOTZhNjg4YTA2
YzUyZjY1MjMwYzJkYzcuLmI2ZDY5YzFjNDhkNDI0OWVlNDYwY2NlNWNmOTc1ZWUyNTc0ZGE0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcApAQCAtMTgyLDggKzE4Miw3IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVt
ZW50U3R5bGU+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxl
KGNvCiBpbmxpbmUgVGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OlRleHRDb250cm9sUGxh
Y2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50
KGRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHBsYWNlaG9sZGVyTmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWNlaG9sZGVy
TmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgc2V0UHNldWRvKHBsYWNlaG9sZGVyTmFtZSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNv
bHZlQ2FsbGJhY2tzKCk7CiB9CkBAIC0yNTYsOSArMjU1LDggQEAgYm9vbCBTZWFyY2hGaWVsZFJl
c3VsdHNCdXR0b25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiBpbmxp
bmUgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0U2VhcmNoQ2FuY2VsQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1
dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRTZWFyY2hDYW5jZWxCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc2V0SGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMjJmNjIwOTZkY2Iw
ZmNlOGE2M2QwZjhjNDhkNDU5YWQwMzFkMWE1ZC4uOTc1YTY1YjBjYzQ3MzlhYzg2ZDc3MmU3MTk2
ZWEwYmU5NjNkMjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91
VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKQEAgLTQxLDggKzQxLDcgQEAgUmVmPFlv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jKQogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6WW91VHViZUVtYmVk
U2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChI
VE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgiLXdlYmtpdC1w
bHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgiLXdl
YmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IDk2NDMxNmEyMmUyYWYzYTQyOTdlOThl
NzMxMzQ2MjU3NjVhYzlkZjYuLjZkODAxYTYxNWYxMTZiNGQ1OTYyN2UyODlhYTYzZWQxNmY2Y2Vh
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtOTQsOCArOTQsNyBAQCBS
ZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjOjp0cnlDcmVhdGUoRAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Via2l0LWltYWdlLWNv
bnRyb2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdl
YmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNvbnRy
b2xzQnV0dG9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IDJmOWRmNDlj
MjJlYmVhMGI4ZTQ1OTJhZjFhNTY0N2I2NzY1MWYyOWIuLjNhYTQ1NDljMTNjODc1MTc1NTBiM2Y3
MWYzODQ5NzgyYjZkMGI4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC04Niw4
ICs4Niw3IEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNS
b290RWxlbWVudDo6dHJ5Q3JlYXRlKERvY3VtZW50JiBkCiAgICAgaWYgKCFkb2N1bWVudC5wYWdl
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQtaW1h
Z2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQtaW1h
Z2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBS
ZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcg
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgY29udHJvbHMtPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhX
ZWJraXRJbWFnZUNvbnRyb2xzTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcAppbmRleCAwMjA5ZjllYzFjMDJjOTc0ZmQ0ZTYwYjFmZDQwMDM3ODYzODM2MGMzLi4y
M2E5MWQwMDBhY2JiZTEwMjVjMDU0YmYyYzViMmJjZTYxMTA4YzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTQxLDM3ICs0MSwzNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5
d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFsdGVybmF0
aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVy
bmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJh
Y2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIEF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWFpbigibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG1haW47CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6Om1h
aW5EZXNjS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG1haW5EZXNjKCJtYWluLWRlc2MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
YWluRGVzYygibWFpbi1kZXNjIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtYWluRGVzYzsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9UcmFjazo6
dHJhbnNsYXRpb25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFuc2xhdGlvbjsKIH0KIAogY29uc3QgQXRvbVN0
cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IGM2NWExMTg3OWU2NTEz
MjM5NTEzMTQzNzI4MDdiY2NkNmUxZmNjNjQuLmQ0ZTBmNjkxMzFhMWJiMGFjMzRhM2E2MGFmNTAy
NTcyMTg0NDE3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAg
LTUyLDM3ICs1MiwzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNrKTsK
IAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJzdWJ0
aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRp
dGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc3Vi
dGl0bGVzOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY2FwdGlvbnNLZXl3b3JkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMo
ImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMoImNh
cHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBj
YXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRlc2NyaXB0aW9uc0tleXdv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXNj
cmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9t
U3RyaW5nJiBjaGFwdGVyc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgbWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAgICAKIHN0YXRpYyBjb25z
dCBBdG9tU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggNjU1MTA4YTU5N2M5NTNmYzA4NzllZjA4YTgzMmMx
MjQ0YjhkZmRhMS4uN2RjOGFhM2Y2YTQ4NmQ0MWNmYjcwOTdlMGU0M2I2YWM4ZjU1OWQ4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNjQsMTkgKzY0
LDE5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVCb3gpOwogCiBj
b25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRv
SWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ryb3BT
aGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ryb3Ai
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNrZHJvcFNoYWRvd1BzZXVk
b0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNrZHJvcCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlQmFja2Ryb3BTaGFkb3dQ
c2V1ZG9JZDsKIH0KIApAQCAtNDg4LDggKzQ4OCw3IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpyZWJ1
aWxkRGlzcGxheVRyZWUoKQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxvd2Vk
U2NvcGUgYWxsb3dlZFNjb3BlRm9yUmVmZXJlbmNlVHJlZSgqbV9jdWVOb2RlKTsKIAogICAgIGlm
ICghbV9kaXNwbGF5VHJlZSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdlbmVyaWMtY3Vl
LXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdl
bmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIG1fZGlzcGxheVRyZWUgPSBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShvd25lckRvY3VtZW50
KCksICp0aGlzKTsKICAgICAgICAgbV9kaXNwbGF5VHJlZS0+c2V0UHNldWRvKHdlYmtpdEdlbmVy
aWNDdWVSb290TmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCmluZGV4IDNhNmU0NzIxZTc3MmQ4ZmQxZGI1OWVkODMzZmU3YjJkNTQxNjgzNmYuLmNkOGM4
N2IwMjdlN2E0NzUzOGMyYWUyYmE4ZmJmY2U0M2JjMzI4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUgdmFsdWUpCiAKIHN0YXRpYyBj
b25zdCBBdG9tU3RyaW5nJiB1cEtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtleXdvcmQoInVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdXBLZXl3b3JkOwogfQogCkBAIC0yNjIsMjEgKzI2MiwyMSBAQCB2
b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5nLCBW
VFRTY2FubmVyJiBpbnB1dCkKIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJh
Y2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xh
c3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVn
aW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5l
clNjcm9sbGluZ0NsYXNzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRU
cmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZCgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBz
ZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja1JlZ2lv
blNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9u
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25TaGFk
b3dQc2V1ZG9JZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmlu
ZGV4IGI1ZGYxODNhYmQyZmY4Y2UxYjhmMzllYmZkMWQyMGY1NjBjMDU5YTMuLjM4ZWQ1MWM3NmUx
ZjUzYzA4YmU3MjBhZThkNzY2NGI0ODAxNDQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmNwcApAQCAtNDYsMzcgKzQ2LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRpdmUo
ImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRp
dmUoImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6
Y2FwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9U
cmFjazo6bWFpbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGNhcHRpb25zKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6
c2lnbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzaWduKCJzaWduIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2lnbigi
c2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc2ln
bjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6c3VidGl0bGVzS2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxl
cygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVz
KCJzdWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVu
dGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCBlNGE5
NGE1MDU5NjFhYTM3OTdmYTZkMDRlYTY1YzY0NTY1YWQ5NmRkLi43NTA4ZDc1YWNmYTE5ZTExZGZh
MjU2YjY2NzM0NGE2MzNkYTIzYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtODIsNyArODIsNyBAQCBjb25z
dCBBdG9tU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25z
dAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1f
aW5pdGlhdG9yTmFtZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBk
ZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZh
dWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGRlZmF1bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggODliNmI2ZDdlMWY0YzFhOTFlZTZlMjUyMTU1MDA3ZGZlMDlhMDA5OC4uYTcwMjNhNmQz
NzUwYjYxNjA3Nzc5ZGJkZjNiYTFkMDA3NDVhZTdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcApAQCAtMzQwNiwxMCArMzQwNiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVu
dAogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRv
bVN0cmluZyYga2V5SWRlbnRpZmllcikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBMZWZ0KCJMZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBEb3duKCJEb3duIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gTGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IFJpZ2h0KCJS
aWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEZvY3VzRGly
ZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3Bw
CmluZGV4IDIyOTZhOGY5ZGQ1OWYyYWU5ODQ1ZDZlMjI3YTM3ODUzZDFmYzU5NWUuLmUyYTRjMDgw
YWQ0MmI2MTFjZWM5MzczZTYyMzMxZTU4MGQwYzg0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAK
QEAgLTY4NCw3ICs2ODQsNyBAQCBib29sIFF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0ZvcndhcmRD
YWNoZSgpIGNvbnN0CiAgICAgLy8gYmVjYXVzZSBpdCBwdXRzIGFuIG92ZXJsYXkgKHdpdGggY2xh
c3MgImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIpIG92ZXIgdGhlIHBhZ2Ugd2hlbiBu
YXZpZ2F0aW5nIGF3YXkgYW5kIGZhaWxzCiAgICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gY29taW5n
IGJhY2sgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIChlLmcuIGluICdwYWdlc2hvdycgZXZl
bnQgaGFuZGxlcikuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTc2NzAwNjQ+LgogICAgIC8vIE5vdGUg
dGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGZvciBkb2NzLmdvb2dsZS5jb20gaG9zdCBiZWNhdXNl
IG9mIGhvc3RlZCBHIFN1aXRlIGFwcHMuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1m
cmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2dsZURv
Y3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvKiBmaXJzdENoaWxkSW5Cb2R5
ID0gbV9kb2N1bWVudC0+Ym9keSgpID8gbV9kb2N1bWVudC0+Ym9keSgpLT5maXJzdENoaWxkKCkg
OiBudWxscHRyOwogICAgIGlmIChpczxIVE1MRGl2RWxlbWVudD4oZmlyc3RDaGlsZEluQm9keSkp
IHsKICAgICAgICAgYXV0byYgZGl2ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCpmaXJzdENo
aWxkSW5Cb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uY3BwCmluZGV4IGVlMGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5ZWNl
OWFkNjczN2QuLjkzYzQ5YmNmNmQ5MWY0ZGNkZjU0NjcxNGE1NDM2ODNlMTJkNDc5NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVL
ZXlmcmFtZUFuaW1hdGlvbnMoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyCiAgICAgLy8g
VG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICBtX2tleWZyYW1lQW5pbWF0aW9uT3Jk
ZXJNYXAuY2xlYXIoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9uZSgi
bm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAKICAgICAvLyBO
b3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMgYWN0aXZlIGFuZCBhZGQgYW55
IG5ldyBhbmltYXRpb25zLgogICAgIGlmICh0YXJnZXRTdHlsZS5hbmltYXRpb25zKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggYjE0OTUxODQ0NzNkY2FlMWFmYzVj
YTk3ZDQ0NGFiYzY1OTE3YjhjOC4uMDg0ZjQzMjk1ZDgxNWUzMDAzMzI1ZDk4M2I3NzAzOTNkOTY5
YTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTQwMyw3ICs0MDMs
NyBAQCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpvYnNlcnZlZEV2ZW50TmFtZXMoKQogCiBjb25zdCBBdG9tU3RyaW5nJiAgUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmV2ZW50TmFtZUFsbCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZXZlbnROYW1lQWxsKCJhbGxFdmVudHMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGV2ZW50TmFtZUFs
bDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCBlOGUzOWM5MjYz
ZDdhNTg3M2JhOWMxNzRiNThlNDFmZjgzZDc3ZDQwLi4zYWQ2OWI3ZTc0M2NlYTE4MWQ0Y2ZmYzU4
YmYyZDJiZTc4NjY0NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpAQCAt
MTg0LDcgKzE4NCw3IEBAIGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21TdHJp
bmcmIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFs
bEV2ZW50cyI7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7CiAgICAgcmV0dXJuIHNFdmVudE5h
bWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCmluZGV4IDdmY2FhNDRkNTRhMzg3NDJmN2RkNTg3NDAwNmFhNDM3NmUyNTg0OGMuLmFi
YTFhODQyNjgwMjVjMTJmNzVkNjczNzNiOTMzMjZjZWM2YjNmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMTQ5LDEyICsxNDksMTIg
QEAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGFDYWNoZSYgZm9udFBsYXRmb3JtRGF0YUNhY2hlKCkK
IAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0
IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllcigiQ291cmll
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lcygiVGlt
ZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoIkNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyTmV3KCJDb3VyaWVyIE5ldyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgcGxhdGZvcm1TcGVj
aWZpY0FsdGVybmF0ZSA9IHBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKTsK
ICAgICBpZiAoIXBsYXRmb3JtU3BlY2lmaWNBbHRlcm5hdGUuaXNOdWxsKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYzgyOGJi
ZTdlNzc1NWVlNzExMjE3MjNlOWYxNzAyN2VkMWZhZTI0Ni4uNWMyYWFmOGFjY2IzMTYwMDA4ZGNi
ZmFkMDlmNGY1ZmE4ZmE3OTE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMjk3LDEzICsyOTcsMTMgQEAgc3RhdGljIHZvaWQg
YWRkTWVkaWFFbmdpbmUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyRmFjdG9yeT4mJiBmYWN0
b3J5KQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gYXBwbGljYXRpb25PY3RldFN0cmVhbTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IHRleHRQbGFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZh
aXJQbGF5U3RyZWFtaW5nLmNwcAppbmRleCAyZDZlOWFhNjNjNGUxOTlkZDk5MmUxNzQ0MmU1ZGFl
MGU2MzQxOGJlLi44YWM0OGVjNWRjNjliMzE0OTU3YmE0MzNmOTcxMDFlYTI3NzY5NjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKQEAgLTc1LDEzICs3NSwx
MyBAQCBjb25zdCBWZWN0b3I8Rm91ckNDPiYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2
YWxpZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcwogCiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Qcml2
YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJzaW5mIikg
fTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CiAgICAgcmV0dXJuIHNp
bmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6
c2tkTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNrZCB7
IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJza2QiKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoInNrZCIpIH07CiAgICAgcmV0dXJuIHNrZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggOTlhOTNjMjU5OGQ0NzZjMTQyNjliNDRmOTFiMTMwN2Q0YzU3Yjk4ZC4uM2I4MDQy
ODllMTNjZWQ4YzEyN2QyYzAwOTRlMWYwNDkzZmE3YzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0zMDE4LDEyICszMDE4LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpCiAjaWYg
RU5BQkxFKERBVEFDVUVfVkFMVUUpCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWV0YWRhdGFU
eXBlKE5TU3RyaW5nICphdk1ldGFkYXRhS2V5U3BhY2UpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVzZXJEYXRhKCJjb20uYXBwbGUucXVp
Y2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcubXA0
cmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZU1ldGFkYXRhKCJjb20uYXBwbGUu
cXVpY2t0aW1lLm1kdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRhKCJj
b20uYXBwbGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZDNNZXRhZGF0YSgib3Jn
LmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGxzRGF0ZVJhbmdlTWV0YWRhdGEoImNvbS5h
cHBsZS5xdWlja3RpbWUuSExTIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcXVp
Y2tUaW1lVXNlckRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUudWR0YSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcubXA0cmEiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGlt
ZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaVR1bmVzTWV0YWRhdGEo
ImNvbS5hcHBsZS5pdHVuZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZDNN
ZXRhZGF0YSgib3JnLmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhsc0Rh
dGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChbYXZNZXRhZGF0YUtleVNwYWNlIGlzRXF1
YWxUb1N0cmluZzpBVk1ldGFkYXRhS2V5U3BhY2VRdWlja1RpbWVVc2VyRGF0YV0pCiAgICAgICAg
IHJldHVybiBxdWlja1RpbWVVc2VyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCBm
NjI4YWMyYjZjZTc0ZmZjNTIwNmIxYTJkOWNmZjU3OTIxOTA5N2Q1Li4zMzJkMmVmYzA2ZmU5YTQw
YWExZWM2ZjJlNDc1ZDhlMzI3NzJkMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC03
MDUsMTMgKzcwNSwxMyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1pbGFyRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgLy8gU3Vic3RpdHV0ZSB0aGUgZGVmYXVsdCBtb25vc3BhY2UgZm9udCBm
b3Igd2VsbC1rbm93biBtb25vc3BhY2UgZm9udHMuCiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGZhbWlseSwgIm1vbmFjbyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGZhbWlseSwgIm1lbmxvIikpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGNvdXJpZXIoImNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gY291cmllcigiY291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGNvdXJp
ZXIpOwogICAgIH0KIAogICAgIC8vIFN1YnN0aXR1dGUgVmVyZGFuYSBmb3IgTHVjaWRhIEdyYW5k
ZS4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibHVjaWRh
IGdyYW5kZSIpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2
ZXJkYW5hKCJ2ZXJkYW5hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
ICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZl
cmRhbmEoInZlcmRhbmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2NyaXB0aW9uLCB2ZXJkYW5hKTsKICAgICB9CiAj
ZW5kaWYKQEAgLTcyMCw4ICs3MjAsOCBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1pbGFy
Rm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhc2h0byhNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiUGFzaHRvIikpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHVyZHUoTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVyZHUiKSk7CiAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hX
b3Jkc1szXSA9IHsgJmFyYWJpYy5nZXQoKSwgJnBhc2h0by5nZXQoKSwgJnVyZHUuZ2V0KCkgfTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZ2VlemFQbGFpbigiR2VlemFQ
cm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGZvciAoU3RyaW5nKiBtYXRjaFdvcmQg
OiBtYXRjaFdvcmRzKSB7CiAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnNJZ25vcmluZ0FTQ0lJ
Q2FzZSgqbWF0Y2hXb3JkKSkKICAgICAgICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2Ny
aXB0aW9uLCBpc0ZvbnRXZWlnaHRCb2xkKGRlc2NyaXB0aW9uLndlaWdodCgpKSA/IGdlZXphQm9s
ZCA6IGdlZXphUGxhaW4pOwpAQCAtMTUwNywxMCArMTUwNywxMCBAQCBjb25zdCBBdG9tU3RyaW5n
JiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3RyaW5n
JiBmYW1pbAogICAgIHN0YXRpYyBjb25zdCBVQ2hhciB3ZWlydWFuWWFIZWlTdHJpbmdbXSA9IHsg
MHg1ZmFlLCAweDhmNmYsIDB4OTZjNSwgMHg5ZWQxIH07CiAgICAgc3RhdGljIGNvbnN0IFVDaGFy
IHdlaXJ1YW5aaGVuZ0hlaXRpU3RyaW5nW10gPSB7IDB4NWZhZSwgMHg4ZWRmLCAweDZiNjMsIDB4
OWVkMSwgMHg5YWQ0IH07CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
c29uZ3RpU0MoIlNvbmd0aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc29uZ3RpVEMoIlNvbmd0aSBU
QyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNvbmd0aVNDKCJTb25ndGkgU0MiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzb25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlaXRpVENSZXBsYWNlbWVudCgiUGluZ0Zh
bmcgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2gg
KGZhbWlseU5hbWUubGVuZ3RoKCkpIHsKICAgICBjYXNlIDI6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250
RGF0YWJhc2VDb3JlVGV4dC5jcHAKaW5kZXggY2M0ZTJiYzQ0NmYyOGU0OWRlYjUzMzZhMzNiMGJi
Zjc5ODZmYzJkMC4uMzUwYjE2YTdlMWVjMmE1M2M0OWY5MTJhZGNlNjc5MTE1MmYzY2EwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9u
dERhdGFiYXNlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcApAQCAtMjEzLDIyICsyMTMs
MjIgQEAgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OkNhc2NhZGVMaXN0UGFyYW1ldGVycyBT
eXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c3kKIAogICAgIHN3aXRjaCAoc3lzdGVtRm9udEtp
bmQpIHsKICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpTeXN0ZW1VSTogewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUkgPSBBdG9tU3RyaW5nKCJzeXN0
ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVtVUkgPSBB
dG9tU3RyaW5nKCJzeXN0ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJLmdldCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlTZXJpZjogewotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlTZXJpZiA9IEF0b21TdHJp
bmcoInVpLXNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3Rl
bVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1zZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlTZXJpZi5nZXQo
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJTW9u
b3NwYWNlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0
ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmcoInVpLW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmcoInVp
LW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
cmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlNb25vc3BhY2UuZ2V0KCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSVJvdW5kZWQ6IHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJUm91bmRlZCA9IEF0b21T
dHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c3lzdGVtVUlSb3VuZGVkID0gQXRvbVN0cmluZygidWktcm91bmRlZCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlS
b3VuZGVkLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4
IGEwYWEyNTAzZWE1ZWJlYzljYmVhNWFjNzI3ZjcwNjA1OTM5NDU3NTUuLmVmNjk1MjE2NGYwMzBm
NWIwZjc0YTM4MDVmMzU3YmFlNjJiN2NiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBAIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0ZXJFZmZlY3Qm
IHNvdXJjZUVmZmVjdCkKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5h
bWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2Vm
ZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApp
bmRleCAwNDVlZTAxZjIyM2U0MjJmZmYwNDZmZWEyZjRjYTJkZGUwZGRkNzEyLi44OGEzNmE0MTAy
NmJkM2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAgUmVmPFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShG
aWx0ZXImIGZpbHRlcikKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0
TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNf
ZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHNfZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQppbmRleCA0
ZjA4Y2EwNmQyNGU5ZGMzZmEwNDM0MThjM2NiZmMyODI3NmVlMWQxLi41ZjRkZDhhNzFhYWY3M2Vm
MGNlY2Q5MThlOWQ0OGNkNGQ3M2ZmNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTUzLDggKzUzLDggQEAgRm9u
dFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpnZXRDdXN0b21GYWxsYmFja0ZvbnQoY29uc3QgVUlu
dDMyIGMsIGNvbnN0IEZvbnREZXMKIHsKICAgICBBU1NFUlQocmVxdWlyZXNDdXN0b21GYWxsYmFj
a0ZvbnQoYykpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhlbHZl
dGljYUZhbWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9t
YW5QU01URmFtaWx5KCJUaW1lc05ld1JvbWFuUFNNVCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGhlbHZldGljYUZhbWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuUFNNVEZhbWlseSgiVGltZXNOZXdSb21h
blBTTVQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBBdG9tU3Ry
aW5nKiBmYW1pbHkgPSBudWxscHRyOwogICAgIHN3aXRjaCAoYykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uaAppbmRleCAxN2NiNTBlM2E1NTUxMDU1YjMzYjU2ZDNhNTFh
NjY4M2I3N2ZjMDIzLi4wOTg5OTgwZTQ2NTY5OGRlY2Y2NGU0ZjQ3NWI1NDEyYmI4MjA4ZGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApAQCAtMzQsNyArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfVkFSSUFCTEUo
QWNjZXNzb3IsIE5hbWUsIFR5cGUpIFwKICAgICBHTHVpbnQgQWNjZXNzb3IjI0xvY2F0aW9uKCkg
eyBcCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KE5hbWUsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAorICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoTmFtZSwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOyBcCiAgICAgICAgIHJldHVybiBnZXRM
b2NhdGlvbihuYW1lLmdldCgpLCBUeXBlKTsgXAogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAppbmRleCA2OGQ0
OGU4NzY0OTVhODI2N2U3NTg5NzNmMWRlNWFiYzJlMTgxNWY4Li40YTQwOTdlZDRmYWRiNTMwMWU3
NDkwMGI2MjE5NGY4ODZkMjVkODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIFJl
ZlB0cjxGb250PiBGb250Q2FjaGU6OmZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9uCiAKIFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRG
YWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udE5hbWU7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxs
YmFja0ZvbnROYW1lOwogCiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1lLmdldCgpLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuICpmb250Rm9yRmFtaWx5KGZvbnREZXNjcmlwdGlvbiwgZmFsbGJh
Y2tGb250TmFtZSk7CkBAIC0zODQsNyArMzg0LDcgQEAgUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFz
dFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGkK
ICAgICAvLyBTZWFyY2ggYWxsIHR5cGljYWwgV2luZG93cy1pbnN0YWxsZWQgZnVsbCBVbmljb2Rl
IGZvbnRzLgogICAgIC8vIFNvcnRlZCBieSBtb3N0IHRvIGxlYXN0IGdseXBocyBhY2NvcmRpbmcg
dG8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Vbmljb2RlX3R5cGVmYWNlcwogICAgIC8v
IFN0YXJ0IHdpdGggVGltZXMgTmV3IFJvbWFuIGFsc28gc2luY2UgaXQgaXMgdGhlIGRlZmF1bHQg
aWYgdGhlIHVzZXIgZG9lc24ndCBjaGFuZ2UgcHJlZnMuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udHNbXSA9IHsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udHNbXSA9IHsKICAg
ICAgICAgQXRvbVN0cmluZygiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpLAogICAgICAgICBBdG9tU3RyaW5nKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKICAgICAgICAgQXRvbVN0cmluZygi
VGFob21hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLApAQCAtNjk0LDggKzY5
NCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0
ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAKIGNvbnN0IEF0b21TdHJpbmcmIEZvbnRD
YWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWls
eU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3
Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWljcm9zb2Z0U2Fuc1Nl
cmlmKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJpZigiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGZhbWlseU5h
bWUubGVuZ3RoKCkpIHsKICAgICAvLyBPbiBXaW5kb3dzLCB3ZSBkb24ndCBzdXBwb3J0IGJpdG1h
cCBmb250cywgYnV0IGxlZ2FjeSBjb250ZW50IGV4cGVjdHMgc3VwcG9ydC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJl
c3BvbnNlQ29jb2EubW0KaW5kZXggODVhYTFlMTQxNWIwMGY1MTE5ZWQ3YTFiNjQzYjk2YWZkMjBi
NzUwOS4uYjhiMDU3YjkyOTNjZTJhMjk5MDFmMWI4YTAzYjg0YWVkNzBiZDI3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNv
dXJjZVJlc3BvbnNlQ29jb2EubW0KQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0aWMgaW5saW5lIEF0
b21TdHJpbmcgZXh0cmFjdEhUVFBTdGF0dXNUZXh0KENGSFRUUE1lc3NhZ2VSZWYgbWVzc2FnZVJl
ZikKICAgICBpZiAoYXV0byBodHRwU3RhdHVzTGluZSA9IGFkb3B0Q0YoQ0ZIVFRQTWVzc2FnZUNv
cHlSZXNwb25zZVN0YXR1c0xpbmUobWVzc2FnZVJlZikpKQogICAgICAgICByZXR1cm4gZXh0cmFj
dFJlYXNvblBocmFzZUZyb21IVFRQU3RhdHVzTGluZShodHRwU3RhdHVzTGluZS5nZXQoKSk7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZGVmYXVsdFN0YXR1c1RleHQo
Ik9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFN0YXR1c1RleHQo
Ik9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBkZWZh
dWx0U3RhdHVzVGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NvbXBsZXhMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4
TGluZUxheW91dC5jcHAKaW5kZXggMjllYmU1NmFmMDkxMTJiMzFlNTM2OWZlODllYTc4OTc0YmY3
N2UwMC4uNDFiYjUyZjA2ZWY0ODZiNzFhNGNlNzZkODMyMGYzN2U5MThlMjk2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCkBAIC0yMTU4LDcg
KzIxNTgsNyBAQCB2b2lkIENvbXBsZXhMaW5lTGF5b3V0OjpjaGVja0xpbmVzRm9yVGV4dE92ZXJm
bG93KCkKICAgICAvLyBEZXRlcm1pbmUgdGhlIHdpZHRoIG9mIHRoZSBlbGxpcHNpcyB1c2luZyB0
aGUgY3VycmVudCBmb250LgogICAgIC8vIEZJWE1FOiBDU1MzIHNheXMgdGhpcyBpcyBjb25maWd1
cmFibGUsIGFsc28gbmVlZCB0byB1c2UgMHgwMDJFIChGVUxMIFNUT1ApIGlmIGhvcml6b250YWwg
ZWxsaXBzaXMgaXMgIm5vdCByZW5kZXJhYmxlIgogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250
ID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZo
b3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmaXJzdExpbmVG
b250ID0gbV9mbG93LmZpcnN0TGluZVN0eWxlKCkuZm9udENhc2NhZGUoKTsKICAgICBmbG9hdCBm
aXJzdExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RMaW5lRm9udC53aWR0aChtX2Zsb3cuY29uc3Ry
dWN0VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBtX2Zsb3cuZmlyc3RMaW5lU3R5bGUo
KSkpOwogICAgIGZsb2F0IGVsbGlwc2lzV2lkdGggPSAoZm9udCA9PSBmaXJzdExpbmVGb250KSA/
IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggOiBmb250LndpZHRoKG1fZmxvdy5jb25zdHJ1Y3RUZXh0
UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5k
ZXggODE1MGY1NWZkZTI2YTY0N2E3ZWQ4MDNhM2RiNzczMzZjNGE3MDk4Yi4uOTcwM2JlNDQ5ZjYy
MjlmYmMzNjAwZjA1MmUwODRkYTY5MTQ2ZTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTk5MSw4
ICs5OTEsOCBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xh
bXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAogICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgY29uc3QgVUNoYXIgZWxsaXBzaXNBbmRTcGFjZVsyXSA9IHsgaG9yaXpvbnRh
bEVsbGlwc2lzLCAnICcgfTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IGVsbGlwc2lzQW5kU3BhY2VTdHIoZWxsaXBzaXNBbmRTcGFjZSwgMik7Ci0gICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVs
bGlwc2lzLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBlbGxpcHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgICAgICBjb25zdCBSZW5k
ZXJTdHlsZSYgbGluZVN0eWxlID0gbnVtVmlzaWJsZUxpbmVzID09IDEgPyBmaXJzdExpbmVTdHls
ZSgpIDogc3R5bGUoKTsKICAgICAgICAgY29uc3QgRm9udENhc2NhZGUmIGZvbnQgPSBsaW5lU3R5
bGUuZm9udENhc2NhZGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKaW5kZXggMWQ3ZjAzMWNmZTUxYTIyNGE1YWY4YTA2ZTJkYjg3ZThkNDlk
ZWYyNy4uYmQwYjkwZTVmOTJhNDE4YmIyZWM1MGZkODZmZjNhMzc3MTIzZGQ4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNTY2LDgg
KzE1NjYsOCBAQCBjb25zdCBBdG9tU3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0aW9uU3RyaW5nOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywgMSk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGh5cGhlblN0cmluZygmaHlwaGVuLCAxKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGh5
cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywgMSk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7
CiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlKCkucHJpbWFyeUZvbnQoKS5nbHlwaEZvckNoYXJhY3Rl
cihoeXBoZW4pID8gaHlwaGVuU3RyaW5nIDogaHlwaGVuTWludXNTdHJpbmc7CiB9CiAKQEAgLTE1
NzksMjggKzE1NzksMjggQEAgY29uc3QgQXRvbVN0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBo
YXNpc01hcmtTdHJpbmcoKSBjb25zdAogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6Q3VzdG9t
OgogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzQ3VzdG9tTWFyaygpOwogICAgIGNhc2UgVGV4
dEVtcGhhc2lzTWFyazo6RG90OiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxldCwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Eb3RTdHJpbmcoJndoaXRlQnVsbGV0
LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNG
aWxsOjpGaWxsZWQgPyBmaWxsZWREb3RTdHJpbmcgOiBvcGVuRG90U3RyaW5nOwogICAgIH0KICAg
ICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkNpcmNsZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkQ2lyY2xlU3RyaW5nKCZibGFja0NpcmNsZSwgMSk7
Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuQ2lyY2xlU3Ry
aW5nKCZ3aGl0ZUNpcmNsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkQ2lyY2xlU3RyaW5nKCZibGFja0NpcmNsZSwg
MSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVDaXJjbGUsIDEpOwogICAgICAgICByZXR1cm4g
dGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZENp
cmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhh
c2lzTWFyazo6RG91YmxlQ2lyY2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOwotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkRvdWJsZUNpcmNsZVN0cmlu
ZygmYnVsbHNleWUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZygmZmlzaGV5ZSwgMSk7
CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gb3BlbkRvdWJsZUNpcmNsZVN0cmluZygmYnVsbHNleWUsIDEpOwogICAgICAgICByZXR1cm4g
dGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZERv
dWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNh
c2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZFRyaWFuZ2xlU3RyaW5nKCZibGFja1VwUG9pbnRpbmdU
cmlhbmdsZSwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBv
cGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWRU
cmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpOworICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5Ucmlhbmds
ZVN0cmluZygmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4
dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFRyaWFu
Z2xlU3RyaW5nIDogb3BlblRyaWFuZ2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBo
YXNpc01hcms6OlNlc2FtZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gZmlsbGVkU2VzYW1lU3RyaW5nKCZzZXNhbWVEb3QsIDEpOwotICAgICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlblNlc2FtZVN0cmluZygmd2hpdGVTZXNhbWVE
b3QsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGZpbGxlZFNlc2FtZVN0cmluZygmc2VzYW1lRG90LCAxKTsKKyAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuU2VzYW1l
U3RyaW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNG
aWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDog
b3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpBdXRv
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCAyMjFlZTY1ZDliOTg3
ZWZhMzIyZTM2OWMxNDMwZjFlMjgwZWFmODY5Li5mY2NmMmJhMTdiMDExMmVkMmI1YWRjYWU3ODdm
OGViZTliYWVlYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVz
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAt
NTQ1LDIwICs1NDUsMjAgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVp
cmtzKFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIAogICAgIGlmIChtX2RvY3VtZW50LnF1aXJr
cygpLm5lZWRzR01haWxPdmVyZmxvd1Njcm9sbFF1aXJrKCkpIHsKICAgICAgICAgLy8gVGhpcyB0
dXJucyBzaWRlYmFyIHNjcm9sbGFibGUgd2l0aG91dCBtb3VzZSBtb3ZlIGV2ZW50LgotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0aW9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvbGVWYWx1ZSgibmF2aWdh
dGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgaWYgKHN0
eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpIaWRkZW4gJiYgbV9lbGVtZW50LT5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHJvbGVBdHRyKSA9PSByb2xlVmFsdWUpCiAgICAgICAg
ICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZsb3c6OkF1dG8pOwogICAgIH0KICAgICBpZiAo
bV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc1lvdVR1YmVPdmVyZmxvd1Njcm9sbFF1aXJrKCkpIHsK
ICAgICAgICAgLy8gVGhpcyB0dXJucyBzaWRlYmFyIHNjcm9sbGFibGUgd2l0aG91dCBob3Zlci4K
LSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGlkVmFsdWUoImd1aWRl
LWlubmVyLWNvbnRlbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWRW
YWx1ZSgiZ3VpZGUtaW5uZXItY29udGVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICAgICAgaWYgKHN0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpIaWRkZW4g
JiYgbV9lbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpID09IGlkVmFsdWUpCiAgICAgICAg
ICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZsb3c6OkF1dG8pOwogICAgIH0KICAgICBpZiAo
bV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc0Z1bGxzY3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkpIHsK
ICAgICAgICAgaWYgKGlzPEhUTUxEaXZFbGVtZW50PihtX2VsZW1lbnQpICYmIHN0eWxlLmRpc3Bs
YXkoKSA9PSBEaXNwbGF5VHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluc3RyZWFtTmF0aXZlVmlkZW9EaXZDbGFzcygiaW5z
dHJlYW0tbmF0aXZlLXZpZGVvLS1tb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gdmlkZW9FbGVtZW50SUQoInZqc192aWRlb18zX2h0bWw1X2FwaSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKCJp
bnN0cmVhbS1uYXRpdmUtdmlkZW8tLW1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdmlkZW9FbGVtZW50SUQoInZqc192aWRlb18zX2h0bWw1X2FwaSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgICAgICAgICAgYXV0byYgZGl2
ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCptX2VsZW1lbnQpOwogICAgICAgICAgICAgaWYg
KGRpdi5oYXNDbGFzcygpICYmIGRpdi5jbGFzc05hbWVzKCkuY29udGFpbnMoaW5zdHJlYW1OYXRp
dmVWaWRlb0RpdkNsYXNzKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKaW5kZXggNWQwNTIxMTljNjQ0Y2JlZjI0MDJhMmMzOTZmNjc3NzY5NjFj
ODkxOC4uMjU0NThjNGVhN2VkMjkyMWE0OGQxYmM3ZmNlMWNhNTA5YjkzNTViYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC0xMDksOCAr
MTA5LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAKIFNWR0FuaW1hdGVNb3Rpb25F
bGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlKCkg
Y29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0
b1ZhbCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2UoImF1dG8tcmV2
ZXJzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9WYWwoImF1dG8iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZlcnNl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJp
bmcmIHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6cm90YXRlQXR0cik7CiAgICAgaWYg
KHJvdGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICByZXR1cm4gUm90YXRlQXV0bzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAxYjQ2MWI0NzMxODY4MDY0
MjBjOGEwZWQ3YTM3YzE2ODk2NmQzYjMyLi40NWU0NWQ1YmNlNGYzYTQyYWNmNjg0YjYyZGRiZWEw
YWIyMTdlNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CkBAIC0yNzYsMTAgKzI3NiwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFu
aW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNv
bnN0IEF0b21TdHJpbmcmIGNhbGNNb2RlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBkaXNjcmV0ZSgiZGlzY3JldGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNlZCgicGFjZWQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbGluZWFyKCJsaW5lYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
cGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBp
ZiAoY2FsY01vZGUgPT0gZGlzY3JldGUpCiAgICAgICAgIHNldENhbGNNb2RlKENhbGNNb2RlOjpE
aXNjcmV0ZSk7CiAgICAgZWxzZSBpZiAoY2FsY01vZGUgPT0gbGluZWFyKQpAQCAtMjk0LDggKzI5
NCw4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbVN0
cmluZyYgY2FsY01vZGUpCiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRl
VHlwZShjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4geG1sKCJYTUwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNT
UyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykK
ICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQXR0cmlidXRlVHlwZTo6Q1NTOwogICAgIGVsc2Ug
aWYgKGF0dHJpYnV0ZVR5cGUgPT0geG1sKQpAQCAtMzIxLDE0ICszMjEsMTQgQEAgU3RyaW5nIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OmZyb21WYWx1ZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9u
RWxlbWVudDo6aXNBZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5p
bWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OkJ5OwogfQogCiBib29sIFNWR0FuaW1hdGlv
bkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihTVkdOYW1lczo6YWNjdW11bGF0ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0g
JiYgYW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRvOwogfQpAQCAtNjA2LDcgKzYw
Niw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y29tcHV0ZUNTU1Byb3BlcnR5VmFsdWUo
U1ZHRWxlbWVudCogZWxlbWVudCwgQ1NTUHJvcGVyCiAKIHN0YXRpYyBib29sIGluaGVyaXRzRnJv
bVByb3BlcnR5KFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFs
dWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmNwcAppbmRleCA2Y2U3NWVlNzUzMzI0YjhkZTYzMWEzMDY0M2Y5YmQ4ZWY4
MWQ4NjlkLi4yNWI4MmEyOWE2NzQwMTZhNzYyZWRkNTljYjU4OGVhNjlhZDBlM2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNW
R1N0eWxlRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9vbCBzZXREaXNhYmxlZCkKIAogY29uc3QgQXRv
bVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFZhbHVlKCJ0ZXh0L2NzcyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3MiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYg
biA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVs
bCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsKIH0KQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBT
VkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKIAogY29uc3Qg
QXRvbVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdFZhbHVlKCJhbGwiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgbiA9IGF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAgICAg
cmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUuZ2V0KCkgOiBuOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCA0NDliMTRj
ZDUwMWRmMjU1ODc0ZWNjZmM1ODQ5Yzg5NGYyODExNmZkLi4wNDMyMTI4Yzk4MTJlOTViNjBlYzcx
N2E2ZThmNzk1OWU5ZmM0MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9u
L1NWR1NNSUxFbGVtZW50LmNwcApAQCAtMzQwLDcgKzM0MCw3IEBAIFNNSUxUaW1lIFNWR1NNSUxF
bGVtZW50OjpwYXJzZUNsb2NrVmFsdWUoY29uc3QgU3RyaW5nJiBkYXRhKQogICAgIAogICAgIFN0
cmluZyBwYXJzZSA9IGRhdGEuc3RyaXBXaGl0ZVNwYWNlKCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRlZmluaXRlIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRlZmlu
aXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChwYXJzZSA9
PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgp
OwogCkBAIC02NTIsOCArNjUyLDggQEAgYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNGcm96ZW4oKSBj
b25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3Rh
cnQoKSBjb25zdAogeyAgICAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbmV2ZXIoIm5ldmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3aGVuTm90QWN0aXZl
KCJ3aGVuTm90QWN0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmV2ZXIo
Im5ldmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2hlbk5vdEFjdGl2ZSgi
d2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
U1ZHTmFtZXM6OnJlc3RhcnRBdHRyKTsKICAgICBpZiAodmFsdWUgPT0gbmV2ZXIpCiAgICAgICAg
IHJldHVybiBSZXN0YXJ0TmV2ZXI7CkBAIC02NjQsNyArNjY0LDcgQEAgU1ZHU01JTEVsZW1lbnQ6
OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogICAgIAogU1ZHU01JTEVs
ZW1lbnQ6OkZpbGxNb2RlIFNWR1NNSUxFbGVtZW50OjpmaWxsKCkgY29uc3QKIHsgICAKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnJlZXplKCJmcmVlemUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmcmVlemUoImZyZWV6ZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OmZpbGxBdHRyKTsKICAg
ICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9CkBA
IC02OTcsNyArNjk3LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KCkg
Y29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6
dW5yZXNvbHZlZCgpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAodmFsdWUgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAg
ICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKICAgICBib29sIG9rOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVW
YWx1ZUZ1bmN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcAppbmRleCA3MmIyNWI1YjhjYzJm
YzFlNzAxYzc5MTllMzM5Mjc2N2MyMzE0MDVkLi40NzZmYjM0YjNhY2E0YjIxZmI3ZDBlZGNlYzFk
ZjBhOTEyOGQ5ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBs
LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENvbG9yIFNWR0Fu
aW1hdGlvbkNvbG9yRnVuY3Rpb246OmNvbG9yRnJvbVN0cmluZyhTVkdFbGVtZW50KiB0YXJnZXRF
bGVtZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VycmVudENvbG9yKCJjdXJyZW50Q29sb3IiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdXJyZW50Q29sb3IoImN1cnJlbnRDb2xvciIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChzdHJpbmcgIT0gY3Vy
cmVudENvbG9yLmdldCgpKQogICAgICAgICByZXR1cm4gU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+
Ojpmcm9tU3RyaW5nKHN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgKaW5kZXggMjFlODgzZmUyNDQ4MzhmZjM3NDY4Njli
ZjExYTNkZjQ2ZmY0YmUyYS4uZDhlOGVjMTc2M2M5MjAyOWExOTY4OWJlNTdlNjUxZWI4YWI1MGU4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlB
bmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
QW5pbWF0b3IuaApAQCAtNzIsNyArNzIsNyBAQCBjbGFzcyBTVkdQcm9wZXJ0eUFuaW1hdG9yIDog
cHVibGljIFNWR0F0dHJpYnV0ZUFuaW1hdG9yIHsKIAogICAgIFN0cmluZyBhZGp1c3RGb3JJbmhl
cml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBj
b25zdAogICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICAgICAgcmV0dXJuIHZhbHVlID09IGluaGVyaXQgPyBjb21wdXRlSW5oZXJpdGVkQ1NTUHJv
cGVydHlWYWx1ZSh0YXJnZXRFbGVtZW50KSA6IHZhbHVlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398155</attachid>
            <date>2020-04-30 20:48:37 -0700</date>
            <delta_ts>2020-04-30 20:48:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200430204836.patch</filename>
            <type>text/plain</type>
            <size>145443</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM2Y2FkYTMxNjcyY2NmN2RkYjdhN2Y1
MTI4NWNjZTliM2EwMWMzZDQuLmM4YzQxNGM5MDA5NzgxZmY2ZDUyNTUxYTEwYzJjNzAwNGEwYmFi
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDQtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTI5ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIERlYWRsb2NrIGluIFdU
Rjo6VGhyZWFkOjpkaWRFeGl0KCkgd2hpbGUgV2ViS2l0TmV0d29ya1Byb2Nlc3MuZXhlIGlzIGV4
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzYTNlOTU2ZGEzNzc4M2FhMWRjNjM2MjkzYmMyN2ZhNzhiYTVj
NGVlLi4xMjQ2ZGVmNmNiNWE5MWIyYTBmYmNlMDYzN2Y1N2U5YjM4MTQyMmQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYyIEBACisyMDIwLTA0LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAv
IE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlv
bnMgYWRkaXRpb25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0
YVJlZ2lzdHJ5OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjprZXlpZHNOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1O
YW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjptYW51YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2lu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGlu
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjph
cnJheWJ1ZmZlcktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFu
dFByb3BlcnR5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6
Om5hbWVGb3JQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAg
ICAgICAgKiBkb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRDU1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNw
cDoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFk
ZXJGaWxlKToKKyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1
dG9jYXBpdGFsaXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFs
aXplVHlwZSk6CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojppc0NvbnRhY3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0
ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2Fi
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lz
dGVtUHJldmlld0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlw
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjp0cnVlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1l
bnQ6OnNldEF1dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFn
ZUVsZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6
Zm9ybUNvbnRyb2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29u
c3QpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0TW9kZU5hbWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRN
b2RlTmFtZXM6Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRl
Y2ltYWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVj
a2JveCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpkYXRldGltZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZU5hbWVzOjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9u
dGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlTmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjpyYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5h
bWVzOjp0ZWxlcGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVO
YW1lczo6d2Vlayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxh
eWJhY2tTdGF0ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVk
KToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1Nl
YXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Q
c2V1ZG9UeXBlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bk
b3duSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlQXV0b0ZpbGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVD
dXN0b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9u
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpU
ZXh0Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hG
aWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRy
b2xzUm9vdEVsZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29y
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpjb21tZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNj
cmlwdGlvbnNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9y
Y2VkS2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Ny
b2xsaW5nQ2xhc3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRl
eHRUcmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVv
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNv
bW1lbnRhcnlLZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yTmFtZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0Zvcndh
cmRDYWNoZSBjb25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5
ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3Rl
dFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlw
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3Rl
bUZvbnRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1l
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpleHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21w
bGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6
Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhl
blN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhh
c2lzTWFya1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyBjb25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25z
dCk6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NNSUxFbGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpyZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAy
MC0wNC0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFNv
bWUgSFRNTCBlbGVtZW50IGNyaXRpY2FsIHBhdGhzIGluY2x1ZGUgQXRvbVN0cmluZyBtYXRlcmlh
bGl6YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9X
VEYvd3RmL0ZvcndhcmQuaAppbmRleCA2ZTk3ZDVkOWVlOTA5NjBmMWNlMzJlNjgwM2JjZmZkZTQy
MjA0Y2NlLi5mNzZjYTQzYzJiM2VmM2IwNDcyYjgyYzUzMThlNWFjOThjYjQ1NTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2Fy
ZC5oCkBAIC01NCwxMiArNTQsMTQgQEAgc3RydWN0IFZlY3Rvck1hbGxvYzsKIHVzaW5nIFZlY3Rv
ck1hbGxvYyA9IEZhc3RNYWxsb2M7CiAjZW5kaWYKIAorc3RydWN0IEFueVRocmVhZHNBY2Nlc3NU
cmFpdHM7CitzdHJ1Y3QgTWFpblRocmVhZEFjY2Vzc1RyYWl0czsKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBDb21wbGV0aW9uSGFuZGxlcjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBE
dW1iUHRyVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJWYWx1ZVRyYWl0
czsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGdW5jdGlvbjsKLXRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgTmV2
ZXJEZXN0cm95ZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSBBbnlUaHJlYWRzQWNj
ZXNzVHJhaXRzPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZSwg
dHlwZW5hbWUgPSBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzPiBjbGFzcyBOZXZlckRlc3Ryb3llZDsK
IHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBPcHRpb25TZXQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgT3B0aW9uYWw7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYWNrZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oIGIvU291cmNlL1dURi93dGYv
TmV2ZXJEZXN0cm95ZWQuaAppbmRleCBiOWM5MTVhNTJiNGJlMTkyZmJkYTMwMGQyMGI5MmY2NjE2
ZmM0NzQzLi5kODI0MmZlN2U3Y2EzOTBkZGQ0MDI5NzIyNTRmNWJkMTQ2NDgxZmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L05ldmVyRGVzdHJveWVkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUgPHd0Zi9Gb3JiaWRIZWFwQWxsb2NhdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KIAogLy8gTmV2ZXJEZXN0cm95ZWQgaXMgYSBzbWFydC1wb2ludGVyLWxpa2UgY2xhc3Mg
dGhhdCBlbnN1cmVzIHRoYXQgdGhlIGRlc3RydWN0b3IKQEAgLTQyLDE4ICs0MywzMyBAQAogCiBu
YW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0cm95
ZWQgeworc3RydWN0IEFueVRocmVhZHNBY2Nlc3NUcmFpdHMgeworICAgIHN0YXRpYyB2b2lkIGFz
c2VydEFjY2VzcygpCisgICAgeworICAgIH0KK307CisKK3N0cnVjdCBNYWluVGhyZWFkQWNjZXNz
VHJhaXRzIHsKKyAgICBzdGF0aWMgdm9pZCBhc3NlcnRBY2Nlc3MoKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHM+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShOZXZlckRlc3Ryb3llZCk7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FM
TE9DQVRJT047CiBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBOZXZl
ckRlc3Ryb3llZChBcmdzJiYuLi4gYXJncykKICAgICB7CisgICAgICAgIEFjY2Vzc1RyYWl0czo6
YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIE1heWJlUmVsYXg8VD4obmV3IChzdG9yYWdlUG9pbnRl
cigpKSBUKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOwogICAgIH0KIAogICAgIE5ldmVy
RGVzdHJveWVkKE5ldmVyRGVzdHJveWVkJiYgb3RoZXIpCiAgICAgeworICAgICAgICBBY2Nlc3NU
cmFpdHM6OmFzc2VydEFjY2VzcygpOwogICAgICAgICBNYXliZVJlbGF4PFQ+KG5ldyAoc3RvcmFn
ZVBvaW50ZXIoKSkgVChXVEZNb3ZlKCpvdGhlci5zdG9yYWdlUG9pbnRlcigpKSkpOwogICAgIH0K
IApAQCAtNzAsNyArODYsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0
cm95ZWQgewogcHJpdmF0ZToKICAgICB1c2luZyBQb2ludGVyVHlwZSA9IHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX2NvbnN0PFQ+Ojp0eXBlKjsKIAotICAgIFBvaW50ZXJUeXBlIHN0b3JhZ2VQb2ludGVy
KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOyB9CisgICAgUG9pbnRlclR5cGUgc3RvcmFnZVBvaW50
ZXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsK
KyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UG9pbnRlclR5cGU+KHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgVCo+KCZtX3N0b3JhZ2UpKTsKKyAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBQ
dHJUeXBlLCBib29sIFNob3VsZFJlbGF4ID0gc3RkOjppc19iYXNlX29mPFJlZkNvdW50ZWRCYXNl
LCBQdHJUeXBlPjo6dmFsdWU+IHN0cnVjdCBNYXliZVJlbGF4IHsKICAgICAgICAgZXhwbGljaXQg
TWF5YmVSZWxheChQdHJUeXBlKikgeyB9CkBAIC04NCwxMiArMTA0LDEyIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkIHsKICAgICB0eXBlbmFtZSBzdGQ6OmFsaWdu
ZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29mPFQ+Ojp2YWx1ZT46OnR5cGUg
bV9zdG9yYWdlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gTmV2ZXJEZXN0cm95ZWQ8VD4g
bWFrZU5ldmVyRGVzdHJveWVkKFQmJik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBB
Y2Nlc3NUcmFpdHMgPSBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzPiBOZXZlckRlc3Ryb3llZDxULCBB
Y2Nlc3NUcmFpdHM+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYpOwogCiAvLyBGSVhNRTogSXQncyBt
ZXNzeSB0byBoYXZlIHRvIHJlcGVhdCB0aGUgd2hvbGUgY2xhc3MganVzdCB0byBtYWtlIHRoaXMg
ImxhenkiIHZlcnNpb24uCiAvLyBTaG91bGQgcmV2aXNpdCBjbGllbnRzIHRvIHNlZSBpZiB3ZSBy
ZWFsbHkgbmVlZCB0aGlzLCBhbmQgcGVyaGFwcyB1c2UgdGVtcGxhdGVzIHRvCiAvLyBzaGFyZSBt
b3JlIG9mIHRoZSBjb2RlIHdpdGggdGhlIG1haW4gTmV2ZXJEZXN0cm95ZWQgYWJvdmUuCi10ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewordGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQWNjZXNzVHJhaXRzPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExhenlOZXZlckRlc3Ryb3llZCk7CiAgICAgV1RG
X0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6CkBAIC05OSw2ICsxMTksNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHZvaWQgY29u
c3RydWN0KEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2lzQ29uc3Ry
dWN0ZWQpOworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOwogCiAjaWYgQVNT
RVJUX0VOQUJMRUQKICAgICAgICAgbV9pc0NvbnN0cnVjdGVkID0gdHJ1ZTsKQEAgLTEyNyw2ICsx
NDgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewog
ICAgIFBvaW50ZXJUeXBlIHN0b3JhZ2VQb2ludGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX2lzQ29uc3RydWN0ZWQpOworICAgICAgICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vz
cygpOwogICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOwogICAgIH0KIApAQCAtMTQ4LDEzICsxNzAsMjMg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkIHsKICAgICB0
eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIHN0ZDo6YWxpZ25tZW50X29m
PFQ+Ojp2YWx1ZT46OnR5cGUgbV9zdG9yYWdlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIE5ldmVyRGVzdHJveWVkPFQ+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYgYXJndW1lbnQp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NUcmFpdHM+IGlubGluZSBOZXZl
ckRlc3Ryb3llZDxULCBBY2Nlc3NUcmFpdHM+IG1ha2VOZXZlckRlc3Ryb3llZChUJiYgYXJndW1l
bnQpCiB7CiAgICAgcmV0dXJuIFdURk1vdmUoYXJndW1lbnQpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgordXNpbmcgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkID0gTmV2ZXJEZXN0cm95ZWQ8
VCwgTWFpblRocmVhZEFjY2Vzc1RyYWl0cz47CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2lu
ZyBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkID0gTGF6eU5ldmVyRGVzdHJveWVkPFQsIE1h
aW5UaHJlYWRBY2Nlc3NUcmFpdHM+OworCiB9IC8vIG5hbWVzcGFjZSBXVEY7CiAKIHVzaW5nIFdU
Rjo6TGF6eU5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpOZXZlckRlc3Ryb3llZDsKIHVzaW5n
IFdURjo6bWFrZU5ldmVyRGVzdHJveWVkOwordXNpbmcgV1RGOjpNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ7Cit1c2luZyBXVEY6Ok1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ7Cit1c2luZyBX
VEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM7Cit1c2luZyBXVEY6Ok1haW5UaHJlYWRBY2Nlc3NU
cmFpdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3BwIGIv
U291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nLmNwcAppbmRleCA3MDY4ZjVmZmE0ODJkYjA3
MDU4NTFlY2Y0ZDJmZDUzYTNmZjc0YmQxLi43ZjE4NjE2M2QzODEyNmIyMzRhNDVlYWNjNmFkN2U1
NzFkNWU0MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKQEAgLTEzMywxMSArMTMz
LDExIEBAIHZvaWQgQXRvbVN0cmluZzo6c2hvdygpIGNvbnN0CiAKICNlbmRpZgogCi1XVEZfRVhQ
T1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsK
LVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1wdHlB
dG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gc3RhckF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWlu
VGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG51bGxBdG9tRGF0YTsK
K1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExh
enlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7CitXVEZfRVhQ
T1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB4bWxBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CiAKIHZvaWQgQXRvbVN0cmlu
Zzo6aW5pdCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDg4YjRlYmFjMzI3MWJk
M2ViM2MxNDEzZDVmNDgwYmEzZWJjYzIyZDQuLjcwMzZhM2QxZmM4MmI3MmZkOTlhNDQ1OTdiY2Vh
NDdmNGZlODIxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC0yOTAsMTEgKzI5MCwx
MSBAQCBpbmxpbmUgQXRvbVN0cmluZzo6QXRvbVN0cmluZyhOU1N0cmluZyAqc3RyaW5nKQogCiAv
LyBEZWZpbmUgZXh0ZXJuYWwgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIGNvbW1vbmx5IHVzZWQg
YXRvbSBzdHJpbmdzLgogLy8gVGhlc2UgYXJlIG9ubHkgdXNhYmxlIGZyb20gdGhlIG1haW4gdGhy
ZWFkLgotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbnVsbEF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BS
SVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKLWV4dGVy
biBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbEF0
b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4geG1sbnNBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRo
cmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBudWxsQXRvbURhdGE7Citl
eHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUg
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURh
dGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sbnNB
dG9tRGF0YTsKIAogaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIG51bGxBdG9tKCkgeyByZXR1cm4g
bnVsbEF0b21EYXRhLmdldCgpOyB9CiBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgZW1wdHlBdG9t
KCkgeyByZXR1cm4gZW1wdHlBdG9tRGF0YS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCmluZGV4IDVjODRjODVlYzc3MWRkNTg3NzliNDM5NjU4
NjU4M2NiYjllNWMwYjEuLmI5YjY2YTJiNWI5NWE0NjAxNTA1OGE1NjU1YjY4YzI0YjA3NzI1M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFj
a1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKQEAgLTM3
LDggKzM3LDggQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYktpdFBsYXliYWNrVGFy
Z2V0QXZhaWxhYmlsaXR5RXZlbnQpOwogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgc3RyaW5n
Rm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxhYmxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFpbGFibGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2YWlsYWJs
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vdEF2YWlsYWJsZVN0cmluZygi
bm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IHJldHVybiBhdmFpbGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBub3RBdmFpbGFibGVTdHJpbmc7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0lu
aXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA3YzU0NmRjNjAwYjEyYzU3NmRkMDgyNzlhYjdj
NjY3ZmE1NWZiOTEzLi4zYjI1ZDA2YjEyM2ExYTUxYTBhMmFjZmI0ZjY1NmY4ZDk0YWRiM2ZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRh
UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTI1OCwxOSArMjU4LDE5IEBAIHZvaWQgSW5pdERhdGFS
ZWdpc3RyeTo6cmVnaXN0ZXJJbml0RGF0YVR5cGUoY29uc3QgQXRvbVN0cmluZyYgaW5pdERhdGFU
eXBlLCBJbml0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OmNlbmNOYW1l
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJjZW5jIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiY2VuYyIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIElu
aXREYXRhUmVnaXN0cnk6OmtleWlkc05hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBz
aW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImtleWlkcyIpIH07CiAgICAgcmV0dXJuIHNp
bmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJ3ZWJtIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
d2VibSIpIH07CiAgICAgcmV0dXJuIHNpbmY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4
IDYwZWE2ZTdkMTA1NjNlZTE3OTQwZmM1OTMzZTgzM2U5YTBjZmFkMWEuLmY5ODFlY2NjMjk2ZDc4
Yzg3MGQ3Njg4YTA2YTBjZmY4MmY3NzYxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtNDMs
MjUgKzQzLDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQXRvbVN0cmluZyYgTWVk
aWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9tYXRpYygiYXV0b21hdGljIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdXRvbWF0aWM7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3JjZWRPbmx5S2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZE9ubHko
ImZvcmNlZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkT25s
eSgiZm9yY2VkLW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGZvcmNlZE9ubHk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhbHdheXNP
bktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBhbHdheXNPbigiYWx3YXlzLW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
YWx3YXlzT24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gYWx3YXlzT247CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBtYW51
YWxLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYWx3YXlzT24oIm1hbnVhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFs
d2F5c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGFsd2F5c09uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCBkMGIyY2I5ZmQwYWExYmQx
ZjI5YWNlZGM1YjYwOTM5Nzc0YTExY2IwLi4wODVlNGZkNmZiODMxZTg0MjU1YTgyYTAyZWE4ZjE3
MDQyZjlmZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCBNZWRpYVN0cmVh
bVRyYWNrOjp+TWVkaWFTdHJlYW1UcmFjaygpCiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2aWRlb0tpbmQoInZp
ZGVvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXVkaW9LaW5kKCJhdWRpbyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAobV9wcml2YXRlLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBh
dWRpb0tpbmQ7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhU3RyZWFt
VHJhY2s6OmxhYmVsKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFTdHJlYW1UcmFj
azo6Y29udGVudEhpbnQoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRldGFpbEhpbnQoImRl
dGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQoInRleHQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vdGlvbkhpbnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHNwZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG11c2ljSGludCgibXVzaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBkZXRhaWxIaW50KCJkZXRhaWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0
ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vdGlvbkhp
bnQoIm1vdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3
aXRjaCAobV9wcml2YXRlLT5jb250ZW50SGludCgpKSB7CiAgICAgY2FzZSBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6SGludFZhbHVlOjpFbXB0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggNmEwZGYwNGY1MWZi
Yjk4ZjllMjgyOTkyMGJjNWVmMDEzYmFlOWNhZC4uMGJlMzEyYWYwZTZjYWJjZjdmMDE0ZGMxOTU1
N2FlMTkxYjc0YjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTQzLDEzICs0MywxMyBAQCBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUlRDRGF0YUNoYW5uZWwpOwogCiBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgYmxvYktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBibG9iKCJibG9iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYmxvYigi
YmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYmxv
YjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFycmF5YnVmZmVyS2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFycmF5YnVmZmVyKCJhcnJh
eWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFycmF5YnVmZmVyKCJh
cnJheWJ1ZmZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gYXJyYXlidWZmZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDAyYzc1NzAwYTg1
YjNjNzI1NjY5NzdiYTJkYmMxZTNhZjgyOTE0YjUuLjI2MmIyOWM5YzViZjU3Y2JlNmE3YjAwMTE3
NmIxZWNkNjliNTI5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMzQxMCw3ICszNDEwLDcg
QEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25TdGF0
dXMoKSBjb25zdAogCiBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2
ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCgiYWRkaXRpb25zIHRleHQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2
YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICBjb25zdCBBdG9tU3RyaW5nJiByZWxldmFudCA9IGdldEF0dHJpYnV0ZShhcmlhX3JlbGV2
YW50QXR0cik7CiAKICAgICAvLyBEZWZhdWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRl
eHQiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCmluZGV4IGZk
MTQyZjdkZWFiMDc0OGU5NmExOWM1YjBkYWVkOTA2MjcwZDMwYjIuLmJlNWFkNDgzZTBjMTM5N2I1
ZjI4OWNhN2RjMzJhMjZlNTlkNmY4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b25zdGFudFByb3BlcnR5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQ
cm9wZXJ0eU1hcC5jcHAKQEAgLTUwLDE1ICs1MCwxNSBAQCBjb25zdCBDb25zdGFudFByb3BlcnR5
TWFwOjpWYWx1ZXMmIENvbnN0YW50UHJvcGVydHlNYXA6OnZhbHVlcygpIGNvbnN0CiAKIGNvbnN0
IEF0b21TdHJpbmcmIENvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQcm9wZXJ0eShDb25zdGFu
dFByb3BlcnR5IHByb3BlcnR5KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgic2FmZS1hcmVhLWluc2V0LXJp
Z2h0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0Qm90dG9tTmFtZSgic2FmZS1hcmVh
LWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1lKCJz
YWZlLWFyZWEtaW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0VG9w
TmFtZSgiZnVsbHNjcmVlbi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5J
bnNldExlZnROYW1lKCJmdWxsc2NyZWVuLWluc2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1
bGxzY3JlZW5JbnNldEJvdHRvbU5hbWUoImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtcmln
aHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uTmFtZSgiZnVs
bHNjcmVlbi1hdXRvLWhpZGUtZHVyYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzYWZlQXJlYUluc2V0VG9wTmFtZSgic2FmZS1hcmVhLWluc2V0LXRvcCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRSaWdodE5hbWUoInNhZmUtYXJl
YS1pbnNldC1yaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVh
SW5zZXRCb3R0b21OYW1lKCJzYWZlLWFyZWEtaW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldExlZnROYW1lKCJzYWZlLWFyZWEtaW5zZXQt
bGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldFRv
cE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZnVsbHNjcmVlbkluc2V0TGVmdE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtbGVmdCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldEJvdHRvbU5hbWUo
ImZ1bGxzY3JlZW4taW5zZXQtYm90dG9tIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gZnVsbHNjcmVlbkluc2V0UmlnaHROYW1lKCJmdWxsc2NyZWVuLWluc2V0LXJpZ2h0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb25O
YW1lKCJmdWxsc2NyZWVuLWF1dG8taGlkZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAocHJvcGVydHkpIHsKICAgICBjYXNlIENvbnN0
YW50UHJvcGVydHk6OlNhZmVBcmVhSW5zZXRUb3A6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBjNmQ5NThiMjVkMWJmNTM2YzI3NGI3ZTUyZjljNTNiNWFmMmI1ZjBjLi4xNzFiYWMzNTk1ZjFh
M2IwYmNhYTA3N2ZmZDY3MjczNjMyZGYzYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTEyNTksNyArMTI1OSw3IEBAIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyBEb2N1
bWVudDo6dmFsaWRhdGVDdXN0b21FbGVtZW50TmFtZShjb25zdCBBdG9tCiAjaWYgRU5BQkxFKE1B
VEhNTCkKICAgICBjb25zdCBhdXRvJiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lID0gTWF0aE1MTmFt
ZXM6OmFubm90YXRpb25feG1sVGFnLT5sb2NhbE5hbWUoKTsKICNlbHNlCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFubm90YXRpb25YbWxMb2NhbE5hbWUoImFu
bm90YXRpb24teG1sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYW5ub3RhdGlv
blhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAjZW5kaWYKIAogICAgIGlmIChsb2NhbE5hbWUgPT0gU1ZHTmFtZXM6OmNvbG9y
X3Byb2ZpbGVUYWctPmxvY2FsTmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
SW5saW5lU3R5bGVTaGVldE93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHls
ZVNoZWV0T3duZXIuY3BwCmluZGV4IGZiMjk1OTBkZjMwZTc0NjRmZjk3OGFjNTk1NGFlNGQ4OGJi
ZmZmZmMuLmJlZDk3ZTEwYzZhNjI1NWI3MjZkNWUyNmMwMTkyZmVhYTllNzg0YmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCkBAIC0xNDksNyArMTQ5
LDcgQEAgaW5saW5lIGJvb2wgaXNWYWxpZENTU0NvbnRlbnRUeXBlKEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAgICAgLy8gRklYTUU6IFNob3VsZCBNSU1FIHR5cGVz
IHJlYWxseSBiZSBjYXNlIHNlbnNpdGl2ZSBpbiBYTUwgZG9jdW1lbnRzPyBEb2Vzbid0IHNlZW0g
bGlrZSB0aGV5IHNob3VsZCwKICAgICAvLyBldmVuIHRob3VnaCBvdGhlciB0aGluZ3MgYXJlIGNh
c2Ugc2Vuc2l0aXZlIGluIHRoYXQgY29udGV4dC4gTUlNRSB0eXBlcyBzaG91bGQgbmV2ZXIgYmUg
Y2FzZSBzZW5zaXRpdmUuCiAgICAgLy8gV2Ugc2hvdWxkIHZlcmlmeSB0aGlzIGFuZCB0aGVuIHJl
bW92ZSB0aGUgaXNIVE1MRWxlbWVudCBjaGVjayBoZXJlLgotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjc3NDb250ZW50VHlwZSgidGV4dC9jc3MiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGVsZW1lbnQuaXNIVE1M
RWxlbWVudCgpID8gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodHlwZSwgInRleHQvY3Nz
IikgOiB0eXBlID09IGNzc0NvbnRlbnRUeXBlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
UmVjb3JkLmNwcAppbmRleCA1MTkzMjBkNDY5OTFjMTRiMzcyNzgxYWNjZWFjNzQ5MDNjMDgyYTE4
Li5lOTY0ZWYzMDRlMGI3MDYyNTI0N2Q5ZmExZmY3NDhmOWNhMDFiNjUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvblJlY29yZC5jcHAKQEAgLTE3NCwxOSArMTc0LDE5IEBAIGNsYXNzIE11dGF0
aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBNdXRhdGlvblJlY29yZCB7
CiAKIGNvbnN0IEF0b21TdHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRMaXN0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hpbGRMaXN0KCJjaGlsZExpc3QiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsKIH0K
IAogY29uc3QgQXRvbVN0cmluZyYgQXR0cmlidXRlc1JlY29yZDo6dHlwZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJpYnV0ZXMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRyaWJ1dGVzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhdHRyaWJ1dGVz
OwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY2hhcmFjdGVyRGF0YSgiY2hh
cmFjdGVyRGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNoYXJhY3RlckRh
dGEoImNoYXJhY3RlckRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIGNoYXJhY3RlckRhdGE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5k
ZXggNzA0MWYxMjE3MWRlMDNlOTUwYTg4ODI3ZjdmZDExZjlkOGQ3MjVmYS4uYjUzODkyNjViYWE2
ZDQ1OTAzYzE1OTdmNjU0ZThkNWVlZTQzZmVlZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwK
QEAgLTExNSw3ICsxMTUsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmcuaD4KIEVO
RAogCi0gICAgcHJpbnRNYWNyb3MoJEYsICJleHRlcm4gTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKKyAgICBwcmludE1hY3Jvcygk
RiwgImV4dGVybiBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0
cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJzKTsKICAgICBwcmludCBGICIjZW5kaWZcblxuIjsKIAog
ICAgIHByaW50SW5pdCgkRiwgMSk7CkBAIC0xMjksNyArMTI5LDcgQEAgRU5ECiAKICAgICBwcmlu
dCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlcGFyYW1ldGVycyk7CiAKLSAgICBw
cmludE1hY3JvcygkRiwgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+
IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAgcHJpbnRNYWNyb3MoJEYsICJNYWluVGhyZWFkTGF6
eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0ZXJz
KTsKIAogICAgIHByaW50SW5pdCgkRiwgMCk7CiAKQEAgLTcyMiw3ICs3MjIsNyBAQCBFTkQKICAg
ICBteSAkbG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4ID0gbGMoJHBhcmFtZXRlcnN7bmFtZXNwYWNl
UHJlZml4fSk7CiAKICAgICBwcmludCBGICIvLyBOYW1lc3BhY2VcbiI7Ci0gICAgcHJpbnQgRiAi
V0VCQ09SRV9FWFBPUlQgZXh0ZXJuIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21T
dHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxuIjsKKyAg
ICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBleHRlcm4gTWFpblRocmVhZExhenlOZXZlckRlc3Ry
b3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5h
bWVzcGFjZVVSSTtcblxuIjsKIAogICAgIGlmIChrZXlzICVhbGxUYWdzKSB7CiAgICAgICAgIHBy
aW50IEYgIi8vIFRhZ3NcbiI7CkBAIC03NjAsNyArNzYwLDcgQEAgc3ViIHByaW50TmFtZXNDcHBG
aWxlCiAgICAgCiAgICAgbXkgJGxvd2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0
ZXJze25hbWVzcGFjZVByZWZpeH0pOwogCi0gICAgcHJpbnQgRiAiTGF6eU5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVS
STtcblxuIjsKKyAgICBwcmludCBGICJNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+ICR7bG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4fU5hbWVzcGFjZVVSSTtcblxu
IjsKIAogICAgIHByaW50IEYgU3RhdGljU3RyaW5nOjpHZW5lcmF0ZVN0cmluZ3MoXCVhbGxTdHJp
bmdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNwcAppbmRleCAzYTBmOTEx
OTliNmJiN2I4NDdjYzU4NTA2MTg4MzNkYjdlMDFlYTc1Li43MzViZTBmYTc1NzI4YWQ0ZGJmMTJm
NjI2ZWE4Y2NjOWM2Y2U3YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9j
YXBpdGFsaXplLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNw
cApAQCAtNTcsMTkgKzU3LDE5IEBAIGNvbnN0IEF0b21TdHJpbmcmIHN0cmluZ0ZvckF1dG9jYXBp
dGFsaXplVHlwZShBdXRvY2FwaXRhbGl6ZVR5cGUgdHlwZSkKICAgICBjYXNlIEF1dG9jYXBpdGFs
aXplVHlwZURlZmF1bHQ6CiAgICAgICAgIHJldHVybiBudWxsQXRvbSgpOwogICAgIGNhc2UgQXV0
b2NhcGl0YWxpemVUeXBlTm9uZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdmFsdWVOb25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHZhbHVlTm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlTm9uZTsKICAgICB9CiAgICAgY2FzZSBBdXRv
Y2FwaXRhbGl6ZVR5cGVTZW50ZW5jZXM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlU2VudGVuY2VzKCJzZW50ZW5jZXMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVTZW50ZW5jZXMoInNlbnRlbmNlcyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlU2Vu
dGVuY2VzOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVdvcmRzOiB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRzKCJ3
b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZVdvcmRzKCJ3
b3JkcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJu
IHZhbHVlV29yZHM7CiAgICAgfQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlQWxsQ2hhcmFj
dGVyczogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
dmFsdWVBbGxDaGFyYWN0ZXJzKCJjaGFyYWN0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHZhbHVlQWxsQ2hhcmFjdGVycygiY2hhcmFjdGVycyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlQWxsQ2hhcmFjdGVy
czsKICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmls
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcAppbmRleCBhMGE3ZDc3YjVj
OTI1ZjAwZDAxMTU4ODVlZDhlYjhjMDQxYTgxNGY0Li42NzM1ZTI2OWYyNWFlZjdiYzA5MTI3NTUz
OTIxNDgxY2RlM2U4ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcApAQCAtMTMyLDExICsx
MzIsMTEgQEAgQXV0b2ZpbGxGaWVsZE5hbWUgdG9BdXRvZmlsbEZpZWxkTmFtZShjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKIAogc3RhdGljIGlubGluZSBib29sIGlzQ29udGFjdFRva2VuKGNvbnN0
IEF0b21TdHJpbmcmIHRva2VuKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBob21lKCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3b3JrKCJ3b3JrIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBtb2JpbGUoIm1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGhvbWUoImhvbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3b3JrKCJ3
b3JrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9iaWxlKCJtb2JpbGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYXgoImZheCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHBhZ2VyKCJwYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0b2tlbiA9PSBob21lIHx8IHRva2VuID09IHdvcmsg
fHwgdG9rZW4gPT0gbW9iaWxlIHx8IHRva2VuID09IGZheCB8fCB0b2tlbiA9PSBwYWdlcjsKIH0K
QEAgLTE2MSw4ICsxNjEsOCBAQCBzdGF0aWMgdW5zaWduZWQgbWF4VG9rZW5zRm9yQXV0b2ZpbGxG
aWVsZENhdGVnb3J5KEF1dG9maWxsQ2F0ZWdvcnkgY2F0ZWdvcnkpCiAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI3Byb2Nlc3NpbmctbW9kZWwtMwog
QXV0b2ZpbGxEYXRhIEF1dG9maWxsRGF0YTo6Y3JlYXRlRnJvbUhUTUxGb3JtQ29udHJvbEVsZW1l
bnQoY29uc3QgSFRNTEZvcm1Db250cm9sRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvZmYo
Im9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgLy8gTGFiZWw6IERlZmF1bHQKICAgICAvLyAyNi4gTGV0IHRo
ZSBlbGVtZW50J3MgSURMLWV4cG9zZWQgYXV0b2ZpbGwgdmFsdWUgYmUgdGhlIGVtcHR5IHN0cmlu
ZywgYW5kIGl0cyBhdXRvZmlsbCBoaW50IHNldCBhbmQgYXV0b2ZpbGwgc2NvcGUgYmUgZW1wdHku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRl
eCBlYmI3ZDJhOGIwMDNmNDRlNDgxZWZiMDI2ODY2OTlmODM2ZTYwNWEzLi5hOTQ5OTU2ZTkzMzIy
ZTA2YzRkM2Q0YjhkODEwN2Q2MWE0MWM4ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiAK
IFN0cmluZyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAppbmRleCA3YjEwNjFmZTFhMWY0OTEzMmFkZjQzZDU5Y2I4NzVlZGJmN2ZlNjEwLi41
NDIxZmRiNGJmNmI4MWRlOWY1NGUxYjIxNjY1YTk3NWJkM2EzMzE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIAogdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZhbHVlQ29udGFpbmVyUHNldWRv
KCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgYXV0byB2YWx1ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKaW5kZXggOWUyZjA0YzQwMDA1NjU3OWQ1NGM0NTI0NjhjYTJkYzgxYWIxZTY3Mi4uZDRjODU4
YTNmOTIwMTViNmQzOGU1NDBiYzZjNjU5ZTAzNjlmM2Q4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5jcHAKQEAgLTE0Myw5ICsxNDMsOCBAQCB2b2lkIENvbG9ySW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NF
UlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoTmFtZSgiLXdlYmtpdC1jb2xvci1z
d2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNoV3JhcHBlck5h
bWUoIi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9yU3dhdGNo
TmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRDb2xvclN3YXRjaFdyYXBwZXJOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRjaC13
cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRG9jdW1l
bnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIGF1dG8gd3JhcHBlckVs
ZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGE4ZWRjOTlmMGI3ZDk1ZmRiNmUzYTI1MzU5YmI4N2Rj
MjgxY2RlMDYuLjNlMmY5YmVhZjAwZDI1ODYwNDM2YjdiNjA4YmZlOWZiMjMxOTViYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtODksOSArODksOCBAQCBSZWY8VXBs
b2FkQnV0dG9uRWxlbWVudD4gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUo
RG9jdW1lbnQmIGRvY3VtZQogVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFnLCBk
b2N1bWVudCwgMCwgZmFsc2UpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRGaWxlVXBsb2FkQnV0dG9uTmFtZSgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0VHlwZShidXR0b25OYW1l
KTsKICAgICBzZXRQc2V1ZG8od2Via2l0RmlsZVVwbG9hZEJ1dHRvbk5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCA3OWRiMzQxZTFjOTU2NWYxZDBmOTEz
ZDJjN2M3ZDNjNDZiMjZjZjViLi5jN2E3MDlhMGEyNDEyNDQzZDQzZjE3ZjZmYTVmMzEyZDk5YjBh
M2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAtMzIwLDcgKzMy
MCw3IEBAIEF0b21TdHJpbmcgRm9ybUtleUdlbmVyYXRvcjo6Zm9ybUtleShjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjb250CiB7CiAgICAgYXV0byBmb3JtID0gbWFrZVJl
ZlB0cihvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKSk7CiAgICAgaWYgKCFmb3JtKSB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25lcigi
Tm8gb3duZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9ybUtleUZv
ck5vT3duZXIoIk5vIG93bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3duZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDAwOWY1NTQ3OGQzYTZlODYxOTg4ZTZi
YmYyNWNlNDBiMjEzOGNjYmMuLjZmYzliNDdmZGIxMmY2OGQ2Y2Y0YzE1YTY5MDMxM2U3NWI3MjNi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0yNTMs
OSArMjUzLDkgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgLy8gRG8gbm90aGlu
Zy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAgICAgICAvLyBVcGRhdGUg
SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBhdHRyaWJ1dGVzIHZhbHVl
cyBhcmUgc3VwcG9ydGVkLgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5vT3BlbmVy
KCJub29wZW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVyIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5lcigib3BlbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBjb25zdCBib29sIHNob3Vs
ZEZvbGRDYXNlID0gdHJ1ZTsKICAgICAgICAgU3BhY2VTcGxpdFN0cmluZyByZWxWYWx1ZSh2YWx1
ZSwgc2hvdWxkRm9sZENhc2UpOwogICAgICAgICBpZiAocmVsVmFsdWUuY29udGFpbnMobm9SZWZl
cnJlcikpCkBAIC0zODEsNyArMzgxLDcgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0
ZW1QcmV2aWV3TGluaygpIGNvbnN0CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnN5c3RlbVByZXZpZXdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1QcmV2
aWV3UmVsVmFsdWUoImFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVt
UHJldmlld1JlbFZhbHVlKCJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
IAogICAgIGlmICghcmVsTGlzdCgpLmNvbnRhaW5zKHN5c3RlbVByZXZpZXdSZWxWYWx1ZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5jcHAKaW5kZXggNzFmZTFhMGI3ODU4Y2YwZjMwOTI2ZjkwZjc0ZmY3NzRmZjU3ZmUxOC4uNDJh
MjljYzU3ODhjMzlhM2M2NDYzZWM0YjAxMzY4MmRjN2FkYWY1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTc0LDE1ICs3NCwxNSBAQCBjb25zdCBBdG9t
U3RyaW5nJiBIVE1MQnV0dG9uRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAg
ICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFNVQk1JVDogewotICAgICAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1Ym1pdCgic3VibWl0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJtaXQoInN1Ym1pdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiBz
dWJtaXQ7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b24oImJ1dHRvbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uKCJidXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gYnV0
dG9uOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgUkVTRVQ6IHsKLSAgICAgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJlc2V0KCJyZXNldCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiByZXNldDsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cAppbmRleCA2MGRkMWZiMjUyMDM4NjBkM2Q5MmE3YTVhY2IzMzFjMmFiMDRiNTkxLi4wN2NiMTY0
YWVlMWFlMDgxNmJjZDE1NjQ0MzQzOGRlMGVmNTY5MGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBEZXRhaWxF
dmVudFNlbmRlciYgZGV0YWlsVG9nZ2xlRXZlbnRTZW5kZXIoKQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgc3VtbWFyeVNsb3ROYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW1tYXJ5U2xvdCgic3VtbWFy
eVNsb3QiKTsKICAgICByZXR1cm4gc3VtbWFyeVNsb3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKaW5kZXggN2E2YTZmZTNlOTE0ZTg1Yjk4OTNkMTY5NjQyNzNkNmIyYzViYTk2
My4uNWI3ZjlhZjM4NjExNmRhZGI2ZjA1M2NiODQwZTg3NTc4NjU0YzQwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAKQEAgLTUwNSw5ICs1MDUsOSBAQCBzdGF0aWMgUmVmPERvY3Vt
ZW50RnJhZ21lbnQ+IHRleHRUb0ZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZQogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjbGltaXRlZC10by1vbmx5
LWtub3duLXZhbHVlcwogc3RhdGljIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiB0b1ZhbGlkRGly
VmFsdWUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHJ0bFZhbHVl
KCJydGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF1dG9WYWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGx0clZhbHVlKCJsdHIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBydGxWYWx1ZSgicnRsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYXV0b1ZhbHVlKCJhdXRvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImx0ciIpKQogICAg
ICAgICByZXR1cm4gbHRyVmFsdWU7CiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHZhbHVlLCAicnRsIikpCkBAIC02NjIsMjIgKzY2MiwxOSBAQCBTdHJpbmcgSFRNTEVsZW1l
bnQ6OmNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB0
cnVlTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJ1ZVZhbHVlKCJ0cnVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cnVlVmFsdWUuZ2V0KCk7CiB9CiAKIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmYWxzZU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxzZVZhbHVlKCJmYWxzZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VW
YWx1ZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGZhbHNlVmFsdWUuZ2V0KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBwbGFp
bnRleHRPbmx5TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHBsYWludGV4dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWludGV4
dE9ubHlWYWx1ZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIHBsYWludGV4dE9ubHlWYWx1ZS5nZXQoKTsKIH0KIApAQCAtMTEx
Nyw5ICsxMTE0LDggQEAgYm9vbCBIVE1MRWxlbWVudDo6c2hvdWxkQXV0b2NvcnJlY3QoKSBjb25z
dAogCiB2b2lkIEhUTUxFbGVtZW50OjpzZXRBdXRvY29ycmVjdChib29sIGF1dG9jb3JyZWN0KQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUoIm9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uTmFtZSgib24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvZmZOYW1lKCJvZmYiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihhdXRvY29ycmVjdEF0dHIsIGF1dG9jb3JyZWN0ID8gb25OYW1lLmdldCgpIDog
b2ZmTmFtZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuY3BwCmluZGV4IDUxYWIwMTg3OTgwNDg3YjNhZmQ0ZTUzNWU2YWZjNWNhZTBkMjdmZTIu
LjYyMTg0MGM5NjgyMmZmMGE2YThjYzY4NTRiNjRhZmVkNWQ0NDZjOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIGJv
b2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAKIGNvbnN0IEF0
b21TdHJpbmcmIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0KCJm
aWVsZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpZWxkc2V0KCJmaWVs
ZHNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZmll
bGRzZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA2
MjBkMmM0MjFhMjEyNGJiOTJhMmE4NGE0ZmEwOGFjZTMxZWNlZDZmLi42NjVhY2U0N2U3OWUxNDNh
MWQwNjUzNTk4NzM3Y2U0MDdhMGEyMGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwCkBAIC05MDYsOCArOTA2LDggQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnNldEF1
dG9jb21wbGV0ZShjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKIAogY29uc3QgQXRvbVN0cmluZyYg
SFRNTEZvcm1FbGVtZW50OjphdXRvY29tcGxldGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9mZigib2Zm
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGF1dG9jb21wbGV0ZUF0dHIpLCAib2ZmIikgPyBvZmYgOiBv
bjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGNhMDA2
MzljZWIzYjhkNDdjYTBiZGM4MDkyYjZmZDkzZDYzZWYyMjQuLjg1NGI2YmY3NGM4MzViYmIyOGJl
MjA1ZDgwYWIzMDA0MzgxZTNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcApAQCAtOTAzLDggKzkwMyw4IEBAIHNpemVfdCBIVE1MSW1hZ2VFbGVtZW50OjpwZW5k
aW5nRGVjb2RlUHJvbWlzZXNDb3VudEZvclRlc3RpbmcoKSBjb25zdAogCiBjb25zdCBBdG9tU3Ry
aW5nJiBIVE1MSW1hZ2VFbGVtZW50Ojpsb2FkaW5nRm9yQmluZGluZ3MoKSBjb25zdAogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlYWdlcigiZWFnZXIiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBl
YWdlcigiZWFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsYXp5KCJsYXp5
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1dG8mIGF0dHJpYnV0
ZVZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmxvYWRp
bmdBdHRyKTsKICAgICByZXR1cm4gaGFzTGF6eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUoYXR0cmli
dXRlVmFsdWUpID8gbGF6eSA6IGVhZ2VyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcAppbmRleCA3ODBiNzkxOTNkOTg3NjMyYjU5MmM5YjI0ZDg1ODBiNGVjNmE4
ZTQwLi4xNjUxMGNmNzdjZWUzOTUwN2VlMDVkMGQ3MjQyMGVmNmFhOGI3ODdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBjbGFz
cyBLZXlnZW5TZWxlY3RFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxTZWxlY3RFbGVtZW50IHsK
ICAgICBLZXlnZW5TZWxlY3RFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBI
VE1MU2VsZWN0RWxlbWVudChzZWxlY3RUYWcsIGRvY3VtZW50LCAwKQogICAgIHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0LWtleWdl
bi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcHNldWRvSWQo
Ii13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTEzMCw3ICsxMzAs
NyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYg
Zm9ybURhdGEsIGJvb2wpCiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50Ojpm
b3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBrZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGtleWdlbigia2V5Z2VuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBrZXlnZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwCmluZGV4IDlmZTllMTRiNTY1MTU5MDY5OWYwOWE5NTVjNmNiNjI0MzJi
ZWQ2ZjAuLjkzYTZmNGNjZjUzZTRiMzBkM2QyOTk1ZTRlYWU0MzNmMzhlNzk0MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBA
QCBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29uc3Qg
QXRvbVN0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3JvdXAo
Im9wdGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3B0Z3JvdXAoIm9w
dGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBv
cHRncm91cDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcApp
bmRleCA1NmI3MjA2YWUzYmU4ZjEwYTg4MTRhZTlhZmFjNjJiZmViNTYwOWFjLi4zNjA2NjViNzI4
ODAxNjhiMWZkNTkwNTY1YmQyNzRjOGM5ZmJhZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPdXRwdXRFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8SFRNTE91dHB1dEVsZW1l
bnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRAogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gb3V0cHV0KCJvdXRwdXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvdXRw
dXQoIm91dHB1dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gb3V0cHV0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcAppbmRleCA3ZjAzNTRmNWM4MzlmNDVjNWEyYTZjYzZkNTc1MWQ0ZGNkN2JiNDRi
Li4xZGJkNDU0MWJmMzE2MDZlZTQ5OTZkMDAwMzI1MWFiZTAzYjVkMjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTQyMiw3ICs0MjIs
NyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jv
b3QoU2hhZG93Um9vdCYgcm9vdCkKIAogYm9vbCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0
T2ZTbmFwc2hvdE92ZXJsYXkoY29uc3QgRXZlbnRUYXJnZXQqIHRhcmdldCkgY29uc3QKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2VsZWN0b3IoIi5zbmFwc2hvdC1v
dmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0b3IoIi5zbmFw
c2hvdC1vdmVybGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGF1
dG8gc2hhZG93ID0gdXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIGlmICghc2hhZG93KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCmluZGV4IGVlNDM3MzY2NzJiZWQyM2I0NzlmMWEzNGQyMjcwNDcxNzRmMWU5ZWIuLjMxMzNk
MDMxMDE3MjQ0YTNjYmI2YWJlM2FmYzMzYjZlNDg4ZGQ1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0xMDAsOCArMTAwLDggQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGlkUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAog
Y29uc3QgQXRvbVN0cmluZyYgSFRNTFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE9uZSgic2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVj
dE11bHRpcGxlKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzZWxlY3RPbmUoInNlbGVjdC1vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG1fbXVsdGlwbGUgPyBzZWxlY3RNdWx0aXBsZSA6IHNlbGVjdE9u
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApp
bmRleCBhNjAwMzhmZTk0ZjI5OGIwOGVhNGFiNmVkYWNkN2QxNTU3YWE4NzU1Li5jMDZhM2U1MzMz
ODNhMWQ1MjFjM2I2OWFmMmM1ZmJiMmYzZGQ0YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTY5LDEwICsxNjksMTAgQEAgdm9pZCBIVE1M
VGFibGVDZWxsRWxlbWVudDo6c2V0Um93U3BhbkZvckJpbmRpbmdzKHVuc2lnbmVkIG4pCiBjb25z
dCBBdG9tU3RyaW5nJiBIVE1MVGFibGVDZWxsRWxlbWVudDo6c2NvcGUoKSBjb25zdAogewogICAg
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RhYmxlcy5odG1sI2F0
dHItdGgtc2NvcGUKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cm93KCJyb3ciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbCgiY29sIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNv
bGdyb3VwKCJjb2xncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvdygi
cm93IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sKCJjb2wiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3dncm91cCgicm93Z3JvdXAiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2xncm91cCgiY29sZ3JvdXAiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzY29wZUF0dHIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBlMTk1MDRi
ZDliODcwYjY2ODMzZGNhYjJmYzU1MmY2MTQ2ZjMxMDRiLi5hODk4ODNmYWQzMGQ5NzlmZWU2YThh
ZDMzNDJjOGQyYmI1MzQ5NDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIAogY29uc3QgQXRv
bVN0cmluZyYgSFRNTFRleHRBcmVhRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEoInRl
eHRhcmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dGFyZWEoInRleHRh
cmVhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0ZXh0
YXJlYTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzODhlY2I4YjAxYTBmYzc3MTc2MTI3MDk0Nzg5NzU2NGE2NGM5
ZWE2Li4zZGM0NjNiYjdkYzI2ZTNmMGI3ZTZkZTI4MzllZGYzZWE0ZjFmYzc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
Mzk3LDkgKzM5Nyw5IEBAIGludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBkaXJlY3Rpb25T
dHJpbmcoVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9uZSgibm9uZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
YmFja3dhcmQoImJhY2t3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9u
ZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcndhcmQoImZvcndh
cmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dhcmQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKGRpcmVj
dGlvbikgewogICAgIGNhc2UgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb246CkBAIC01MzUsOSArNTM1
LDggQEAgYm9vbCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6aXNJbm5lclRleHRFbGVtZW50
RWRpdGFibGUoKSBjb25zdAogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCkKIHsKICAgICBpZiAoYXV0byBpbm5lclRleHQg
PSBpbm5lclRleHRFbGVtZW50KCkpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHBsYWluVGV4dE9ubHlOYW1lKCJwbGFpbnRleHQtb25seSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxh
aW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZhbHNlTmFtZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgICAgIGNvbnN0IGF1dG8mIHZhbHVlID0gaXNJbm5lclRleHRFbGVtZW50
RWRpdGFibGUoKSA/IHBsYWluVGV4dE9ubHlOYW1lLmdldCgpIDogZmFsc2VOYW1lLmdldCgpOwog
ICAgICAgICBpbm5lclRleHQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29u
dGVudGVkaXRhYmxlQXR0ciwgdmFsdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRNb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRNb2RlLmNw
cAppbmRleCBhMjBlYWNjZmY5YzZkMDU3NjliOThkNjhjNzNmNWFmYzFiOWJlNmJlLi4zNDlkODVi
NTYyZTdiYjljNWFkZmVkNTI3MTFmNTMwNWM0N2RlNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0TW9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1v
ZGUuY3BwCkBAIC04Miw0OSArODIsNDkgQEAgbmFtZXNwYWNlIElucHV0TW9kZU5hbWVzIHsKIAog
Y29uc3QgQXRvbVN0cmluZyYgbm9uZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG1vZGUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
b2RlKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbCgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
dXJsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidXJs
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgidXJsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBlbWFpbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG1vZGUoImVtYWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgi
ZW1haWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1v
ZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWVyaWMoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGVjaW1h
bCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoImRlY2lt
YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtb2RlKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG1vZGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlTmFtZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKaW5k
ZXggYThhNmU3OWRjYzY4YjI5NmJmZDg3MTk3Y2NmNGI0NmU5YTdmOWVlNC4uM2UyNmQ3MGI2ZjBl
YzdlZWYxZDQ5OWExOWQ0YTBiZmE5ZDIyOWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGVOYW1lcy5jcHAKQEAgLTMzLDEzOSArMzMsMTM5IEBAIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1l
cyB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgY2hlY2tib3goKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBjb2xvcigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoImNvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgiY29sb3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgZGF0ZXRpbWUoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25z
dCBBdG9tU3RyaW5nJiBkYXRldGltZWxvY2FsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
ZW1haWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJl
bWFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgiZmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5h
bWUoImZpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGhpZGRlbigpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoImhpZGRlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgaW1hZ2Uo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBtb250aCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG5hbWUoIm1vbnRoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgi
bW9udGgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG51bWJlcigpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG5hbWUoIm51bWJlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcGFzc3dvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29y
ZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiByYWRpbygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IG5hbWUoInJhZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgicmFkaW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJhbmdlKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgcmVzZXQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBzZWFyY2goKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBuYW1lKCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KCJzZWFyY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHN1Ym1pdCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG5hbWUoInN1Ym1pdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVsZXBo
b25lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidGVs
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGVsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiB0ZXh0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbmFtZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRl
eHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRpbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ0aW1lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbmFtZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdXJsKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidXJsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWVrKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgid2VlayIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAppbmRleCBlNDgyYjM2MmIxOGE3YTU0OTQ1Mzc2NDY0
NGNjZmU3Y2JmNTE1MmIzLi4zMjExNTBjYTdlZjk0MjFkNzRkY2Q1MmQ4ZDZjMjcyOGMwMWI1N2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4
OSwxOSBAQCB2b2lkIE1lZGlhQ29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0
aWMgY29uc3QgQXRvbVN0cmluZyYgcGxheWJhY2tTdGF0ZVdhaXRpbmcoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0KIAogc3RhdGljIGNv
bnN0IEF0b21TdHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHBsYXlpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBB
dG9tU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBlbmRlZCgiZW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCmluZGV4IGRiNjM2ZTI2OWEwYzViOTc5ZjM0NTJmYmJiOWFjMDVlNmYxMjMxYjcuLmRmNWVi
MzUwYzQxNzAwMTI2ODI4NzY5Yjc4NTU3YjYwM2U2ZmY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yNTUsOCArMjU1LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNrTmFt
ZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNsaWRlclJ1bm5h
YmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50
KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB0cmFjayA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIHRyYWNrLT5zZXRQc2V1ZG8od2Via2l0U2xpZGVyUnVubmFibGVUcmFj
a05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCmluZGV4IDc3MWNm
NDcxMjMyYjg1ZWMzMGIyMjY1NTRhMzI5ZDgwYjI1YTAzNjEuLjE4N2YzZjY0ZmY5NTYzMDAzMTJm
ZWJhMGY3YzEzMGFiY2Y3OWViNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAKQEAgLTY0LDEwICs2NCw5IEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjphZGRTZWFyY2hS
ZXN1bHQoKQogCiBzdGF0aWMgdm9pZCB1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBlKFNlYXJj
aEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQmIHJlc3VsdEJ1dHRvbiwgaW50IG1heFJlc3VsdHMp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNl
YXJjaERlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQt
c2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
U2VhcmNoUmVzdWx0c0J1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRTZWFyY2hEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlv
biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3VsdHNE
ZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0J1dHRvbk5hbWUo
Ii13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIGlmICghbWF4UmVzdWx0cykKICAgICAgICAgcmVzdWx0QnV0dG9uLnNl
dFBzZXVkbyh3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlvbk5hbWUpOwogICAgIGVsc2UgaWYg
KG1heFJlc3VsdHMgPCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCmluZGV4IDJmNTllNDUzOTIyOTY0M2QxYzgwM2JjNmNlMDI0ZWM2ZTQ1MGUwMzguLjJkZTQz
ZGFkNWE5ZmI2ZDhjNTkxZDdmZmZkNDRlMWM0NDI2Nzg2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTM0OCw4ICszNDgsNyBAQCB2b2lkIFRleHRG
aWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgfQogCiAgICAgaWYgKHNo
b3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcikgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRpY2F0b3JOYW1lKCItd2Via2l0
LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q2Fwc0xvY2tJbmRpY2F0
b3JOYW1lKCItd2Via2l0LWNhcHMtbG9jay1pbmRpY2F0b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3IgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvci0+c2V0
UHNldWRvKHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSk7CiAKQEAgLTQ1Nyw4ICs0NTYsNyBA
QCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlRGF0YUxpc3REcm9wZG93bkluZGljYXRv
cigpCiAgICAgaWYgKCFtX2NvbnRhaW5lcikKICAgICAgICAgY3JlYXRlQ29udGFpbmVyKCk7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TGlzdEJ1
dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdExpc3RCdXR0b25OYW1l
KCItd2Via2l0LWxpc3QtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxvd2VkU2NvcGUgYWxsb3dlZFNj
b3BlKCptX2NvbnRhaW5lcik7CiAgICAgbV9kYXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yID0gRGF0
YUxpc3RCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpLCAqdGhpcyk7
CiAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKCptX2RhdGFMaXN0RHJvcGRvd25JbmRpY2F0
b3IpOwpAQCAtNzgyLDggKzc4MCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVD
b250YWluZXIoKQogICAgIEFTU0VSVCghbV9jb250YWluZXIpOwogICAgIEFTU0VSVChlbGVtZW50
KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dFRleHRmaWVsZERlY29yYXRpb25Db250YWluZXJOYW1lKCItd2Via2l0LXRleHRmaWVsZC1kZWNv
cmF0aW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3JhdGlvbkNvbnRhaW5l
ck5hbWUoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpF
dmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoKmVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93
Um9vdCgpKTsKIApAQCAtODAzLDggKzgwMCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUgYXV0b0ZpbGxCdXR0b25UCiAg
ICAgaWYgKGF1dG9GaWxsQnV0dG9uVHlwZSA9PSBBdXRvRmlsbEJ1dHRvblR5cGU6Ok5vbmUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBtX2F1dG9GaWxsQnV0dG9uID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLT5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRvbi0+c2V0UHNldWRv
KGF1dG9GaWxsQnV0dG9uVHlwZVRvQXV0b0ZpbGxCdXR0b25Qc2V1ZG9DbGFzc05hbWUoYXV0b0Zp
bGxCdXR0b25UeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CmluZGV4IGM4Y2M2YjQ5ZTQ2ZTBjZjkwYmFiMzI2NWQxOWJkYzAyMDhjNzRjZTAuLjk5YzlhNjg0
NzY0ZTc2MDBiODkzMDAzODViNjQyOGE5OTk5MTU4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC0xODEsMTUgKzE4MSwxNCBAQCB2b2lkIFZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoKQogCiAgICAgU2hhZG93Um9vdCYgc2hhZG93Um9v
dCA9IG1fZWxlbWVudC0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVO
YW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9u
LWJ1YmJsZS1hcnJvdy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxp
ZGF0aW9uQnViYmxlQXJyb3dOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTWVzc2FnZU5hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVU
ZXh0QmxvY2tOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQtYmxvY2siLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVIZWFkaW5nTmFtZSgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1oZWFkaW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRWYWxpZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
Ym9keSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFsaWRhdGlv
bi1idWJibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0
aW9uQnViYmxlQXJyb3dDbGlwcGVyTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJv
dy1jbGlwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRh
dGlvbkJ1YmJsZUFycm93TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVNZXNz
YWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUljb25OYW1lKCItd2Vi
a2l0LXZhbGlkYXRpb24tYnViYmxlLWljb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlVGV4dEJsb2NrTmFtZSgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0VmFsaWRhdGlvbkJ1YmJsZUhlYWRpbmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnVi
YmxlLWhlYWRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxp
ZGF0aW9uQnViYmxlQm9keU5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYm9keSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsKICAgICBtX2J1YmJsZSA9IEhUTUxEaXZFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IDJmMTY2ZjcyMjI1NjFkODljMzllOTBmODJj
Yjc3MjE0MTA4YTBjZmQuLjEyZDUwZmNmYTRjZWRhN2UyMjMwN2ZjNmU5ZjM2MDdmYjBhYmRkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250
cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAKQEAgLTQ5LDggKzQ5LDcgQEAgUmVmPERldGFpbHNNYXJrZXJDb250cm9sPiBEZXRh
aWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIERldGFpbHNNYXJr
ZXJDb250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdERldGFpbHNNYXJrZXJO
YW1lKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2VyTmFt
ZSgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0RGV0YWlsc01hcmtlck5hbWUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tD
b250YWluZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCmluZGV4IDRmNTFiNTJlNmM0NjdiNDAz
OGI0N2NhMDU1OTc0ZTRkYTdhNWEwYTEuLjFkM2U5MmQzZWI0ZGVjMjMwZWVhODBlOGUzYTc5Yzdk
ZjAxNzczZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwCkBAIC03
Nyw4ICs3Nyw3IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiAgICAgOiBIVE1MRGl2RWxlbWVu
dChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9tZWRpYUVsZW1lbnQobWFrZVdlYWtQdHIoJmVs
ZW1lbnQpKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSgiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8od2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJO
YW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNz
U2hhZG93RWxlbWVudC5jcHAKaW5kZXggNmJjMTE3MGZkNGZiOTg5Yjg0OWFkZTRlN2NjMzZjMmFh
Yjg1MzY4NS4uZjU3NGYwNzQ3ZDE5YWIwOGIxMGE0NWYzMTllNzg0M2FhMjRiMjZhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
Y3BwCkBAIC05MSw4ICs5MSw3IEBAIHZvaWQgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OnNldFdpZHRo
UGVyY2VudGFnZShkb3VibGUgd2lkdGgpCiAKIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVudD4gUHJv
Z3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzSW5uZXJF
bGVtZW50TmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQ
cm9ncmVzc0lubmVyRWxlbWVudE5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NJbm5lckVsZW1lbnQoZG9j
dW1lbnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0lubmVyRWxlbWVu
dE5hbWUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDAsOCArOTksNyBAQCBSZWY8UHJvZ3Jl
c3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogCiBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1i
YXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1iYXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzQmFyRWxl
bWVudD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9jdW1lbnQp
KTsKICAgICByZXN1bHQtPnNldFBzZXVkbyh3ZWJraXRQcm9ncmVzc0Jhck5hbWUpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDksOCArMTA3LDcgQEAgUmVmPFByb2dyZXNzQmFyRWxlbWVudD4g
UHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBSZWY8UHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzVmFsdWVFbGVtZW50
PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7
CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NWYWx1ZU5hbWUpOwogICAgIHJl
dHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAppbmRleCAzNTMzZThiYTgwNzc0ZGMyZDY2YzE1YTQ4MTIxYzYzNzhkZGFl
NmE5Li42OGE0OTBlMWZiMTQ0ZTczMWQzZDA3NDhjODc5MGM5NzNjZTE4M2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTU4
Nyw4ICs1ODcsOCBAQCBPcHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJUaHVtYkVs
ZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25zdCBSZW5kZQogewogICAgIC8vIFRoaXMgZG9l
c24ndCBhY3R1YWxseSBjb21wdXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBpY2sg
c2hhZG93IHBzZXVkbyBpZCB3aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xp
ZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCIt
d2Via2l0LXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1l
ZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoIWhvc3RTdHls
ZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY0MSw4ICs2NDEsOCBAQCBPcHRp
b25hbDxTdHlsZTo6RWxlbWVudFN0eWxlPiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZl
Q3VzdG9tU3R5bGUoY29uc3QgUgogewogICAgIC8vIFRoaXMgZG9lc24ndCBhY3R1YWxseSBjb21w
dXRlIHN0eWxlLiBUaGlzIGlzIGp1c3QgYSBoYWNrIHRvIHBpY2sgc2hhZG93IHBzZXVkbyBpZCB3
aGVuIGhvc3Qgc3R5bGUgaXMga25vd24uCiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xpZGVy
LWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Vi
a2l0LXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
ZWRpYVNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyQ29udGFpbmVyKCItd2Via2l0LXNs
aWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAg
ICBpZiAoIWhvc3RTdHlsZSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRleCA5ZTMy
OGY2YzZiMWFjYTdmY2QxMGVmZTViYzRmZTIyNGRjZmFkNDIzLi45ODQ2ZDAzZDk2NmIzZjkzMjA2
YjkxNDQyZmQyMjNiMDIwY2NhM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC01NSw4ICs1NSw3IEBAIGlubGluZSBTcGluQnV0
dG9uRWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBTcGluQnV0
dG9uT3duZXImCiAgICAgLCBtX3ByZXNzU3RhcnRpbmdTdGF0ZShJbmRldGVybWluYXRlKQogICAg
ICwgbV9yZXBlYXRpbmdUaW1lcigqdGhpcywgJlNwaW5CdXR0b25FbGVtZW50OjpyZXBlYXRpbmdU
aW1lckZpcmVkKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRJbm5lclNwaW5CdXR0b25OYW1lKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEhhc0N1c3RvbVN0
eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogICAgIHNldFBzZXVkbyh3ZWJraXRJbm5lclNwaW5CdXR0
b25OYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDc5MzRkZGM1ZTI2Y2ViZWUwOTZhNjg4YTA2
YzUyZjY1MjMwYzJkYzcuLmI2ZDY5YzFjNDhkNDI0OWVlNDYwY2NlNWNmOTc1ZWUyNTc0ZGE0M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcApAQCAtMTgyLDggKzE4Miw3IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVt
ZW50U3R5bGU+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0eWxl
KGNvCiBpbmxpbmUgVGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQ6OlRleHRDb250cm9sUGxh
Y2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50
KGRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHBsYWNlaG9sZGVyTmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWNlaG9sZGVy
TmFtZSgicGxhY2Vob2xkZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgc2V0UHNldWRvKHBsYWNlaG9sZGVyTmFtZSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNv
bHZlQ2FsbGJhY2tzKCk7CiB9CkBAIC0yNTYsOSArMjU1LDggQEAgYm9vbCBTZWFyY2hGaWVsZFJl
c3VsdHNCdXR0b25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiBpbmxp
bmUgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0U2VhcmNoQ2FuY2VsQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1
dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3
ZWJraXRTZWFyY2hDYW5jZWxCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc2V0SGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKaW5kZXggMjJmNjIwOTZkY2Iw
ZmNlOGE2M2QwZjhjNDhkNDU5YWQwMzFkMWE1ZC4uOTc1YTY1YjBjYzQ3MzlhYzg2ZDc3MmU3MTk2
ZWEwYmU5NjNkMjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91
VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKQEAgLTQxLDggKzQxLDcgQEAgUmVmPFlv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jKQogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6WW91VHViZUVtYmVk
U2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChI
VE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgiLXdlYmtpdC1w
bHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSgiLXdl
YmtpdC1wbHVnaW4tcmVwbGFjZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdFBsdWdpblJlcGxhY2VtZW50TmFtZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0
dG9uRWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IDk2NDMxNmEyMmUyYWYzYTQyOTdlOThl
NzMxMzQ2MjU3NjVhYzlkZjYuLjZkODAxYTYxNWYxMTZiNGQ1OTYyN2UyODlhYTYzZWQxNmY2Y2Vh
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
bWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtOTQsOCArOTQsNyBAQCBS
ZWZQdHI8SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM+IEltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50TWFjOjp0cnlDcmVhdGUoRAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Via2l0LWltYWdlLWNv
bnRyb2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4geFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdl
YmtpdC1pbWFnZS1jb250cm9scy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBhdXRvIGJ1dHRvbiA9IGFkb3B0UmVmKCpuZXcgSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhXZWJraXRJbWFnZUNvbnRy
b2xzQnV0dG9uTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCmluZGV4IDJmOWRmNDlj
MjJlYmVhMGI4ZTQ1OTJhZjFhNTY0N2I2NzY1MWYyOWIuLjNhYTQ1NDljMTNjODc1MTc1NTBiM2Y3
MWYzODQ5NzgyYjZkMGI4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCkBAIC04Niw4
ICs4Niw3IEBAIFJlZlB0cjxJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQ+IEltYWdlQ29udHJvbHNS
b290RWxlbWVudDo6dHJ5Q3JlYXRlKERvY3VtZW50JiBkCiAgICAgaWYgKCFkb2N1bWVudC5wYWdl
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQtaW1h
Z2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzTmFtZSgieC13ZWJraXQtaW1h
Z2UtY29udHJvbHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBS
ZWY8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjPiBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcg
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjKGRvY3VtZW50KSk7CiAgICAgY29udHJvbHMtPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpjbGFzc0F0dHIsIHhX
ZWJraXRJbWFnZUNvbnRyb2xzTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmNwcAppbmRleCAwMjA5ZjllYzFjMDJjOTc0ZmQ0ZTYwYjFmZDQwMDM3ODYzODM2MGMzLi4y
M2E5MWQwMDBhY2JiZTEwMjVjMDU0YmYyYzViMmJjZTYxMTA4YzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTQxLDM3ICs0MSwzNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5
d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGFsdGVybmF0
aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVy
bmF0aXZlKCJhbHRlcm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJh
Y2s6OmRlc2NyaXB0aW9uS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGRlc2NyaXB0aW9uKCJkZXNjcmlwdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIEF1ZGlvVHJhY2s6Om1haW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWFpbigibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG1haW47CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6Om1h
aW5EZXNjS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG1haW5EZXNjKCJtYWluLWRlc2MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
YWluRGVzYygibWFpbi1kZXNjIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtYWluRGVzYzsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9UcmFjazo6
dHJhbnNsYXRpb25LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdHJhbnNsYXRpb24oInRyYW5zbGF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiB0cmFuc2xhdGlvbjsKIH0KIAogY29uc3QgQXRvbVN0
cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IGM2NWExMTg3OWU2NTEz
MjM5NTEzMTQzNzI4MDdiY2NkNmUxZmNjNjQuLmQ0ZTBmNjkxMzFhMWJiMGFjMzRhM2E2MGFmNTAy
NTcyMTg0NDE3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAg
LTUyLDM3ICs1MiwzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNrKTsK
IAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJzdWJ0
aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRp
dGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc3Vi
dGl0bGVzOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgY2FwdGlvbnNLZXl3b3JkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMo
ImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMoImNh
cHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBj
YXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRlc2NyaXB0aW9uc0tleXdv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXNj
cmlwdGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGRlc2NyaXB0aW9ucygiZGVzY3JpcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9t
U3RyaW5nJiBjaGFwdGVyc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjaGFwdGVycygiY2hhcHRlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNoYXB0ZXJzOwogfQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgbWV0YWRhdGFLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbWV0YWRhdGEoIm1ldGFkYXRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAgICAKIHN0YXRpYyBjb25z
dCBBdG9tU3RyaW5nJiBmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggNjU1MTA4YTU5N2M5NTNmYzA4NzllZjA4YTgzMmMx
MjQ0YjhkZmRhMS4uN2RjOGFhM2Y2YTQ4NmQ0MWNmYjcwOTdlMGU0M2I2YWM4ZjU1OWQ4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNjQsMTkgKzY0
LDE5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVCb3gpOwogCiBj
b25zdCBBdG9tU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRv
SWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ryb3BT
aGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ryb3Ai
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNrZHJvcFNoYWRvd1BzZXVk
b0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNrZHJvcCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY3VlQmFja2Ryb3BTaGFkb3dQ
c2V1ZG9JZDsKIH0KIApAQCAtNDg4LDggKzQ4OCw3IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpyZWJ1
aWxkRGlzcGxheVRyZWUoKQogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxvd2Vk
U2NvcGUgYWxsb3dlZFNjb3BlRm9yUmVmZXJlbmNlVHJlZSgqbV9jdWVOb2RlKTsKIAogICAgIGlm
ICghbV9kaXNwbGF5VHJlZSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdlbmVyaWMtY3Vl
LXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKCItd2Via2l0LWdl
bmVyaWMtY3VlLXJvb3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIG1fZGlzcGxheVRyZWUgPSBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZShvd25lckRvY3VtZW50
KCksICp0aGlzKTsKICAgICAgICAgbV9kaXNwbGF5VHJlZS0+c2V0UHNldWRvKHdlYmtpdEdlbmVy
aWNDdWVSb290TmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCmluZGV4IDNhNmU0NzIxZTc3MmQ4ZmQxZGI1OWVkODMzZmU3YjJkNTQxNjgzNmYuLmNkOGM4
N2IwMjdlN2E0NzUzOGMyYWUyYmE4ZmJmY2U0M2JjMzI4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBWVFRSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUgdmFsdWUpCiAKIHN0YXRpYyBj
b25zdCBBdG9tU3RyaW5nJiB1cEtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtleXdvcmQoInVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdXBLZXl3b3JkOwogfQogCkBAIC0yNjIsMjEgKzI2MiwyMSBAQCB2
b2lkIFZUVFJlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVnaW9uU2V0dGluZyBzZXR0aW5nLCBW
VFRTY2FubmVyJiBpbnB1dCkKIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJh
Y2tDdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xh
c3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVn
aW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3MoInNjcm9sbGluZyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5l
clNjcm9sbGluZ0NsYXNzOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRU
cmFja0N1ZUNvbnRhaW5lclNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZCgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBz
ZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja1JlZ2lv
blNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9u
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25TaGFk
b3dQc2V1ZG9JZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmlu
ZGV4IGI1ZGYxODNhYmQyZmY4Y2UxYjhmMzllYmZkMWQyMGY1NjBjMDU5YTMuLjM4ZWQ1MWM3NmUx
ZjUzYzA4YmU3MjBhZThkNzY2NGI0ODAxNDQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmNwcApAQCAtNDYsMzcgKzQ2LDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRpdmUo
ImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRp
dmUoImFsdGVybmF0aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6
Y2FwdGlvbnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2FwdGlvbnMoImNhcHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9U
cmFjazo6bWFpbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBjYXB0aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGNhcHRpb25zKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6
c2lnbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBzaWduKCJzaWduIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2lnbigi
c2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc2ln
bjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6c3VidGl0bGVzS2V5d29yZCgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxl
cygic3VidGl0bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVz
KCJzdWJ0aXRsZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVu
dGFyeUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCBlNGE5
NGE1MDU5NjFhYTM3OTdmYTZkMDRlYTY1YzY0NTY1YWQ5NmRkLi43NTA4ZDc1YWNmYTE5ZTExZGZh
MjU2YjY2NzM0NGE2MzNkYTIzYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtODIsNyArODIsNyBAQCBjb25z
dCBBdG9tU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25z
dAogICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1f
aW5pdGlhdG9yTmFtZTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBk
ZWZhdWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZh
dWx0TmFtZSgib3RoZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIGRlZmF1bHROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggODliNmI2ZDdlMWY0YzFhOTFlZTZlMjUyMTU1MDA3ZGZlMDlhMDA5OC4uYTcwMjNhNmQz
NzUwYjYxNjA3Nzc5ZGJkZjNiYTFkMDA3NDVhZTdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcApAQCAtMzQwNiwxMCArMzQwNiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVu
dAogCiBzdGF0aWMgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRv
bVN0cmluZyYga2V5SWRlbnRpZmllcikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBMZWZ0KCJMZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBEb3duKCJEb3duIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gVXAoIlVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gTGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IFJpZ2h0KCJS
aWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEZvY3VzRGly
ZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3Bw
CmluZGV4IDIyOTZhOGY5ZGQ1OWYyYWU5ODQ1ZDZlMjI3YTM3ODUzZDFmYzU5NWUuLmUyYTRjMDgw
YWQ0MmI2MTFjZWM5MzczZTYyMzMxZTU4MGQwYzg0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAK
QEAgLTY4NCw3ICs2ODQsNyBAQCBib29sIFF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0ZvcndhcmRD
YWNoZSgpIGNvbnN0CiAgICAgLy8gYmVjYXVzZSBpdCBwdXRzIGFuIG92ZXJsYXkgKHdpdGggY2xh
c3MgImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIpIG92ZXIgdGhlIHBhZ2Ugd2hlbiBu
YXZpZ2F0aW5nIGF3YXkgYW5kIGZhaWxzCiAgICAgLy8gdG8gcmVtb3ZlIGl0IHdoZW4gY29taW5n
IGJhY2sgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIChlLmcuIGluICdwYWdlc2hvdycgZXZl
bnQgaGFuZGxlcikuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTc2NzAwNjQ+LgogICAgIC8vIE5vdGUg
dGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGZvciBkb2NzLmdvb2dsZS5jb20gaG9zdCBiZWNhdXNl
IG9mIGhvc3RlZCBHIFN1aXRlIGFwcHMuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGdvb2dsZURvY3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1m
cmVlemUtZWwtZnVsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdvb2dsZURv
Y3NPdmVybGF5RGl2Q2xhc3MoImRvY3MtaG9tZXNjcmVlbi1mcmVlemUtZWwtZnVsbCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvKiBmaXJzdENoaWxkSW5Cb2R5
ID0gbV9kb2N1bWVudC0+Ym9keSgpID8gbV9kb2N1bWVudC0+Ym9keSgpLT5maXJzdENoaWxkKCkg
OiBudWxscHRyOwogICAgIGlmIChpczxIVE1MRGl2RWxlbWVudD4oZmlyc3RDaGlsZEluQm9keSkp
IHsKICAgICAgICAgYXV0byYgZGl2ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCpmaXJzdENo
aWxkSW5Cb2R5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uY3BwCmluZGV4IGVlMGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5ZWNl
OWFkNjczN2QuLjkzYzQ5YmNmNmQ5MWY0ZGNkZjU0NjcxNGE1NDM2ODNlMTJkNDc5NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVL
ZXlmcmFtZUFuaW1hdGlvbnMoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyCiAgICAgLy8g
VG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAgICBtX2tleWZyYW1lQW5pbWF0aW9uT3Jk
ZXJNYXAuY2xlYXIoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9uZSgi
bm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAKICAgICAvLyBO
b3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMgYWN0aXZlIGFuZCBhZGQgYW55
IG5ldyBhbmltYXRpb25zLgogICAgIGlmICh0YXJnZXRTdHlsZS5hbmltYXRpb25zKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5kZXggYjE0OTUxODQ0NzNkY2FlMWFmYzVj
YTk3ZDQ0NGFiYzY1OTE3YjhjOC4uMDg0ZjQzMjk1ZDgxNWUzMDAzMzI1ZDk4M2I3NzAzOTNkOTY5
YTRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTQwMyw3ICs0MDMs
NyBAQCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpvYnNlcnZlZEV2ZW50TmFtZXMoKQogCiBjb25zdCBBdG9tU3RyaW5nJiAgUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmV2ZW50TmFtZUFsbCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZXZlbnROYW1lQWxsKCJhbGxFdmVudHMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGV2ZW50TmFtZUFs
bDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCBlOGUzOWM5MjYz
ZDdhNTg3M2JhOWMxNzRiNThlNDFmZjgzZDc3ZDQwLi4zYWQ2OWI3ZTc0M2NlYTE4MWQ0Y2ZmYzU4
YmYyZDJiZTc4NjY0NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpAQCAt
MTg0LDcgKzE4NCw3IEBAIGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6Om9ic2VydmVkRXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21TdHJp
bmcmIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFs
bEV2ZW50cyI7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBzRXZlbnROYW1lQWxsID0gImFsbEV2ZW50cyI7CiAgICAgcmV0dXJuIHNFdmVudE5h
bWVBbGw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCmluZGV4IDdmY2FhNDRkNTRhMzg3NDJmN2RkNTg3NDAwNmFhNDM3NmUyNTg0OGMuLmFi
YTFhODQyNjgwMjVjMTJmNzVkNjczNzNiOTMzMjZjZWM2YjNmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMTQ5LDEyICsxNDksMTIg
QEAgc3RhdGljIEZvbnRQbGF0Zm9ybURhdGFDYWNoZSYgZm9udFBsYXRmb3JtRGF0YUNhY2hlKCkK
IAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0
IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllcigiQ291cmll
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lcygiVGlt
ZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFyaWFsKCJBcmlhbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvdXJpZXIoIkNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBjb3VyaWVyTmV3KCJDb3VyaWVyIE5ldyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGhlbHZldGljYSgiSGVsdmV0aWNhIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgcGxhdGZvcm1TcGVj
aWZpY0FsdGVybmF0ZSA9IHBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKTsK
ICAgICBpZiAoIXBsYXRmb3JtU3BlY2lmaWNBbHRlcm5hdGUuaXNOdWxsKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYzgyOGJi
ZTdlNzc1NWVlNzExMjE3MjNlOWYxNzAyN2VkMWZhZTI0Ni4uNWMyYWFmOGFjY2IzMTYwMDA4ZGNi
ZmFkMDlmNGY1ZmE4ZmE3OTE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMjk3LDEzICsyOTcsMTMgQEAgc3RhdGljIHZvaWQg
YWRkTWVkaWFFbmdpbmUoc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyRmFjdG9yeT4mJiBmYWN0
b3J5KQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0
aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oImFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gYXBwbGljYXRpb25PY3RldFN0cmVhbTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IHRleHRQbGFpbigpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRleHRQbGFpbigidGV4dC9wbGFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZh
aXJQbGF5U3RyZWFtaW5nLmNwcAppbmRleCAyZDZlOWFhNjNjNGUxOTlkZDk5MmUxNzQ0MmU1ZGFl
MGU2MzQxOGJlLi44YWM0OGVjNWRjNjliMzE0OTU3YmE0MzNmOTcxMDFlYTI3NzY5NjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKQEAgLTc1LDEzICs3NSwx
MyBAQCBjb25zdCBWZWN0b3I8Rm91ckNDPiYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjp2
YWxpZEZhaXJQbGF5U3RyZWFtaW5nU2NoZW1lcwogCiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Qcml2
YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJzaW5mIikg
fTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CiAgICAgcmV0dXJuIHNp
bmY7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6
c2tkTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNrZCB7
IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJza2QiKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoInNrZCIpIH07CiAgICAgcmV0dXJuIHNrZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggOTlhOTNjMjU5OGQ0NzZjMTQyNjliNDRmOTFiMTMwN2Q0YzU3Yjk4ZC4uM2I4MDQy
ODllMTNjZWQ4YzEyN2QyYzAwOTRlMWYwNDkzZmE3YzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0zMDE4LDEyICszMDE4LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpCiAjaWYg
RU5BQkxFKERBVEFDVUVfVkFMVUUpCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWV0YWRhdGFU
eXBlKE5TU3RyaW5nICphdk1ldGFkYXRhS2V5U3BhY2UpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVzZXJEYXRhKCJjb20uYXBwbGUucXVp
Y2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcubXA0
cmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZU1ldGFkYXRhKCJjb20uYXBwbGUu
cXVpY2t0aW1lLm1kdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRhKCJj
b20uYXBwbGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZDNNZXRhZGF0YSgib3Jn
LmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGxzRGF0ZVJhbmdlTWV0YWRhdGEoImNvbS5h
cHBsZS5xdWlja3RpbWUuSExTIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcXVp
Y2tUaW1lVXNlckRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUudWR0YSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGlzb1VzZXJEYXRhKCJvcmcubXA0cmEiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGlt
ZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaVR1bmVzTWV0YWRhdGEo
ImNvbS5hcHBsZS5pdHVuZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZDNN
ZXRhZGF0YSgib3JnLmlkMyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhsc0Rh
dGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChbYXZNZXRhZGF0YUtleVNwYWNlIGlzRXF1
YWxUb1N0cmluZzpBVk1ldGFkYXRhS2V5U3BhY2VRdWlja1RpbWVVc2VyRGF0YV0pCiAgICAgICAg
IHJldHVybiBxdWlja1RpbWVVc2VyRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCBm
NjI4YWMyYjZjZTc0ZmZjNTIwNmIxYTJkOWNmZjU3OTIxOTA5N2Q1Li4zMzJkMmVmYzA2ZmU5YTQw
YWExZWM2ZjJlNDc1ZDhlMzI3NzJkMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC03
MDUsMTMgKzcwNSwxMyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1pbGFyRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgLy8gU3Vic3RpdHV0ZSB0aGUgZGVmYXVsdCBtb25vc3BhY2UgZm9udCBm
b3Igd2VsbC1rbm93biBtb25vc3BhY2UgZm9udHMuCiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGZhbWlseSwgIm1vbmFjbyIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGZhbWlseSwgIm1lbmxvIikpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGNvdXJpZXIoImNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gY291cmllcigiY291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGNvdXJp
ZXIpOwogICAgIH0KIAogICAgIC8vIFN1YnN0aXR1dGUgVmVyZGFuYSBmb3IgTHVjaWRhIEdyYW5k
ZS4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAibHVjaWRh
IGdyYW5kZSIpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2
ZXJkYW5hKCJ2ZXJkYW5hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
ICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZl
cmRhbmEoInZlcmRhbmEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2NyaXB0aW9uLCB2ZXJkYW5hKTsKICAgICB9CiAj
ZW5kaWYKQEAgLTcyMCw4ICs3MjAsOCBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzaW1pbGFy
Rm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBBdAogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhc2h0byhNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiUGFzaHRvIikpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHVyZHUoTUFL
RV9TVEFUSUNfU1RSSU5HX0lNUEwoIlVyZHUiKSk7CiAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hX
b3Jkc1szXSA9IHsgJmFyYWJpYy5nZXQoKSwgJnBhc2h0by5nZXQoKSwgJnVyZHUuZ2V0KCkgfTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZ2VlemFQbGFpbigiR2VlemFQ
cm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGZvciAoU3RyaW5nKiBtYXRjaFdvcmQg
OiBtYXRjaFdvcmRzKSB7CiAgICAgICAgIGlmIChmYW1pbHkuY29udGFpbnNJZ25vcmluZ0FTQ0lJ
Q2FzZSgqbWF0Y2hXb3JkKSkKICAgICAgICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2Ny
aXB0aW9uLCBpc0ZvbnRXZWlnaHRCb2xkKGRlc2NyaXB0aW9uLndlaWdodCgpKSA/IGdlZXphQm9s
ZCA6IGdlZXphUGxhaW4pOwpAQCAtMTUwNywxMCArMTUwNywxMCBAQCBjb25zdCBBdG9tU3RyaW5n
JiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3RyaW5n
JiBmYW1pbAogICAgIHN0YXRpYyBjb25zdCBVQ2hhciB3ZWlydWFuWWFIZWlTdHJpbmdbXSA9IHsg
MHg1ZmFlLCAweDhmNmYsIDB4OTZjNSwgMHg5ZWQxIH07CiAgICAgc3RhdGljIGNvbnN0IFVDaGFy
IHdlaXJ1YW5aaGVuZ0hlaXRpU3RyaW5nW10gPSB7IDB4NWZhZSwgMHg4ZWRmLCAweDZiNjMsIDB4
OWVkMSwgMHg5YWQ0IH07CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
c29uZ3RpU0MoIlNvbmd0aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc29uZ3RpVEMoIlNvbmd0aSBU
QyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNvbmd0aVNDKCJTb25ndGkgU0MiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzb25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGVpdGlTQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBTQyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGhlaXRpVENSZXBsYWNlbWVudCgiUGluZ0Zh
bmcgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2gg
KGZhbWlseU5hbWUubGVuZ3RoKCkpIHsKICAgICBjYXNlIDI6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250
RGF0YWJhc2VDb3JlVGV4dC5jcHAKaW5kZXggY2M0ZTJiYzQ0NmYyOGU0OWRlYjUzMzZhMzNiMGJi
Zjc5ODZmYzJkMC4uMzUwYjE2YTdlMWVjMmE1M2M0OWY5MTJhZGNlNjc5MTE1MmYzY2EwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9u
dERhdGFiYXNlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcApAQCAtMjEzLDIyICsyMTMs
MjIgQEAgU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OkNhc2NhZGVMaXN0UGFyYW1ldGVycyBT
eXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c3kKIAogICAgIHN3aXRjaCAoc3lzdGVtRm9udEtp
bmQpIHsKICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpTeXN0ZW1VSTogewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUkgPSBBdG9tU3RyaW5nKCJzeXN0
ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVtVUkgPSBB
dG9tU3RyaW5nKCJzeXN0ZW0tdWkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJLmdldCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlTZXJpZjogewotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlTZXJpZiA9IEF0b21TdHJp
bmcoInVpLXNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3Rl
bVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1zZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlTZXJpZi5nZXQo
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJTW9u
b3NwYWNlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0
ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmcoInVpLW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSU1vbm9zcGFjZSA9IEF0b21TdHJpbmcoInVp
LW1vbm9zcGFjZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
cmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlNb25vc3BhY2UuZ2V0KCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSVJvdW5kZWQ6IHsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJUm91bmRlZCA9IEF0b21T
dHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c3lzdGVtVUlSb3VuZGVkID0gQXRvbVN0cmluZygidWktcm91bmRlZCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0LmZvbnROYW1lID0gc3lzdGVtVUlS
b3VuZGVkLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4
IGEwYWEyNTAzZWE1ZWJlYzljYmVhNWFjNzI3ZjcwNjA1OTM5NDU3NTUuLmVmNjk1MjE2NGYwMzBm
NWIwZjc0YTM4MDVmMzU3YmFlNjJiN2NiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBAIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShGaWx0ZXJFZmZlY3Qm
IHNvdXJjZUVmZmVjdCkKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5h
bWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2Vm
ZmVjdE5hbWUoIlNvdXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c19lZmZlY3ROYW1lKCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApp
bmRleCAwNDVlZTAxZjIyM2U0MjJmZmYwNDZmZWEyZjRjYTJkZGUwZGRkNzEyLi44OGEzNmE0MTAy
NmJkM2E1ODU0NDc4MjAyNzRjMTEwN2Q3ODM5MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAgUmVmPFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShG
aWx0ZXImIGZpbHRlcikKIAogY29uc3QgQXRvbVN0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0
TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNf
ZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHNfZWZmZWN0TmFtZSgiU291cmNlR3JhcGhpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1lOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQppbmRleCA0
ZjA4Y2EwNmQyNGU5ZGMzZmEwNDM0MThjM2NiZmMyODI3NmVlMWQxLi4yYjJhYzhhNGEwMjc4M2My
NTA5Y2JkZmExZDQwMmM1NDQxYmNjOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTUzLDEwICs1MywxMCBAQCBG
b250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldEN1c3RvbUZhbGxiYWNrRm9udChjb25zdCBV
SW50MzIgYywgY29uc3QgRm9udERlcwogewogICAgIEFTU0VSVChyZXF1aXJlc0N1c3RvbUZhbGxi
YWNrRm9udChjKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVs
dmV0aWNhRmFtaWx5KCJIZWx2ZXRpY2EgTmV1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdGltZXNOZXdS
b21hblBTTVRGYW1pbHkoIlRpbWVzTmV3Um9tYW5QU01UIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gaGVsdmV0aWNhRmFtaWx5KCJIZWx2ZXRpY2EgTmV1ZSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW5QU01URmFtaWx5KCJUaW1lc05ld1Jv
bWFuUFNNVCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAotICAgIEF0b21T
dHJpbmcqIGZhbWlseSA9IG51bGxwdHI7CisgICAgY29uc3QgQXRvbVN0cmluZyogZmFtaWx5ID0g
bnVsbHB0cjsKICAgICBzd2l0Y2ggKGMpIHsKICAgICBjYXNlIEFwcGxlTG9nbzoKICAgICAgICAg
ZmFtaWx5ID0gJmhlbHZldGljYUZhbWlseS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmgKaW5kZXggMTdjYjUwZTNhNTU1MTA1NWIzM2I1NmQzYTUxYTY2ODNiNzdm
YzAyMy4uMDk4OTk4MGU0NjU2OThkZWNmNjRlNGY0NzViNTQxMmJiODIwOGRiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFRFWE1BUF9ERUNMQVJFX1ZBUklBQkxFKEFjY2Vzc29y
LCBOYW1lLCBUeXBlKSBcCiAgICAgR0x1aW50IEFjY2Vzc29yIyNMb2NhdGlvbigpIHsgXAotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZShOYW1lLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7IFwKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKE5hbWUsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsgXAogICAgICAgICByZXR1cm4gZ2V0TG9jYXRpb24o
bmFtZS5nZXQoKSwgVHlwZSk7IFwKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggNjhkNDhlODc2NDk1
YTgyNjdlNzU4OTczZjFkZTVhYmMyZTE4MTVmOC4uNGE0MDk3ZWQ0ZmFkYjUzMDFlNzQ5MDBiNjIx
OTRmODg2ZDI1ZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM3Myw3ICszNzMsNyBAQCBSZWZQdHI8Rm9u
dD4gRm9udENhY2hlOjpmb250RnJvbURlc2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbgogCiBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tG
b250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1lOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFsbGJhY2tGb250
TmFtZTsKIAogICAgIGlmICghZmFsbGJhY2tGb250TmFtZS5nZXQoKS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiAqZm9udEZvckZhbWlseShmb250RGVzY3JpcHRpb24sIGZhbGxiYWNrRm9udE5h
bWUpOwpAQCAtMzg0LDcgKzM4NCw3IEBAIFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRG
YWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpCiAgICAgLy8g
U2VhcmNoIGFsbCB0eXBpY2FsIFdpbmRvd3MtaW5zdGFsbGVkIGZ1bGwgVW5pY29kZSBmb250cy4K
ICAgICAvLyBTb3J0ZWQgYnkgbW9zdCB0byBsZWFzdCBnbHlwaHMgYWNjb3JkaW5nIHRvIGh0dHA6
Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW5pY29kZV90eXBlZmFjZXMKICAgICAvLyBTdGFydCB3
aXRoIFRpbWVzIE5ldyBSb21hbiBhbHNvIHNpbmNlIGl0IGlzIHRoZSBkZWZhdWx0IGlmIHRoZSB1
c2VyIGRvZXNuJ3QgY2hhbmdlIHByZWZzLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnRzW10gPSB7CiAgICAgICAgIEF0
b21TdHJpbmcoIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwKICAgICAgICAgQXRvbVN0cmluZygiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksCiAgICAgICAgIEF0b21TdHJpbmcoIlRhaG9tYSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSwKQEAgLTY5NCw4ICs2OTQsOCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxh
dGZvcm1EYXRhKGNvbnN0IEZvbnREZQogCiBjb25zdCBBdG9tU3RyaW5nJiBGb250Q2FjaGU6OnBs
YXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHlOYW1lKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJU
aW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJpZigiTWlj
cm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1l
c05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtaWNyb3NvZnRTYW5zU2VyaWYoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChmYW1pbHlOYW1lLmxlbmd0
aCgpKSB7CiAgICAgLy8gT24gV2luZG93cywgd2UgZG9uJ3Qgc3VwcG9ydCBiaXRtYXAgZm9udHMs
IGJ1dCBsZWdhY3kgY29udGVudCBleHBlY3RzIHN1cHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNv
Y29hLm1tCmluZGV4IDg1YWExZTE0MTViMDBmNTExOWVkN2ExYjY0M2I5NmFmZDIwYjc1MDkuLmI4
YjA1N2I5MjkzY2UyYTI5OTAxZjFiOGEwM2I4NGFlZDcwYmQyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNw
b25zZUNvY29hLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIGlubGluZSBBdG9tU3RyaW5n
IGV4dHJhY3RIVFRQU3RhdHVzVGV4dChDRkhUVFBNZXNzYWdlUmVmIG1lc3NhZ2VSZWYpCiAgICAg
aWYgKGF1dG8gaHR0cFN0YXR1c0xpbmUgPSBhZG9wdENGKENGSFRUUE1lc3NhZ2VDb3B5UmVzcG9u
c2VTdGF0dXNMaW5lKG1lc3NhZ2VSZWYpKSkKICAgICAgICAgcmV0dXJuIGV4dHJhY3RSZWFzb25Q
aHJhc2VGcm9tSFRUUFN0YXR1c0xpbmUoaHR0cFN0YXR1c0xpbmUuZ2V0KCkpOwogCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGRlZmF1bHRTdGF0dXNUZXh0KCJPSyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRTdGF0dXNUZXh0KCJPSyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVmYXVsdFN0YXR1
c1RleHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlv
dXQuY3BwCmluZGV4IDI5ZWJlNTZhZjA5MTEyYjMxZTUzNjlmZTg5ZWE3ODk3NGJmNzdlMDAuLjQx
YmI1MmYwNmVmNDg2YjcxYTRjZTc2ZDgzMjBmMzdlOTE4ZTI5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcApAQCAtMjE1OCw3ICsyMTU4LDcg
QEAgdm9pZCBDb21wbGV4TGluZUxheW91dDo6Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdygpCiAg
ICAgLy8gRGV0ZXJtaW5lIHRoZSB3aWR0aCBvZiB0aGUgZWxsaXBzaXMgdXNpbmcgdGhlIGN1cnJl
bnQgZm9udC4KICAgICAvLyBGSVhNRTogQ1NTMyBzYXlzIHRoaXMgaXMgY29uZmlndXJhYmxlLCBh
bHNvIG5lZWQgdG8gdXNlIDB4MDAyRSAoRlVMTCBTVE9QKSBpZiBob3Jpem9udGFsIGVsbGlwc2lz
IGlzICJub3QgcmVuZGVyYWJsZSIKICAgICBjb25zdCBGb250Q2FzY2FkZSYgZm9udCA9IHN0eWxl
KCkuZm9udENhc2NhZGUoKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
ZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRh
bEVsbGlwc2lzLCAxKTsKICAgICBjb25zdCBGb250Q2FzY2FkZSYgZmlyc3RMaW5lRm9udCA9IG1f
Zmxvdy5maXJzdExpbmVTdHlsZSgpLmZvbnRDYXNjYWRlKCk7CiAgICAgZmxvYXQgZmlyc3RMaW5l
RWxsaXBzaXNXaWR0aCA9IGZpcnN0TGluZUZvbnQud2lkdGgobV9mbG93LmNvbnN0cnVjdFRleHRS
dW4oJmhvcml6b250YWxFbGxpcHNpcywgMSwgbV9mbG93LmZpcnN0TGluZVN0eWxlKCkpKTsKICAg
ICBmbG9hdCBlbGxpcHNpc1dpZHRoID0gKGZvbnQgPT0gZmlyc3RMaW5lRm9udCkgPyBmaXJzdExp
bmVFbGxpcHNpc1dpZHRoIDogZm9udC53aWR0aChtX2Zsb3cuY29uc3RydWN0VGV4dFJ1bigmaG9y
aXpvbnRhbEVsbGlwc2lzLCAxLCBzdHlsZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDgxNTBm
NTVmZGUyNmE2NDdhN2VkODAzYTNkYjc3MzM2YzRhNzA5OGIuLjk3MDNiZTQ0OWY2MjI5ZmJjMzYw
MGYwNTJlMDg0ZGE2OTE0NmUzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC05OTEsOCArOTkxLDgg
QEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKEZsZXhC
b3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgIGNvbnN0IFVDaGFyIGVsbGlwc2lzQW5kU3BhY2VbMl0gPSB7IGhvcml6b250YWxFbGxpcHNp
cywgJyAnIH07Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbGxp
cHNpc0FuZFNwYWNlU3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOwotICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywg
MSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0cihlbGxpcHNpc0FuZFNwYWNlLCAyKTsKKyAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbGxpcHNp
c1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUm
IGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9PSAxID8gZmlyc3RMaW5lU3R5bGUoKSA6IHN0
eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gbGluZVN0eWxlLmZvbnRD
YXNjYWRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCmluZGV4IDFkN2YwMzFjZmU1MWEyMjRhNWFmOGEwNmUyZGI4N2U4ZDQ5ZGVmMjcuLmJk
MGI5MGU1ZjkyYTQxOGJiMmVjNTBmZDg2ZmYzYTM3NzEyM2RkODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTU2Niw4ICsxNTY2LDgg
QEAgY29uc3QgQXRvbVN0cmluZyYgUmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZygpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBoeXBoZW5hdGlvblN0cmluZzsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBkZXBlbmQgb24gbG9jYWxlLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBoeXBoZW5NaW51c1N0cmluZygmaHlwaGVuTWludXMsIDEpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoeXBoZW5NaW51
c1N0cmluZygmaHlwaGVuTWludXMsIDEpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4sIDEpOwogICAgIHJl
dHVybiBmb250Q2FzY2FkZSgpLnByaW1hcnlGb250KCkuZ2x5cGhGb3JDaGFyYWN0ZXIoaHlwaGVu
KSA/IGh5cGhlblN0cmluZyA6IGh5cGhlbk1pbnVzU3RyaW5nOwogfQogCkBAIC0xNTc5LDI4ICsx
NTc5LDI4IEBAIGNvbnN0IEF0b21TdHJpbmcmIFJlbmRlclN0eWxlOjp0ZXh0RW1waGFzaXNNYXJr
U3RyaW5nKCkgY29uc3QKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkN1c3RvbToKICAgICAg
ICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKTsKICAgICBjYXNlIFRleHRFbXBoYXNp
c01hcms6OkRvdDogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
ZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gb3BlbkRvdFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOworICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERv
dFN0cmluZygmYnVsbGV0LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuRG90U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CiAg
ICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6Rmls
bGVkID8gZmlsbGVkRG90U3RyaW5nIDogb3BlbkRvdFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrOjpDaXJjbGU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOwotICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hp
dGVDaXJjbGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGZpbGxlZENpcmNsZVN0cmluZygmYmxhY2tDaXJjbGUsIDEpOworICAg
ICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9w
ZW5DaXJjbGVTdHJpbmcoJndoaXRlQ2lyY2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBo
YXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRDaXJjbGVTdHJp
bmcgOiBvcGVuQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6
OkRvdWJsZUNpcmNsZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nKCZmaXNoZXllLCAxKTsKLSAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxz
ZXllLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcoJmZpc2hleWUsIDEpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5E
b3VibGVDaXJjbGVTdHJpbmcoJmJ1bGxzZXllLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBo
YXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJj
bGVTdHJpbmcgOiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRF
bXBoYXNpc01hcms6OlRyaWFuZ2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBmaWxsZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUs
IDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3BlblRyaWFu
Z2xlU3RyaW5nKCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSk7CisgICAgICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkVHJpYW5nbGVT
dHJpbmcoJmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuVHJpYW5nbGVTdHJpbmco
JndoaXRlVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNp
c0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWRUcmlhbmdsZVN0cmlu
ZyA6IG9wZW5UcmlhbmdsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJr
OjpTZXNhbWU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZp
bGxlZFNlc2FtZVN0cmluZygmc2VzYW1lRG90LCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG9wZW5TZXNhbWVTdHJpbmcoJndoaXRlU2VzYW1lRG90LCAxKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmaWxsZWRTZXNhbWVTdHJpbmcoJnNlc2FtZURvdCwgMSk7CisgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlblNlc2FtZVN0cmluZygm
d2hpdGVTZXNhbWVEb3QsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09
IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFNlc2FtZVN0cmluZyA6IG9wZW5TZXNh
bWVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6QXV0bzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMjIxZWU2NWQ5Yjk4N2VmYTMyMmUz
NjljMTQzMGYxZTI4MGVhZjg2OS4uZmNjZjJiYTE3YjAxMTJlZDJiNWFkY2FlNzg3ZjhlYmU5YmFl
ZWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU0NSwyMCAr
NTQ1LDIwIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJrcyhSZW5k
ZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAKICAgICBpZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVk
c0dNYWlsT3ZlcmZsb3dTY3JvbGxRdWlyaygpKSB7CiAgICAgICAgIC8vIFRoaXMgdHVybnMgc2lk
ZWJhciBzY3JvbGxhYmxlIHdpdGhvdXQgbW91c2UgbW92ZSBldmVudC4KLSAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHJvbGVWYWx1ZSgibmF2aWdhdGlvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb2xlVmFsdWUoIm5hdmlnYXRpb24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIGlmIChzdHlsZS5vdmVy
Zmxvd1koKSA9PSBPdmVyZmxvdzo6SGlkZGVuICYmIG1fZWxlbWVudC0+YXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihyb2xlQXR0cikgPT0gcm9sZVZhbHVlKQogICAgICAgICAgICAgc3R5
bGUuc2V0T3ZlcmZsb3dZKE92ZXJmbG93OjpBdXRvKTsKICAgICB9CiAgICAgaWYgKG1fZG9jdW1l
bnQucXVpcmtzKCkubmVlZHNZb3VUdWJlT3ZlcmZsb3dTY3JvbGxRdWlyaygpKSB7CiAgICAgICAg
IC8vIFRoaXMgdHVybnMgc2lkZWJhciBzY3JvbGxhYmxlIHdpdGhvdXQgaG92ZXIuCi0gICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBpZFZhbHVlKCJndWlkZS1pbm5lci1j
b250ZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlkVmFsdWUoImd1
aWRlLWlubmVyLWNvbnRlbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgICAgIGlmIChzdHlsZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6SGlkZGVuICYmIG1fZWxl
bWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24oKSA9PSBpZFZhbHVlKQogICAgICAgICAgICAgc3R5
bGUuc2V0T3ZlcmZsb3dZKE92ZXJmbG93OjpBdXRvKTsKICAgICB9CiAgICAgaWYgKG1fZG9jdW1l
bnQucXVpcmtzKCkubmVlZHNGdWxsc2NyZWVuRGlzcGxheU5vbmVRdWlyaygpKSB7CiAgICAgICAg
IGlmIChpczxIVE1MRGl2RWxlbWVudD4obV9lbGVtZW50KSAmJiBzdHlsZS5kaXNwbGF5KCkgPT0g
RGlzcGxheVR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MoImluc3RyZWFtLW5h
dGl2ZS12aWRlby0tbW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZpZGVv
RWxlbWVudElEKCJ2anNfdmlkZW9fM19odG1sNV9hcGkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGluc3RyZWFtTmF0aXZlVmlkZW9EaXZDbGFzcygiaW5zdHJlYW0t
bmF0aXZlLXZpZGVvLS1tb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHZpZGVvRWxlbWVudElEKCJ2anNfdmlkZW9fM19odG1sNV9hcGkiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICAgICAgICAgIGF1dG8mIGRpdiA9IGRvd25j
YXN0PEhUTUxEaXZFbGVtZW50PigqbV9lbGVtZW50KTsKICAgICAgICAgICAgIGlmIChkaXYuaGFz
Q2xhc3MoKSAmJiBkaXYuY2xhc3NOYW1lcygpLmNvbnRhaW5zKGluc3RyZWFtTmF0aXZlVmlkZW9E
aXZDbGFzcykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDVkMDUyMTE5YzY0NGNiZWYyNDAyYTJjMzk2ZjY3Nzc2OTYxYzg5MTguLjI1
NDU4YzRlYTdlZDI5MjFhNDhkMWJjN2ZjZTFjYTUwOWI5MzU1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtMTA5LDggKzEwOSw4IEBA
IHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgCiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6
Um90YXRlTW9kZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cm90YXRlTW9kZSgpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9WYWwoImF1
dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9SZXZlcnNlKCJhdXRvLXJldmVyc2UiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvVmFsKCJhdXRvIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1JldmVyc2UoImF1dG8tcmV2ZXJzZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiByb3Rh
dGUgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAgIGlmIChyb3RhdGUg
PT0gYXV0b1ZhbCkKICAgICAgICAgcmV0dXJuIFJvdGF0ZUF1dG87CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKaW5kZXggMWI0NjFiNDczMTg2ODA2NDIwYzhhMGVk
N2EzN2MxNjg5NjZkM2IzMi4uNDVlNDVkNWJjZTRmM2E0MmFjZjY4NGI2MmRkYmVhMGFiMjE3ZTZj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcApAQCAtMjc2
LDEwICsyNzYsMTAgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb25N
b2RlKCkKIAogdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9t
U3RyaW5nJiBjYWxjTW9kZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZGlzY3JldGUoImRpc2NyZXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsaW5l
YXIoImxpbmVhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGFjZWQoInBhY2VkIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzcGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGRpc2NyZXRlKCJkaXNjcmV0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cGFjZWQoInBhY2VkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3BsaW5lKCJz
cGxpbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKGNhbGNN
b2RlID09IGRpc2NyZXRlKQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZTo6RGlzY3JldGUp
OwogICAgIGVsc2UgaWYgKGNhbGNNb2RlID09IGxpbmVhcikKQEAgLTI5NCw4ICsyOTQsOCBAQCB2
b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21TdHJpbmcmIGNh
bGNNb2RlKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29u
c3QgQXRvbVN0cmluZyYgYXR0cmlidXRlVHlwZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3NzKCJDU1MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHht
bCgiWE1MIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3NzKCJDU1MiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWwoIlhNTCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoYXR0cmlidXRlVHlwZSA9PSBjc3MpCiAgICAgICAg
IG1fYXR0cmlidXRlVHlwZSA9IEF0dHJpYnV0ZVR5cGU6OkNTUzsKICAgICBlbHNlIGlmIChhdHRy
aWJ1dGVUeXBlID09IHhtbCkKQEAgLTMyMSwxNCArMzIxLDE0IEBAIFN0cmluZyBTVkdBbmltYXRp
b25FbGVtZW50Ojpmcm9tVmFsdWUoKSBjb25zdAogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmlzQWRkaXRpdmUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1
bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1l
czo6YWRkaXRpdmVBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gc3VtIHx8IGFuaW1hdGlvbk1v
ZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpCeTsKIH0KIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50
Ojppc0FjY3VtdWxhdGVkKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzdW0oInN1bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZH
TmFtZXM6OmFjY3VtdWxhdGVBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gc3VtICYmIGFuaW1h
dGlvbk1vZGUoKSAhPSBBbmltYXRpb25Nb2RlOjpUbzsKIH0KQEAgLTYwNiw3ICs2MDYsNyBAQCB2
b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmNvbXB1dGVDU1NQcm9wZXJ0eVZhbHVlKFNWR0VsZW1l
bnQqIGVsZW1lbnQsIENTU1Byb3BlcgogCiBzdGF0aWMgYm9vbCBpbmhlcml0c0Zyb21Qcm9wZXJ0
eShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAKICAgICBpZiAodmFsdWUuaXNFbXB0eSgpIHx8IHZhbHVlICE9IGlu
aGVyaXQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHAKaW5kZXggNmNlNzVlZTc1MzMyNGI4ZGU2MzFhMzA2NDNmOWJkOGVmODFkODY5ZC4u
MjViODJhMjlhNjc0MDE2YTc2MmVkZDU5Y2I1ODhlYTY5YWQwZTNhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBTVkdTdHlsZUVs
ZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAKIGNvbnN0IEF0b21TdHJpbmcm
IFNWR1N0eWxlRWxlbWVudDo6dHlwZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3MiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvY3NzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIG4gPSBnZXRB
dHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRl
ZmF1bHRWYWx1ZS5nZXQoKSA6IG47CiB9CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHU3R5bGVF
bGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUpCiAKIGNvbnN0IEF0b21TdHJp
bmcmIFNWR1N0eWxlRWxlbWVudDo6bWVkaWEoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0VmFsdWUoImFsbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIG4gPSBhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBu
LmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggNDQ5YjE0Y2Q1MDFkZjI1
NTg3NGVjY2ZjNTg0OWM4OTRmMjgxMTZmZC4uMDQzMjEyOGM5ODEyZTk1YjYwZWM3MTdhNmU4Zjc5
NTllOWZjNDJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdT
TUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlM
RWxlbWVudC5jcHAKQEAgLTM0MCw3ICszNDAsNyBAQCBTTUlMVGltZSBTVkdTTUlMRWxlbWVudDo6
cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAgICBTdHJpbmcgcGFy
c2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0ZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAocGFyc2UgPT0gaW5kZWZp
bml0ZVZhbHVlKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5pdGUoKTsKIApAQCAt
NjUyLDggKzY1Miw4IEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6OmlzRnJvemVuKCkgY29uc3QKICAg
ICAKIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29u
c3QKIHsgICAgCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5l
dmVyKCJuZXZlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2hlbk5vdEFjdGl2ZSgid2hlbk5v
dEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5ldmVyKCJuZXZlciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdoZW5Ob3RBY3RpdmUoIndoZW5Ob3RB
Y3RpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVz
OjpyZXN0YXJ0QXR0cik7CiAgICAgaWYgKHZhbHVlID09IG5ldmVyKQogICAgICAgICByZXR1cm4g
UmVzdGFydE5ldmVyOwpAQCAtNjY0LDcgKzY2NCw3IEBAIFNWR1NNSUxFbGVtZW50OjpSZXN0YXJ0
IFNWR1NNSUxFbGVtZW50OjpyZXN0YXJ0KCkgY29uc3QKICAgICAKIFNWR1NNSUxFbGVtZW50OjpG
aWxsTW9kZSBTVkdTTUlMRWxlbWVudDo6ZmlsbCgpIGNvbnN0CiB7ICAgCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZyZWV6ZSgiZnJlZXplIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnJlZXplKCJmcmVlemUiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjpmaWxsQXR0cik7CiAgICAgcmV0dXJu
IHZhbHVlID09IGZyZWV6ZSA/IEZpbGxGcmVlemUgOiBGaWxsUmVtb3ZlOwogfQpAQCAtNjk3LDcg
KzY5Nyw3IEBAIFNNSUxUaW1lIFNWR1NNSUxFbGVtZW50OjpyZXBlYXRDb3VudCgpIGNvbnN0CiAg
ICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OnVucmVzb2x2
ZWQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmRl
ZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgaWYgKHZhbHVlID09IGluZGVmaW5pdGVWYWx1ZSkKICAgICAgICAgcmV0
dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7CiAgICAgYm9vbCBvazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5j
dGlvbkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9u
QWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKaW5kZXggNzJiMjViNWI4Y2MyZmMxZTcwMWM3
OTE5ZTMzOTI3NjdjMjMxNDA1ZC4uNDc2ZmIzNGIzYWNhNGIyMWZiN2QwZWRjZWMxZGYwYTkxMjhk
OTg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKQEAg
LTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb2xvciBTVkdBbmltYXRpb25D
b2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGN1cnJlbnRDb2xvcigiY3VycmVudENvbG9yIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gY3VycmVudENvbG9yKCJjdXJyZW50Q29sb3IiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoc3RyaW5nICE9IGN1cnJlbnRDb2xv
ci5nZXQoKSkKICAgICAgICAgcmV0dXJuIFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yPjo6ZnJvbVN0
cmluZyhzdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlBbmltYXRvci5oCmluZGV4IDIxZTg4M2ZlMjQ0ODM4ZmYzNzQ2ODY5YmYxMWEzZGY0
NmZmNGJlMmEuLmQ4ZThlYzE3NjNjOTIwMjlhMTk2ODliZTU3ZTY1MWViOGFiNTBlODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9y
LmgKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3MgU1ZHUHJvcGVydHlBbmltYXRvciA6IHB1YmxpYyBT
VkdBdHRyaWJ1dGVBbmltYXRvciB7CiAKICAgICBTdHJpbmcgYWRqdXN0Rm9ySW5oZXJpdGFuY2Uo
U1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhl
cml0KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVy
aXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAg
IHJldHVybiB2YWx1ZSA9PSBpbmhlcml0ID8gY29tcHV0ZUluaGVyaXRlZENTU1Byb3BlcnR5VmFs
dWUodGFyZ2V0RWxlbWVudCkgOiB2YWx1ZTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398168</attachid>
            <date>2020-05-01 01:42:15 -0700</date>
            <delta_ts>2020-05-01 01:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200501014214.patch</filename>
            <type>text/plain</type>
            <size>145535</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1YWM5YzdiYmVlNjk1YTM2YWNiOTAw
NGExOTEzZGMwMDU1OTQ1MzguLjNjOTljMTIxMjk5ODIzNTA1Mjc2ZmM1ZjI5ZWU2ODAxYmU2Njhk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTMwICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBUcmlTdGF0ZSBzaG91bGQgYmUgYW4g
ZW51bSBjbGFzcyBhbmQgdXNlICJJbmRldGVybWluYXRlIiBpbnN0ZWFkIG9mICJNaXhlZCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhOGFjZDJjZDUzMjEyM2M5ZTQ0M2M1MTVlZTY0NTFiMmYwODQ1MjJkLi45ODJl
Yzk4ZTExMzEwYzJhOGE2ZmVlM2I1OTE3Nzc0MTU0ZDE1MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjYyIEBACisyMDIwLTA1LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAvIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlvbnMgYWRkaXRp
b25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjptYW51
YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2luZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGludCBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjphcnJheWJ1ZmZl
cktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojps
aXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFudFByb3BlcnR5
TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQ
cm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAgICAgICAgKiBk
b20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRD
U1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1dG9jYXBpdGFs
aXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFsaXplVHlwZSk6
CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0NvbnRh
Y3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0ZUZyb21IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmFsbGJh
Y2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQpOgor
ICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9y
bUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmll
d0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjp0cnVl
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldEF1
dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6
OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNv
bnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxs
RWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJv
bFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50RWRp
dGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5h
bWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0ZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6
Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRlY2ltYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6
YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2JveCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFt
ZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpkYXRldGlt
ZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
TmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpyYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjp0ZWxl
cGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6d2Vl
ayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0
ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAg
ICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBl
KToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bkb3duSW5kaWNh
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFp
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0Zp
bGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9n
cmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzQmFy
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFsdWVFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZlQ3Vz
dG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpUZXh0Q29udHJv
bFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6
OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpjb21t
ZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNjcmlwdGlvbnNL
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9yY2VkS2V5d29y
ZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xh
c3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJT
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja1Jl
Z2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFt
ZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0ZvcndhcmRDYWNoZSBj
b25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmlt
YXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlwZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3RlbUZvbnRQYXJh
bWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpl
eHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21wbGV4TGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6Y2hlY2tMaW5l
c0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0
cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJrcyBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25zdCk6CisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50Ojpy
ZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9u
QWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAyMC0wNS0wMSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046
IE1vdGlvbk1hcmsgMS4xIHJlZ3Jlc3NlZCBkdWUgdG8gcjI2MDAxNgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDZl
OTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UuLmY3NmNhNDNjMmIzZWYzYjA0
NzJiODJjNTMxOGU1YWM5OGNiNDU1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zvcndh
cmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTU0LDEyICs1NCwxNCBAQCBz
dHJ1Y3QgVmVjdG9yTWFsbG9jOwogdXNpbmcgVmVjdG9yTWFsbG9jID0gRmFzdE1hbGxvYzsKICNl
bmRpZgogCitzdHJ1Y3QgQW55VGhyZWFkc0FjY2Vzc1RyYWl0czsKK3N0cnVjdCBNYWluVGhyZWFk
QWNjZXNzVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIENvbXBsZXRpb25IYW5kbGVy
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJQdHJUcmFpdHM7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgRHVtYlZhbHVlVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNs
YXNzIEZ1bmN0aW9uOwotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIExhenlOZXZlckRlc3Ryb3ll
ZDsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBOZXZlckRlc3Ryb3llZDsKK3RlbXBsYXRlPHR5
cGVuYW1lLCB0eXBlbmFtZSA9IEFueVRocmVhZHNBY2Nlc3NUcmFpdHM+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDsKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IEFueVRocmVhZHNBY2Nl
c3NUcmFpdHM+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IE9wdGlvblNldDsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBPcHRpb25hbDsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIFBhY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL05l
dmVyRGVzdHJveWVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCmluZGV4IGI5
YzkxNWE1MmI0YmUxOTJmYmRhMzAwZDIwYjkyZjY2MTZmYzQ3NDMuLmQ4MjQyZmU3ZTdjYTM5MGRk
ZDQwMjk3MjI1NGY1YmQxNDY0ODFmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL05ldmVy
RGVzdHJveWVkLmgKKysrIGIvU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAj
aW5jbHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiAvLyBOZXZlckRlc3Ryb3ll
ZCBpcyBhIHNtYXJ0LXBvaW50ZXItbGlrZSBjbGFzcyB0aGF0IGVuc3VyZXMgdGhhdCB0aGUgZGVz
dHJ1Y3RvcgpAQCAtNDIsMTggKzQzLDMzIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBOZXZlckRlc3Ryb3llZCB7CitzdHJ1Y3QgQW55VGhyZWFkc0Fj
Y2Vzc1RyYWl0cyB7CisgICAgc3RhdGljIHZvaWQgYXNzZXJ0QWNjZXNzKCkKKyAgICB7CisgICAg
fQorfTsKKworc3RydWN0IE1haW5UaHJlYWRBY2Nlc3NUcmFpdHMgeworICAgIHN0YXRpYyB2b2lk
IGFzc2VydEFjY2VzcygpCisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cz4g
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldmVyRGVz
dHJveWVkKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IE5ldmVyRGVzdHJveWVkKEFyZ3MmJi4uLiBhcmdz
KQogICAgIHsKKyAgICAgICAgQWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsKICAgICAgICAg
TWF5YmVSZWxheDxUPihuZXcgKHN0b3JhZ2VQb2ludGVyKCkpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKSk7CiAgICAgfQogCiAgICAgTmV2ZXJEZXN0cm95ZWQoTmV2ZXJEZXN0cm95ZWQm
JiBvdGhlcikKICAgICB7CisgICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAg
ICAgICAgIE1heWJlUmVsYXg8VD4obmV3IChzdG9yYWdlUG9pbnRlcigpKSBUKFdURk1vdmUoKm90
aGVyLnN0b3JhZ2VQb2ludGVyKCkpKSk7CiAgICAgfQogCkBAIC03MCw3ICs4NiwxMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBOZXZlckRlc3Ryb3llZCB7CiBwcml2YXRlOgogICAgIHVz
aW5nIFBvaW50ZXJUeXBlID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VD46OnR5cGUqOwog
Ci0gICAgUG9pbnRlclR5cGUgc3RvcmFnZVBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PFBvaW50ZXJUeXBlPihyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdlKSk7
IH0KKyAgICBQb2ludGVyVHlwZSBzdG9yYWdlUG9pbnRlcigpIGNvbnN0CisgICAgeworICAgICAg
ICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOworICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOwor
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXgg
PSBzdGQ6OmlzX2Jhc2Vfb2Y8UmVmQ291bnRlZEJhc2UsIFB0clR5cGU+Ojp2YWx1ZT4gc3RydWN0
IE1heWJlUmVsYXggewogICAgICAgICBleHBsaWNpdCBNYXliZVJlbGF4KFB0clR5cGUqKSB7IH0K
QEAgLTg0LDEyICsxMDQsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0
cm95ZWQgewogICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3Rk
OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlPjo6dHlwZSBtX3N0b3JhZ2U7CiB9OwogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBOZXZlckRlc3Ryb3llZDxUPiBtYWtlTmV2ZXJEZXN0cm95ZWQoVCYmKTsK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cyA9IEFueVRocmVhZHNB
Y2Nlc3NUcmFpdHM+IE5ldmVyRGVzdHJveWVkPFQsIEFjY2Vzc1RyYWl0cz4gbWFrZU5ldmVyRGVz
dHJveWVkKFQmJik7CiAKIC8vIEZJWE1FOiBJdCdzIG1lc3N5IHRvIGhhdmUgdG8gcmVwZWF0IHRo
ZSB3aG9sZSBjbGFzcyBqdXN0IHRvIG1ha2UgdGhpcyAibGF6eSIgdmVyc2lvbi4KIC8vIFNob3Vs
ZCByZXZpc2l0IGNsaWVudHMgdG8gc2VlIGlmIHdlIHJlYWxseSBuZWVkIHRoaXMsIGFuZCBwZXJo
YXBzIHVzZSB0ZW1wbGF0ZXMgdG8KIC8vIHNoYXJlIG1vcmUgb2YgdGhlIGNvZGUgd2l0aCB0aGUg
bWFpbiBOZXZlckRlc3Ryb3llZCBhYm92ZS4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExh
enlOZXZlckRlc3Ryb3llZCB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NU
cmFpdHM+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTGF6eU5ldmVyRGVzdHJveWVkKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsK
IHB1YmxpYzoKQEAgLTk5LDYgKzExOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExh
enlOZXZlckRlc3Ryb3llZCB7CiAgICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFyZ3MpCiAg
ICAgewogICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisgICAgICAgIEFjY2Vzc1Ry
YWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgICAgICBtX2lz
Q29uc3RydWN0ZWQgPSB0cnVlOwpAQCAtMTI3LDYgKzE0OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgUG9pbnRlclR5cGUgc3RvcmFnZVBv
aW50ZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1faXNDb25zdHJ1Y3RlZCk7Cisg
ICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIHJldHVybiBjb25z
dF9jYXN0PFBvaW50ZXJUeXBlPihyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdl
KSk7CiAgICAgfQogCkBAIC0xNDgsMTMgKzE3MCwyMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9zdG9y
YWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlPjo6dHlwZSBtX3N0b3Jh
Z2U7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgTmV2ZXJEZXN0cm95ZWQ8VD4g
bWFrZU5ldmVyRGVzdHJveWVkKFQmJiBhcmd1bWVudCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIEFjY2Vzc1RyYWl0cz4gaW5saW5lIE5ldmVyRGVzdHJveWVkPFQsIEFjY2Vzc1RyYWl0
cz4gbWFrZU5ldmVyRGVzdHJveWVkKFQmJiBhcmd1bWVudCkKIHsKICAgICByZXR1cm4gV1RGTW92
ZShhcmd1bWVudCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2luZyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQgPSBOZXZlckRlc3Ryb3llZDxULCBNYWluVGhyZWFkQWNjZXNzVHJhaXRz
PjsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0
cm95ZWQgPSBMYXp5TmV2ZXJEZXN0cm95ZWQ8VCwgTWFpblRocmVhZEFjY2Vzc1RyYWl0cz47CisK
IH0gLy8gbmFtZXNwYWNlIFdURjsKIAogdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1
c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjptYWtlTmV2ZXJEZXN0cm95ZWQ7
Cit1c2luZyBXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6TWFpblRo
cmVhZExhenlOZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6QW55VGhyZWFkc0FjY2Vzc1RyYWl0
czsKK3VzaW5nIFdURjo6TWFpblRocmVhZEFjY2Vzc1RyYWl0czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21T
dHJpbmcuY3BwCmluZGV4IDcwNjhmNWZmYTQ4MmRiMDcwNTg1MWVjZjRkMmZkNTNhM2ZmNzRiZDEu
LjMzOWJhZTNiYWI1OTIzNjM4YzExMmQxYzQzMzA1YjY1ZTc0NzNjYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9BdG9tU3RyaW5nLmNwcApAQCAtMTMzLDExICsxMzMsMTEgQEAgdm9pZCBBdG9tU3RyaW5nOjpz
aG93KCkgY29uc3QKIAogI2VuZGlmCiAKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gbnVsbEF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklWQVRFIExhenlO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklW
QVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7Ci1XVEZfRVhQ
T1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbEF0b21EYXRhOwot
V1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4bWxuc0F0
b21EYXRhOworV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBudWxsQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUg
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURh
dGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFk
TGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CiAKIHZv
aWQgQXRvbVN0cmluZzo6aW5pdCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0F0b21TdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDg4
YjRlYmFjMzI3MWJkM2ViM2MxNDEzZDVmNDgwYmEzZWJjYzIyZDQuLjdlYWE5Zjc1OTQ3MzhjODU4
OGQ2MGYwMWFiMzJlMjYwY2JlM2M5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QXRvbVN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC0y
ODgsMTMgKzI4OCwxNSBAQCBpbmxpbmUgQXRvbVN0cmluZzo6QXRvbVN0cmluZyhOU1N0cmluZyAq
c3RyaW5nKQogCiAjZW5kaWYKIAorLy8gbnVsbEF0b20gYW5kIGVtcHR5QXRvbSBhcmUgc3BlY2lh
bCBBdG9tU3RyaW5nLiBUaGV5IGNhbiBiZSB1c2VkIGZyb20gYW55IHRocmVhZHMgc2luY2UgdGhl
aXIgU3RyaW5nSW1wbHMgYXJlIG5vdCBhY3R1YWxseSByZWdpc3RlcmVkIGludG8gQXRvbVN0cmlu
Z1RhYmxlLgorZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBudWxsQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CisKIC8vIERlZmluZSBl
eHRlcm5hbCBnbG9iYWwgdmFyaWFibGVzIGZvciB0aGUgY29tbW9ubHkgdXNlZCBhdG9tIHN0cmlu
Z3MuCiAvLyBUaGVzZSBhcmUgb25seSB1c2FibGUgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi1leHRl
cm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBudWxs
QXRvbURhdGE7Ci1leHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3RhckF0b21EYXRhOwotZXh0ZXJuIFdURl9FWFBP
UlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4geG1sQXRvbURhdGE7Ci1l
eHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4
bWxuc0F0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN0YXJBdG9tRGF0YTsKK2V4dGVybiBXVEZf
RVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB4bWxBdG9tRGF0YTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExh
enlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWxuc0F0b21EYXRhOwogCiBpbmxp
bmUgY29uc3QgQXRvbVN0cmluZyYgbnVsbEF0b20oKSB7IHJldHVybiBudWxsQXRvbURhdGEuZ2V0
KCk7IH0KIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBlbXB0eUF0b20oKSB7IHJldHVybiBlbXB0
eUF0b21EYXRhLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fp
cnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlF
dmVudC5jcHAKaW5kZXggNWM4NGM4NWVjNzcxZGQ1ODc3OWI0Mzk2NTg2NTgzY2JiOWU1YzBiMS4u
YjliNjZhMmI1Yjk1YTQ2MDE1MDU4YTU2NTViNjhjMjRiMDc3MjUzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmls
aXR5RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQ
bGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcApAQCAtMzcsOCArMzcsOCBAQCBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlF
dmVudCk7CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmdGb3JQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG5vdEF2YWlsYWJsZVN0cmluZygibm90LWF2YWlsYWJsZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGF2YWlsYWJsZVN0cmluZygiYXZhaWxhYmxlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm90QXZhaWxhYmxlU3RyaW5nKCJub3QtYXZhaWxhYmxlIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIGF2YWlsYWJs
ZSA/IGF2YWlsYWJsZVN0cmluZyA6IG5vdEF2YWlsYWJsZVN0cmluZzsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0
cnkuY3BwCmluZGV4IDdjNTQ2ZGM2MDBiMTJjNTc2ZGQwODI3OWFiN2M2NjdmYTU1ZmI5MTMuLjNi
MjVkMDZiMTIzYTFhNTFhMGEyYWNmYjRmNjU2ZjhkOTRhZGIzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5
LmNwcApAQCAtMjU4LDE5ICsyNTgsMTkgQEAgdm9pZCBJbml0RGF0YVJlZ2lzdHJ5OjpyZWdpc3Rl
ckluaXREYXRhVHlwZShjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIEluaXQKIAogY29u
c3QgQXRvbVN0cmluZyYgSW5pdERhdGFSZWdpc3RyeTo6Y2VuY05hbWUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoImNlbmMiKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJjZW5jIikgfTsKICAg
ICByZXR1cm4gc2luZjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgSW5pdERhdGFSZWdpc3RyeTo6
a2V5aWRzTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNp
bmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgia2V5aWRzIikgfTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgia2V5aWRzIikgfTsKICAgICByZXR1cm4gc2luZjsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgSW5pdERhdGFSZWdpc3RyeTo6d2VibU5hbWUoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
IndlYm0iKSB9OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJ3ZWJtIikgfTsKICAgICBy
ZXR1cm4gc2luZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggNjBlYTZlN2QxMDU2M2Vl
MTc5NDBmYzU5MzNlODMzZTlhMGNmYWQxYS4uZjk4MWVjY2MyOTZkNzhjODcwZDc2ODhhMDZhMGNm
ZjgyZjc3NjFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC00MywyNSArNDMsMjUgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9tU3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6
YXV0b21hdGljS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGF1dG9tYXRpYygiYXV0b21hdGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGF1dG9tYXRpYzsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yY2VkT25seSgiZm9yY2VkLW9ubHkiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JjZWRPbmx5KCJmb3JjZWQtb25seSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZm9yY2VkT25s
eTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFsd2F5c09uS2V5d29yZCgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsd2F5c09uKCJhbHdh
eXMtb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHdheXNPbigiYWx3YXlz
LW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhbHdh
eXNPbjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIG1hbnVhbEtleXdvcmQoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHdheXNPbigibWFu
dWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx3YXlzT24oIm1hbnVhbCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYWx3YXlzT247
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IGQwYjJjYjlmZDBhYTFiZDFmMjlhY2VkYzViNjA5Mzk3
NzRhMTFjYjAuLjA4NWU0ZmQ2ZmI4MzFlODQyNTVhODJhMDJlYThmMTcwNDJmOWZmNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmNwcApAQCAtMTA5LDggKzEwOSw4IEBAIE1lZGlhU3RyZWFtVHJhY2s6On5NZWRpYVN0
cmVhbVRyYWNrKCkKIAogY29uc3QgQXRvbVN0cmluZyYgTWVkaWFTdHJlYW1UcmFjazo6a2luZCgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGF1ZGlvS2lu
ZCgiYXVkaW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlvIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gdmlkZW9LaW5kKCJ2aWRlbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAogICAgIGlmIChtX3ByaXZhdGUtPnR5cGUoKSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbykKICAgICAgICAgcmV0dXJuIGF1ZGlvS2luZDsKQEAgLTEy
OSwxMSArMTI5LDExIEBAIGNvbnN0IFN0cmluZyYgTWVkaWFTdHJlYW1UcmFjazo6bGFiZWwoKSBj
b25zdAogCiBjb25zdCBBdG9tU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGludCgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNw
ZWVjaEhpbnQoInNwZWVjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbXVzaWNIaW50KCJtdXNp
YyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGV0YWlsSGludCgiZGV0YWlsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB0ZXh0SGludCgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW90
aW9uSGludCgibW90aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3BlZWNo
SGludCgic3BlZWNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbXVzaWNIaW50
KCJtdXNpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRldGFpbEhpbnQoImRl
dGFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRIaW50KCJ0ZXh0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW90aW9uSGludCgibW90aW9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChtX3ByaXZhdGUt
PmNvbnRlbnRIaW50KCkpIHsKICAgICBjYXNlIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpIaW50
VmFsdWU6OkVtcHR5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRleCA2YTBkZjA0ZjUxZmJiOThmOWUyODI5OTIwYmM1
ZWYwMTNiYWU5Y2FkLi4wYmUzMTJhZjBlNmNhYmNmN2YwMTRkYzE5NTU3YWUxOTFiNzRiMjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFD
aGFubmVsLmNwcApAQCAtNDMsMTMgKzQzLDEzIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChSVENEYXRhQ2hhbm5lbCk7CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBibG9iS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGJsb2IoImJsb2Ii
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBibG9iKCJibG9iIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBibG9iOwogfQogCiBzdGF0aWMg
Y29uc3QgQXRvbVN0cmluZyYgYXJyYXlidWZmZXJLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gYXJyYXlidWZmZXIoImFycmF5YnVmZmVyIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXJyYXlidWZmZXIoImFycmF5YnVmZmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhcnJheWJ1ZmZlcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMDJjNzU3MDBhODViM2M3MjU2Njk3N2JhMmRi
YzFlM2FmODI5MTRiNS4uMjYyYjI5YzljNWJmNTdjYmU2YTdiMDAxMTc2YjFlY2Q2OWI1MjkzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zNDEwLDcgKzM0MTAsNyBAQCBjb25zdCBTdHJpbmcg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblN0YXR1cygpIGNvbnN0CiAKIGNv
bnN0IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQo
KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBk
ZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50KCJhZGRpdGlvbnMgdGV4dCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHRMaXZlUmVnaW9uUmVsZXZhbnQoImFkZGl0aW9ucyB0
ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21T
dHJpbmcmIHJlbGV2YW50ID0gZ2V0QXR0cmlidXRlKGFyaWFfcmVsZXZhbnRBdHRyKTsKIAogICAg
IC8vIERlZmF1bHQgYXJpYS1yZWxldmFudCA9ICJhZGRpdGlvbnMgdGV4dCIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQcm9wZXJ0eU1hcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29uc3RhbnRQcm9wZXJ0eU1hcC5jcHAKaW5kZXggZmQxNDJmN2RlYWIwNzQ4ZTk2
YTE5YzViMGRhZWQ5MDYyNzBkMzBiMi4uYmU1YWQ0ODNlMGMxMzk3YjVmMjg5Y2E3ZGMzMmEyNmU1
OWQ2Zjg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlN
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcApA
QCAtNTAsMTUgKzUwLDE1IEBAIGNvbnN0IENvbnN0YW50UHJvcGVydHlNYXA6OlZhbHVlcyYgQ29u
c3RhbnRQcm9wZXJ0eU1hcDo6dmFsdWVzKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgQ29u
c3RhbnRQcm9wZXJ0eU1hcDo6bmFtZUZvclByb3BlcnR5KENvbnN0YW50UHJvcGVydHkgcHJvcGVy
dHkpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNhZmVB
cmVhSW5zZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBz
YWZlQXJlYUluc2V0UmlnaHROYW1lKCJzYWZlLWFyZWEtaW5zZXQtcmlnaHQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHNhZmVBcmVhSW5zZXRCb3R0b21OYW1lKCJzYWZlLWFyZWEtaW5zZXQtYm90dG9tIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0TGVmdE5hbWUoInNhZmUtYXJlYS1pbnNldC1s
ZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRUb3BOYW1lKCJmdWxsc2NyZWVu
LWluc2V0LXRvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0TGVmdE5hbWUoImZ1
bGxzY3JlZW4taW5zZXQtbGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0Qm90
dG9tTmFtZSgiZnVsbHNjcmVlbi1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxz
Y3JlZW5JbnNldFJpZ2h0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1yaWdodCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gZnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb25OYW1lKCJmdWxsc2NyZWVuLWF1dG8taGlk
ZS1kdXJhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNhZmVBcmVhSW5z
ZXRUb3BOYW1lKCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc2FmZUFyZWFJbnNldFJpZ2h0TmFtZSgic2FmZS1hcmVhLWluc2V0LXJpZ2h0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldEJvdHRvbU5hbWUo
InNhZmUtYXJlYS1pbnNldC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzYWZlQXJlYUluc2V0TGVmdE5hbWUoInNhZmUtYXJlYS1pbnNldC1sZWZ0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0VG9wTmFtZSgiZnVsbHNjcmVl
bi1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVu
SW5zZXRMZWZ0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gZnVsbHNjcmVlbkluc2V0Qm90dG9tTmFtZSgiZnVsbHNjcmVlbi1pbnNl
dC1ib3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5z
ZXRSaWdodE5hbWUoImZ1bGxzY3JlZW4taW5zZXQtcmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbk5hbWUoImZ1bGxzY3JlZW4t
YXV0by1oaWRlLWR1cmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewogICAgIGNhc2UgQ29uc3RhbnRQcm9wZXJ0eTo6U2Fm
ZUFyZWFJbnNldFRvcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE4NDRiZjI5YmJmN2M1
YzAxMGFjY2M5OWI2OWQxN2JlMjg1M2JmOWEuLmU5Yzk0ZmY2NDgwMTk2NTc3NzEyMDRiNWM3MzYz
MzFhOGJlNmUyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTI1OSw3ICsxMjU5LDcg
QEAgQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIERvY3VtZW50Ojp2YWxpZGF0ZUN1
c3RvbUVsZW1lbnROYW1lKGNvbnN0IEF0b20KICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIGNvbnN0
IGF1dG8mIGFubm90YXRpb25YbWxMb2NhbE5hbWUgPSBNYXRoTUxOYW1lczo6YW5ub3RhdGlvbl94
bWxUYWctPmxvY2FsTmFtZSgpOwogI2Vsc2UKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gYW5ub3RhdGlvblhtbExvY2FsTmFtZSgiYW5ub3RhdGlvbi14bWwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lKCJh
bm5vdGF0aW9uLXhtbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICNlbmRp
ZgogCiAgICAgaWYgKGxvY2FsTmFtZSA9PSBTVkdOYW1lczo6Y29sb3JfcHJvZmlsZVRhZy0+bG9j
YWxOYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0
T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAK
aW5kZXggZmIyOTU5MGRmMzBlNzQ2NGZmOTc4YWM1OTU0YWU0ZDg4YmJmZmZmYy4uYmVkOTdlMTBj
NmE2MjU1YjcyNmQ1ZTI2YzAxOTJmZWFhOWU3ODRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKQEAgLTE0OSw3ICsxNDksNyBAQCBpbmxpbmUgYm9v
bCBpc1ZhbGlkQ1NTQ29udGVudFR5cGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbVN0cmlu
ZyYgdHlwZSkKICAgICAvLyBGSVhNRTogU2hvdWxkIE1JTUUgdHlwZXMgcmVhbGx5IGJlIGNhc2Ug
c2Vuc2l0aXZlIGluIFhNTCBkb2N1bWVudHM/IERvZXNuJ3Qgc2VlbSBsaWtlIHRoZXkgc2hvdWxk
LAogICAgIC8vIGV2ZW4gdGhvdWdoIG90aGVyIHRoaW5ncyBhcmUgY2FzZSBzZW5zaXRpdmUgaW4g
dGhhdCBjb250ZXh0LiBNSU1FIHR5cGVzIHNob3VsZCBuZXZlciBiZSBjYXNlIHNlbnNpdGl2ZS4K
ICAgICAvLyBXZSBzaG91bGQgdmVyaWZ5IHRoaXMgYW5kIHRoZW4gcmVtb3ZlIHRoZSBpc0hUTUxF
bGVtZW50IGNoZWNrIGhlcmUuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNzc0NvbnRlbnRUeXBlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGNzc0NvbnRlbnRUeXBlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkgPyBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLCAidGV4dC9jc3MiKSA6IHR5cGUgPT0gY3Nz
Q29udGVudFR5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlv
blJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCmluZGV4
IDUxOTMyMGQ0Njk5MWMxNGIzNzI3ODFhY2NlYWM3NDkwM2MwODJhMTguLmU5NjRlZjMwNGUwYjcw
NjI1MjQ3ZDlmYTFmZjc0OGY5Y2EwMWI2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvblJlY29yZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVj
b3JkLmNwcApAQCAtMTc0LDE5ICsxNzQsMTkgQEAgY2xhc3MgTXV0YXRpb25SZWNvcmRXaXRoTnVs
bE9sZFZhbHVlIGZpbmFsIDogcHVibGljIE11dGF0aW9uUmVjb3JkIHsKIAogY29uc3QgQXRvbVN0
cmluZyYgQ2hpbGRMaXN0UmVjb3JkOjp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gY2hpbGRMaXN0KCJjaGlsZExpc3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjaGlsZExpc3QoImNoaWxkTGlzdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2hpbGRMaXN0OwogfQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBBdHRyaWJ1dGVzUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gYXR0cmlidXRlcygiYXR0cmlidXRlcyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGF0dHJpYnV0ZXMoImF0dHJpYnV0ZXMiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiB9CiAKIGNvbnN0IEF0
b21TdHJpbmcmIENoYXJhY3RlckRhdGFSZWNvcmQ6OnR5cGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjaGFyYWN0ZXJEYXRhKCJjaGFyYWN0ZXJEYXRhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2hhcmFjdGVyRGF0YSgiY2hhcmFjdGVyRGF0
YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2hhcmFj
dGVyRGF0YTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMu
cGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCA3MDQxZjEyMTcxZGUw
M2U5NTBhODg4MjdmN2ZkMTFmOWQ4ZDcyNWZhLi5iNTM4OTI2NWJhYTZkNDU5MDNjMTU5N2Y2NTRl
OGQ1ZWVlNDNmZWVlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMTE1LDcgKzExNSw3
IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgogRU5ECiAKLSAgICBwcmludE1h
Y3JvcygkRiwgImV4dGVybiBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5n
PiIsICIiLCBcJXBhcmFtZXRlcnMpOworICAgIHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIE1haW5U
aHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiIsICIiLCBcJXBh
cmFtZXRlcnMpOwogICAgIHByaW50IEYgIiNlbmRpZlxuXG4iOwogCiAgICAgcHJpbnRJbml0KCRG
LCAxKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBFTkQKIAogICAgIHByaW50IEYgU3RhdGljU3RyaW5n
OjpHZW5lcmF0ZVN0cmluZ3MoXCVwYXJhbWV0ZXJzKTsKIAotICAgIHByaW50TWFjcm9zKCRGLCAi
TGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0cmluZz4iLCAiIiwgXCVwYXJhbWV0
ZXJzKTsKKyAgICBwcmludE1hY3JvcygkRiwgIk1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiIsICIiLCBcJXBhcmFtZXRlcnMpOwogCiAgICAgcHJpbnRJ
bml0KCRGLCAwKTsKIApAQCAtNzIyLDcgKzcyMiw3IEBAIEVORAogICAgIG15ICRsb3dlcmNhc2VO
YW1lc3BhY2VQcmVmaXggPSBsYygkcGFyYW1ldGVyc3tuYW1lc3BhY2VQcmVmaXh9KTsKIAogICAg
IHByaW50IEYgIi8vIE5hbWVzcGFjZVxuIjsKLSAgICBwcmludCBGICJXRUJDT1JFX0VYUE9SVCBl
eHRlcm4gTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6QXRvbVN0cmluZz4gJHtsb3dlcmNh
c2VOYW1lc3BhY2VQcmVmaXh9TmFtZXNwYWNlVVJJO1xuXG4iOworICAgIHByaW50IEYgIldFQkNP
UkVfRVhQT1JUIGV4dGVybiBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IFdURjo6
QXRvbVN0cmluZz4gJHtsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXh9TmFtZXNwYWNlVVJJO1xuXG4i
OwogCiAgICAgaWYgKGtleXMgJWFsbFRhZ3MpIHsKICAgICAgICAgcHJpbnQgRiAiLy8gVGFnc1xu
IjsKQEAgLTc2MCw3ICs3NjAsNyBAQCBzdWIgcHJpbnROYW1lc0NwcEZpbGUKICAgICAKICAgICBt
eSAkbG93ZXJjYXNlTmFtZXNwYWNlUHJlZml4ID0gbGMoJHBhcmFtZXRlcnN7bmFtZXNwYWNlUHJl
Zml4fSk7CiAKLSAgICBwcmludCBGICJMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gJHtsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXh9TmFtZXNwYWNlVVJJO1xuXG4iOworICAgIHBy
aW50IEYgIk1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gJHts
b3dlcmNhc2VOYW1lc3BhY2VQcmVmaXh9TmFtZXNwYWNlVVJJO1xuXG4iOwogCiAgICAgcHJpbnQg
RiBTdGF0aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJWFsbFN0cmluZ3MpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9jYXBpdGFsaXplLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwCmluZGV4IDNhMGY5MTE5OWI2YmI3Yjg0N2NjNTg1
MDYxODgzM2RiN2UwMWVhNzUuLjczNWJlMGZhNzU3MjhhZDRkYmYxMmY2MjZlYThjY2M5YzZjZTdi
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwCkBAIC01NywxOSArNTcs
MTkgQEAgY29uc3QgQXRvbVN0cmluZyYgc3RyaW5nRm9yQXV0b2NhcGl0YWxpemVUeXBlKEF1dG9j
YXBpdGFsaXplVHlwZSB0eXBlKQogICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlRGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVO
b25lOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2
YWx1ZU5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFs
dWVOb25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICByZXR1cm4gdmFsdWVOb25lOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZVNl
bnRlbmNlczogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gdmFsdWVTZW50ZW5jZXMoInNlbnRlbmNlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB2YWx1ZVNlbnRlbmNlcygic2VudGVuY2VzIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWVTZW50ZW5jZXM7CiAgICAgfQog
ICAgIGNhc2UgQXV0b2NhcGl0YWxpemVUeXBlV29yZHM6IHsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlV29yZHMoIndvcmRzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWVXb3JkczsKICAg
ICB9CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVBbGxDaGFyYWN0ZXJzOiB7Ci0gICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2YWx1ZUFsbENoYXJhY3Rl
cnMoImNoYXJhY3RlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFs
dWVBbGxDaGFyYWN0ZXJzKCJjaGFyYWN0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWVBbGxDaGFyYWN0ZXJzOwogICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F1dG9maWxsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3BwCmluZGV4IGEwYTdkNzdiNWM5MjVmMDBkMDExNTg4NWVk
OGViOGMwNDFhODE0ZjQuLjY3MzVlMjY5ZjI1YWVmN2JjMDkxMjc1NTM5MjE0ODFjZGUzZThlYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3BwCkBAIC0xMzIsMTEgKzEzMiwxMSBAQCBBdXRvZmls
bEZpZWxkTmFtZSB0b0F1dG9maWxsRmllbGROYW1lKGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQog
CiBzdGF0aWMgaW5saW5lIGJvb2wgaXNDb250YWN0VG9rZW4oY29uc3QgQXRvbVN0cmluZyYgdG9r
ZW4pCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhvbWUoImhvbWUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHdvcmsoIndvcmsiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vYmlsZSgi
bW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYXgoImZheCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcGFn
ZXIoInBhZ2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaG9tZSgiaG9tZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdvcmsoIndvcmsiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2JpbGUoIm1vYmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGZheCgiZmF4IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcGFnZXIoInBhZ2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAg
ICAgcmV0dXJuIHRva2VuID09IGhvbWUgfHwgdG9rZW4gPT0gd29yayB8fCB0b2tlbiA9PSBtb2Jp
bGUgfHwgdG9rZW4gPT0gZmF4IHx8IHRva2VuID09IHBhZ2VyOwogfQpAQCAtMTYxLDggKzE2MSw4
IEBAIHN0YXRpYyB1bnNpZ25lZCBtYXhUb2tlbnNGb3JBdXRvZmlsbEZpZWxkQ2F0ZWdvcnkoQXV0
b2ZpbGxDYXRlZ29yeSBjYXRlZ29yeSkKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL2Zvcm1zLmh0bWwjcHJvY2Vzc2luZy1tb2RlbC0zCiBBdXRvZmlsbERhdGEgQXV0
b2ZpbGxEYXRhOjpjcmVhdGVGcm9tSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50JiBlbGVtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAK
ICAgICAvLyBMYWJlbDogRGVmYXVsdAogICAgIC8vIDI2LiBMZXQgdGhlIGVsZW1lbnQncyBJREwt
ZXhwb3NlZCBhdXRvZmlsbCB2YWx1ZSBiZSB0aGUgZW1wdHkgc3RyaW5nLCBhbmQgaXRzIGF1dG9m
aWxsIGhpbnQgc2V0IGFuZCBhdXRvZmlsbCBzY29wZSBiZSBlbXB0eS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCmluZGV4IGViYjdkMmE4YjAwM2Y0
NGU0ODFlZmIwMjY4NjY5OWY4MzZlNjA1YTMuLmE5NDk5NTZlOTMzMjJlMDZjNGQzZDRiOGQ4MTA3
ZDYxYTQxYzhkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmNwcApAQCAtOTksNyArOTksNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6
OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIAogU3RyaW5nIEJhc2VDaGVj
a2FibGVJbnB1dFR5cGU6OmZhbGxiYWNrVmFsdWUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG9uLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDdi
MTA2MWZlMWExZjQ5MTMyYWRmNDNkNTljYjg3NWVkYmY3ZmU2MTAuLjU0MjFmZGI0YmY2YjgxZGU5
ZjU0ZTFiMjE2NjVhOTc1YmQzYTMzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC02MSw3
ICs2MSw3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRs
ZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1h
bmQtdGltZS12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQ29u
dGFpbmVyUHNldWRvKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBhdXRv
IHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3Vt
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA5ZTJmMDRj
NDAwMDU2NTc5ZDU0YzQ1MjQ2OGNhMmRjODFhYjFlNjcyLi5kNGM4NThhM2Y5MjAxNWI2ZDM4ZTU0
MGJjNmM2NTllMDM2OWYzZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNw
cApAQCAtMTQzLDkgKzE0Myw4IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnNo
YWRvd1Jvb3QoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0Q29sb3JTd2F0Y2hOYW1lKCItd2Via2l0LWNvbG9yLXN3YXRjaCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hXcmFwcGVyTmFtZSgiLXdlYmtpdC1jb2xv
ci1zd2F0Y2gtd3JhcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Q29sb3JTd2F0Y2hOYW1lKCItd2Via2l0LWNv
bG9yLXN3YXRjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENvbG9y
U3dhdGNoV3JhcHBlck5hbWUoIi13ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBl
bGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgYXV0byB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggYThlZGM5OWYwYjdkOTVmZGI2ZTNhMjUzNTliYjg3ZGMyODFjZGUwNi4uM2UyZjli
ZWFmMDBkMjU4NjA0MzZiN2I2MDhiZmU5ZmIyMzE5NWJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC04OSw5ICs4OSw4IEBAIFJlZjxVcGxvYWRCdXR0b25FbGVtZW50
PiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShEb2N1bWVudCYgZG9jdW1l
CiBVcGxvYWRCdXR0b25FbGVtZW50OjpVcGxvYWRCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IEhUTUxJbnB1dEVsZW1lbnQoaW5wdXRUYWcsIGRvY3VtZW50LCAwLCBmYWxz
ZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9u
TmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRGaWxlVXBsb2FkQnV0
dG9uTmFtZSgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1
dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdEZpbGVVcGxvYWRC
dXR0b25OYW1lKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRUeXBlKGJ1dHRvbk5hbWUpOwogICAgIHNldFBzZXVk
byh3ZWJraXRGaWxlVXBsb2FkQnV0dG9uTmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNv
bnRyb2xsZXIuY3BwCmluZGV4IDc5ZGIzNDFlMWM5NTY1ZjFkMGY5MTNkMmM3YzdkM2M0NmIyNmNm
NWIuLmM3YTcwOWEwYTI0MTI0NDNkNDNmMTdmNmZhNWYzMTJkOTliMGEzY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgQXRvbVN0cmlu
ZyBGb3JtS2V5R2VuZXJhdG9yOjpmb3JtS2V5KGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGUmIGNvbnQKIHsKICAgICBhdXRvIGZvcm0gPSBtYWtlUmVmUHRyKG93bmVyRm9ybUZv
clN0YXRlKGNvbnRyb2wpKTsKICAgICBpZiAoIWZvcm0pIHsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IGZvcm1LZXlGb3JOb093bmVyKCJObyBvd25lciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JtS2V5Rm9yTm9Pd25lcigiTm8gb3du
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiBm
b3JtS2V5Rm9yTm9Pd25lcjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggMDA5ZjU1NDc4ZDNhNmU4NjE5ODhlNmJiZjI1Y2U0MGIyMTM4Y2Ni
Yy4uNmZjOWI0N2ZkYjEyZjY4ZDZjZjRjMTVhNjkwMzEzZTc1YjcyM2IxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTI1Myw5ICsyNTMsOSBAQCB2b2lk
IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgIH0gZWxzZSBp
ZiAobmFtZSA9PSByZWxBdHRyKSB7CiAgICAgICAgIC8vIFVwZGF0ZSBIVE1MQW5jaG9yRWxlbWVu
dDo6cmVsTGlzdCgpIGlmIG1vcmUgcmVsIGF0dHJpYnV0ZXMgdmFsdWVzIGFyZSBzdXBwb3J0ZWQu
Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub1JlZmVycmVyKCJu
b3JlZmVycmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbm9PcGVuZXIoIm5vb3BlbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbm9SZWZlcnJlcigibm9yZWZlcnJlciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBub09wZW5lcigibm9vcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlbmVyKCJvcGVuZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIGNvbnN0IGJvb2wgc2hvdWxkRm9sZENhc2UgPSB0cnVl
OwogICAgICAgICBTcGFjZVNwbGl0U3RyaW5nIHJlbFZhbHVlKHZhbHVlLCBzaG91bGRGb2xkQ2Fz
ZSk7CiAgICAgICAgIGlmIChyZWxWYWx1ZS5jb250YWlucyhub1JlZmVycmVyKSkKQEAgLTM4MSw3
ICszODEsNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rKCkg
Y29uc3QKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c3lzdGVtUHJldmlld0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVByZXZpZXdSZWxWYWx1ZSgiYXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1QcmV2aWV3UmVsVmFsdWUo
ImFyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFyZWxM
aXN0KCkuY29udGFpbnMoc3lzdGVtUHJldmlld1JlbFZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCA3MWZl
MWEwYjc4NThjZjBmMzA5MjZmOTBmNzRmZjc3NGZmNTdmZTE4Li40MmEyOWNjNTc4OGMzOWEzYzY0
NjNlYzRiMDEzNjgyZGM3YWRhZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcApAQCAtNzQsMTUgKzc0LDE1IEBAIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxCdXR0
b25FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHN3aXRjaCAobV90eXBl
KSB7CiAgICAgICAgIGNhc2UgU1VCTUlUOiB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VibWl0KCJzdWJtaXQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1Ym1pdCgic3VibWl0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJuIHN1Ym1pdDsKICAgICAgICAg
fQogICAgICAgICBjYXNlIEJVVFRPTjogewotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbigiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b24oImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgICAgIHJldHVybiBidXR0b247CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBSRVNFVDogewotICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHJlc2V0KCJyZXNldCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gcmVzZXQoInJlc2V0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJuIHJlc2V0OwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IDYwZGQxZmIy
NTIwMzg2MGQzZDkyYTdhNWFjYjMzMWMyYWIwNGI1OTEuLjA3Y2IxNjRhZWUxYWUwODE2YmNkMTU2
NDQzNDM4ZGUwZWY1NjkwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIERldGFpbEV2ZW50U2VuZGVyJiBkZXRh
aWxUb2dnbGVFdmVudFNlbmRlcigpCiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBzdW1tYXJ5
U2xvdE5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzdW1t
YXJ5U2xvdCgic3VtbWFyeVNsb3QiKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bW1hcnlTbG90KCJzdW1tYXJ5U2xvdCIpOwogICAgIHJl
dHVybiBzdW1tYXJ5U2xvdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRl
eCA3YTZhNmZlM2U5MTRlODViOTg5M2QxNjk2NDI3M2Q2YjJjNWJhOTYzLi41YjdmOWFmMzg2MTE2
ZGFkYjZmMDUzY2I4NDBlODc1Nzg2NTRjNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcApAQCAtNTA1LDkgKzUwNSw5IEBAIHN0YXRpYyBSZWY8RG9jdW1lbnRGcmFnbWVudD4gdGV4
dFRvRnJhZ21lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRlCiAvLyBodHRw
Oi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9j
b21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNsaW1pdGVkLXRvLW9ubHkta25vd24tdmFsdWVzCiBz
dGF0aWMgaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIHRvVmFsaWREaXJWYWx1ZShjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
bHRyVmFsdWUoImx0ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gcnRsVmFsdWUoInJ0bCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gYXV0b1ZhbHVlKCJhdXRvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gbHRyVmFsdWUoImx0ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJ0bFZh
bHVlKCJydGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvVmFsdWUoImF1
dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKGVxdWFsTGV0
dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAibHRyIikpCiAgICAgICAgIHJldHVybiBsdHJW
YWx1ZTsKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJydGwi
KSkKQEAgLTY2MiwyMiArNjYyLDE5IEBAIFN0cmluZyBIVE1MRWxlbWVudDo6Y29udGVudEVkaXRh
YmxlKCkgY29uc3QKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHRydWVOYW1lKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJ1ZVZhbHVlKCJ0cnVl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0cnVlVmFsdWUoInRydWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIHRydWVWYWx1ZS5nZXQoKTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21T
dHJpbmcmIGZhbHNlTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGZhbHNlVmFsdWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmYWxzZVZhbHVlKCJmYWxzZSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZmFsc2VWYWx1ZS5n
ZXQoKTsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHBsYWludGV4dE9ubHlOYW1lKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhaW50ZXh0
T25seVZhbHVlKCJwbGFpbnRleHQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhaW50ZXh0T25seVZhbHVlKCJwbGFp
bnRleHQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gcGxhaW50ZXh0T25seVZhbHVlLmdldCgpOwogfQogCkBAIC0xMTE3LDkgKzExMTQsOCBAQCBi
b29sIEhUTUxFbGVtZW50OjpzaG91bGRBdXRvY29ycmVjdCgpIGNvbnN0CiAKIHZvaWQgSFRNTEVs
ZW1lbnQ6OnNldEF1dG9jb3JyZWN0KGJvb2wgYXV0b2NvcnJlY3QpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uTmFtZSgib24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG9mZk5hbWUoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb25OYW1lKCJvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IG9mZk5hbWUoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBzZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGF1dG9j
b3JyZWN0QXR0ciwgYXV0b2NvcnJlY3QgPyBvbk5hbWUuZ2V0KCkgOiBvZmZOYW1lLmdldCgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXgg
NTFhYjAxODc5ODA0ODdiM2FmZDRlNTM1ZTZhZmM1Y2FlMGQyN2ZlMi4uNjIxODQwYzk2ODIyZmYw
YTZhOGNjNjg1NGI2NGFmZWQ1ZDQ0NmM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBIVE1MRmllbGRTZXRF
bGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgSFRNTEZp
ZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmllbGRzZXQoImZpZWxkc2V0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmaWVsZHNldDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDYyMGQyYzQyMWEyMTI0YmI5
MmEyYTg0YTRmYTA4YWNlMzFlY2VkNmYuLjY2NWFjZTQ3ZTc5ZTE0M2ExZDA2NTM1OTg3MzdjZTQw
N2EwYTIwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTkw
Niw4ICs5MDYsOCBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6c2V0QXV0b2NvbXBsZXRlKGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MRm9ybUVsZW1lbnQ6
OmF1dG9jb21wbGV0ZSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAg
IHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oYXV0b2NvbXBsZXRlQXR0ciksICJvZmYiKSA/IG9mZiA6IG9uOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggY2EwMDYzOWNlYjNiOGQ0N2NhMGJk
YzgwOTJiNmZkOTNkNjNlZjIyNC4uODU0YjZiZjc0YzgzNWJiYjI4YmUyMDVkODBhYjMwMDQzODFl
M2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC05MDMs
OCArOTAzLDggQEAgc2l6ZV90IEhUTUxJbWFnZUVsZW1lbnQ6OnBlbmRpbmdEZWNvZGVQcm9taXNl
c0NvdW50Rm9yVGVzdGluZygpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxJbWFnZUVs
ZW1lbnQ6OmxvYWRpbmdGb3JCaW5kaW5ncygpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGVhZ2VyKCJlYWdlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbGF6eSgi
bGF6eSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVhZ2VyKCJlYWdlciIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGxhenkoImxhenkiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0byYgYXR0cmlidXRlVmFsdWUgPSBhdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6bG9hZGluZ0F0dHIpOwogICAgIHJl
dHVybiBoYXNMYXp5TG9hZGFibGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGVWYWx1ZSkgPyBsYXp5
IDogZWFnZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmlu
ZGV4IDc4MGI3OTE5M2Q5ODc2MzJiNTkyYzliMjRkODU4MGI0ZWM2YThlNDAuLjE2NTEwY2Y3N2Nl
ZTM5NTA3ZWUwNWQwZDcyNDIwZWY2YWE4Yjc4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIEtleWdlblNlbGVjdEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTFNlbGVjdEVsZW1lbnQgewogICAgIEtleWdlblNlbGVj
dEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IEhUTUxTZWxlY3RFbGVtZW50
KHNlbGVjdFRhZywgZG9jdW1lbnQsIDApCiAgICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gcHNldWRvSWQoIi13ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1rZXlnZW4t
c2VsZWN0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBzZXRQ
c2V1ZG8ocHNldWRvSWQpOwogICAgIH0KIApAQCAtMTMwLDcgKzEzMCw3IEBAIGJvb2wgSFRNTEtl
eWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSwgYm9vbCkK
IAogY29uc3QgQXRvbVN0cmluZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGtl
eWdlbigia2V5Z2VuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4ga2V5Z2VuKCJr
ZXlnZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGtl
eWdlbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAK
aW5kZXggOWZlOWUxNGI1NjUxNTkwNjk5ZjA5YTk1NWM2Y2I2MjQzMmJlZDZmMC4uOTNhNmY0Y2Nm
NTNlNGIzMGQzZDI5OTVlNGVhZTQzM2YzOGU3OTQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgSFRNTE9wdEdy
b3VwRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1M
T3B0R3JvdXBFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcHRncm91cCgib3B0Z3JvdXAiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG9wdGdyb3VwOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IDU2YjcyMDZhZTNi
ZThmMTBhODgxNGFlOWFmYWM2MmJmZWI1NjA5YWMuLjM2MDY2NWI3Mjg4MDE2OGIxZmQ1OTA1NjVi
ZDI3NGM4YzlmYmFlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQu
Y3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlZjxIVE1MT3V0cHV0RWxlbWVudD4gSFRNTE91dHB1dEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAKIGNvbnN0IEF0
b21TdHJpbmcmIEhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvdXRwdXQoIm91dHB1
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG91dHB1dCgib3V0cHV0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBvdXRwdXQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4
IDdmMDM1NGY1YzgzOWY0NWM1YTJhNmNjNmQ1NzUxZDRkY2Q3YmI0NGIuLjFkYmQ0NTQxYmYzMTYw
NmVlNDk5NmQwMDAzMjUxYWJlMDNiNWQyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiBy
b290KQogCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3Zlcmxh
eShjb25zdCBFdmVudFRhcmdldCogdGFyZ2V0KSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBzZWxlY3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzZWxlY3RvcigiLnNuYXBzaG90LW92ZXJsYXkiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0byBzaGFkb3cgPSB1c2Vy
QWdlbnRTaGFkb3dSb290KCk7CiAgICAgaWYgKCFzaGFkb3cpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZWU0Mzcz
NjY3MmJlZDIzYjQ3OWYxYTM0ZDIyNzA0NzE3NGYxZTllYi4uMzEzM2QwMzEwMTcyNDRhM2NiYjZh
YmUzYWZjMzNiNmU0ODhkZDVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAKQEAgLTEwMCw4ICsxMDAsOCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaWRS
ZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdlKQogCiBjb25zdCBBdG9tU3RyaW5n
JiBIVE1MU2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0TXVsdGlwbGUoInNlbGVj
dC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0T25lKCJzZWxlY3Qtb25l
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2VsZWN0TXVsdGlwbGUoInNlbGVj
dC1tdWx0aXBsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVjdE9uZSgi
c2VsZWN0LW9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gbV9tdWx0aXBsZSA/IHNlbGVjdE11bHRpcGxlIDogc2VsZWN0T25lOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGE2MDAzOGZlOTRm
Mjk4YjA4ZWE0YWI2ZWRhY2Q3ZDE1NTdhYTg3NTUuLmMwNmEzZTUzMzM4M2ExZDUyMWMzYjY5YWYy
YzVmYmIyZjNkZDRjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuY3BwCkBAIC0xNjksMTAgKzE2OSwxMCBAQCB2b2lkIEhUTUxUYWJsZUNlbGxFbGVtZW50
OjpzZXRSb3dTcGFuRm9yQmluZGluZ3ModW5zaWduZWQgbikKIGNvbnN0IEF0b21TdHJpbmcmIEhU
TUxUYWJsZUNlbGxFbGVtZW50OjpzY29wZSgpIGNvbnN0CiB7CiAgICAgLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdGFibGVzLmh0bWwjYXR0ci10aC1zY29wZQotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3coInJvdyIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gY29sKCJjb2wiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvd2dy
b3VwKCJyb3dncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29sZ3JvdXAoImNvbGdyb3Vw
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcm93KCJyb3ciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2woImNvbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHJvd2dyb3VwKCJyb3dncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNvbGdyb3VwKCJjb2xncm91cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnNjb3BlQXR0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGUxOTUwNGJkOWI4NzBiNjY4MzNkY2Fi
MmZjNTUyZjYxNDZmMzEwNGIuLmE4OTg4M2ZhZDMwZDk3OWZlZTZhOGFkMzM0MmM4ZDJiYjUzNDk0
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MVGV4
dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0YXJlYSgidGV4dGFyZWEiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0YXJlYSgidGV4dGFyZWEiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRleHRhcmVhOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDM4OGVjYjhiMDFhMGZjNzcxNzYxMjcwOTQ3ODk3NTY0YTY0YzllYTYuLjNkYzQ2M2JiN2Rj
MjZlM2YwYjdlNmRlMjgzOWVkZjNlYTRmMWZjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zOTcsOSArMzk3LDkgQEAg
aW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uRW5kKCkgY29u
c3QKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBm
b3J3YXJkKCJmb3J3YXJkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBiYWNrd2FyZCgiYmFja3dh
cmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZm9yd2FyZCgiZm9yd2FyZCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGJhY2t3YXJkKCJiYWNrd2FyZCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2Fz
ZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbjoKQEAgLTUzNSw5ICs1MzUsOCBAQCBib29sIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpIGNvbnN0
CiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50
RWRpdGFiaWxpdHkoKQogewogICAgIGlmIChhdXRvIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1l
bnQoKSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
cGxhaW5UZXh0T25seU5hbWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZmFsc2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpblRleHRPbmx5TmFtZSgi
cGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmFs
c2VOYW1lKCJmYWxzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAg
ICAgY29uc3QgYXV0byYgdmFsdWUgPSBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpID8gcGxh
aW5UZXh0T25seU5hbWUuZ2V0KCkgOiBmYWxzZU5hbWUuZ2V0KCk7CiAgICAgICAgIGlubmVyVGV4
dC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihjb250ZW50ZWRpdGFibGVBdHRy
LCB2YWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dE1vZGUuY3BwCmluZGV4IGEyMGVhY2Nm
ZjljNmQwNTc2OWI5OGQ2OGM3M2Y1YWZjMWI5YmU2YmUuLjM0OWQ4NWI1NjJlN2JiOWM1YWRmZWQ1
MjcxMWY1MzA1YzQ3ZGU0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRN
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0TW9kZS5jcHAKQEAgLTgyLDQ5
ICs4Miw0OSBAQCBuYW1lc3BhY2UgSW5wdXRNb2RlTmFtZXMgewogCiBjb25zdCBBdG9tU3RyaW5n
JiBub25lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgi
bm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoIm5vbmUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIHRleHQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBtb2RlKCJ0ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9k
ZSgidGV4dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
bW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGVsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgidGVsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbW9kZSgidGVsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB1cmwoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJ1cmwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJ1cmwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGVtYWls
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgiZW1haWwi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb2RlKCJlbWFpbCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgbnVtZXJpYygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG1vZGUoIm51bWVyaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
b2RlKCJudW1lcmljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBkZWNpbWFsKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbW9kZSgiZGVjaW1hbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoImRlY2ltYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IHNlYXJjaCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUo
InNlYXJjaCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInNlYXJjaCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcAppbmRleCBhOGE2ZTc5ZGNjNjhi
Mjk2YmZkODcxOTdjY2Y0YjQ2ZTlhN2Y5ZWU0Li4zZTI2ZDcwYjZmMGVjN2VlZjFkNDk5YTE5ZDRh
MGJmYTlkMjI5YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5h
bWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVzLmNwcApAQCAt
MzMsMTM5ICszMywxMzkgQEAgbmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogY29uc3QgQXRv
bVN0cmluZyYgYnV0dG9uKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgi
YnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBjaGVja2JveCgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImNoZWNrYm94IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiY2hlY2tib3giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGNv
bG9yKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiY29s
b3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJjb2xvciIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgZGF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoImRhdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1l
KCJkYXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBkYXRldGltZSgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImRhdGV0aW1lIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRh
dGV0aW1lbG9jYWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBu
YW1lKCJkYXRldGltZS1sb2NhbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5h
bWUoImRhdGV0aW1lLWxvY2FsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBlbWFpbCgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImVtYWlsIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiZW1haWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IGZpbGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJm
aWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiZmlsZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgaGlkZGVuKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgiaGlkZGVuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgiaGlkZGVuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBpbWFnZSgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoImltYWdlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgiaW1hZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIG1vbnRo
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgibW9udGgi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJtb250aCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgbnVtYmVyKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gbmFtZSgibnVtYmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFt
ZSgibnVtYmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBwYXNzd29yZCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInBhc3N3b3JkIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgicGFzc3dvcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcm
IHJhZGlvKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgi
cmFkaW8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyYWRpbyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAog
Y29uc3QgQXRvbVN0cmluZyYgcmFuZ2UoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBuYW1lKCJyYW5nZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG5hbWUoInJhbmdlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiByZXNldCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInJlc2V0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgicmVzZXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJj
aCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInNlYXJj
aCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInNlYXJjaCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgc3VibWl0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgic3VibWl0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
bmFtZSgic3VibWl0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZWxlcGhvbmUoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ0ZWwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJ0ZWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRleHQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ0ZXh0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgidGV4dCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bVN0cmluZyYgdGltZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG5hbWUoInRpbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJ0aW1l
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiB1cmwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBuYW1lKCJ1cmwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBuYW1lKCJ1cmwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHdlZWsoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1lKCJ3ZWVrIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbmFtZSgid2VlayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRy
b2xsZXIuY3BwCmluZGV4IGU0ODJiMzYyYjE4YTdhNTQ5NDUzNzY0NjQ0Y2NmZTdjYmY1MTUyYjMu
LjMyMTE1MGNhN2VmOTQyMWQ3NGRjZDUyZDhkNmMyNzI4YzAxYjU3YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKQEAgLTI4OSwxOSArMjg5LDE5IEBAIHZvaWQgTWVk
aWFDb250cm9sbGVyOjpzZXRNdXRlZChib29sIGZsYWcpCiAKIHN0YXRpYyBjb25zdCBBdG9tU3Ry
aW5nJiBwbGF5YmFja1N0YXRlV2FpdGluZygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IHdhaXRpbmcoIndhaXRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3YWl0aW5nKCJ3YWl0aW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiB3YWl0aW5nOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
cGxheWJhY2tTdGF0ZVBsYXlpbmcoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBwbGF5aW5nKCJwbGF5aW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcGxheWluZygicGxheWluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gcGxheWluZzsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHBsYXli
YWNrU3RhdGVFbmRlZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IGVuZGVkKCJlbmRlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVuZGVkKCJl
bmRlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZW5k
ZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggZGI2MzZl
MjY5YTBjNWI5NzlmMzQ1MmZiYmI5YWMwNWU2ZjEyMzFiNy4uZGY1ZWIzNTBjNDE3MDAxMjY4Mjg3
NjliNzg1NTdiNjAzZTZmZjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKQEAgLTI1NSw4ICsyNTUsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKCkKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT51
c2VyQWdlbnRTaGFkb3dSb290KCkpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdFNsaWRlclJ1bm5hYmxlVHJhY2tOYW1lKCItd2Via2l0LXNsaWRl
ci1ydW5uYWJsZS10cmFjayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2xpZGVyUnVubmFibGVUcmFja05hbWUoIi13
ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsK
ICAgICBhdXRvIHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
dHJhY2stPnNldFBzZXVkbyh3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNrTmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggNzcxY2Y0NzEyMzJiODVlYzMwYjIy
NjU1NGEzMjlkODBiMjVhMDM2MS4uMTg3ZjNmNjRmZjk1NjMwMDMxMmZlYmEwZjdjMTMwYWJjZjc5
ZWI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtNjQsMTAg
KzY0LDkgQEAgdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpCiAKIHN0YXRp
YyB2b2lkIHVwZGF0ZVJlc3VsdEJ1dHRvblBzZXVkb1R5cGUoU2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uRWxlbWVudCYgcmVzdWx0QnV0dG9uLCBpbnQgbWF4UmVzdWx0cykKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoRGVjb3JhdGlvbk5h
bWUoIi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdl
YmtpdFNlYXJjaFJlc3VsdHNEZWNvcmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1k
ZWNvcmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzQnV0
dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJj
aERlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKCIt
d2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gt
cmVzdWx0cy1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
aWYgKCFtYXhSZXN1bHRzKQogICAgICAgICByZXN1bHRCdXR0b24uc2V0UHNldWRvKHdlYmtpdFNl
YXJjaFJlc3VsdHNEZWNvcmF0aW9uTmFtZSk7CiAgICAgZWxzZSBpZiAobWF4UmVzdWx0cyA8IDAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggMmY1OWU0
NTM5MjI5NjQzZDFjODAzYmM2Y2UwMjRlYzZlNDUwZTAzOC4uMmRlNDNkYWQ1YTlmYjZkOGM1OTFk
N2ZmZmQ0NGUxYzQ0MjY3ODZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcApAQCAtMzQ4LDggKzM0OCw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkSGF2ZUNhcHNMb2Nr
SW5kaWNhdG9yKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRDYXBzTG9ja0luZGljYXRvck5hbWUoIi13ZWJraXQtY2Fwcy1sb2NrLWluZGlj
YXRvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDYXBzTG9ja0luZGljYXRvck5hbWUoIi13ZWJraXQt
Y2Fwcy1sb2NrLWluZGljYXRvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICAgICAgbV9jYXBzTG9ja0luZGljYXRvciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yLT5zZXRQc2V1ZG8od2Via2l0Q2Fw
c0xvY2tJbmRpY2F0b3JOYW1lKTsKIApAQCAtNDU3LDggKzQ1Niw3IEBAIHZvaWQgVGV4dEZpZWxk
SW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yKCkKICAgICBpZiAoIW1f
Y29udGFpbmVyKQogICAgICAgICBjcmVhdGVDb250YWluZXIoKTsKIAotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRMaXN0QnV0dG9uTmFtZSgiLXdlYmtp
dC1saXN0LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TGlzdEJ1dHRvbk5hbWUoIi13ZWJraXQtbGlzdC1i
dXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgU2NyaXB0RGlz
YWxsb3dlZFNjb3BlOjpFdmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2NvcGUoKm1fY29udGFpbmVy
KTsKICAgICBtX2RhdGFMaXN0RHJvcGRvd25JbmRpY2F0b3IgPSBEYXRhTGlzdEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCksICp0aGlzKTsKICAgICBtX2NvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoKm1fZGF0YUxpc3REcm9wZG93bkluZGljYXRvcik7CkBAIC03ODIsOCAr
NzgwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUNvbnRhaW5lcigpCiAgICAg
QVNTRVJUKCFtX2NvbnRhaW5lcik7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VGV4dGZpZWxkRGVjb3Jh
dGlvbkNvbnRhaW5lck5hbWUoIi13ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRUZXh0ZmllbGREZWNvcmF0aW9uQ29udGFpbmVyTmFtZSgiLXdlYmtpdC10
ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAKICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3Bl
IGFsbG93ZWRTY29wZSgqZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCkpOwogCkBAIC04
MDMsOCArODAwLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZUF1dG9GaWxsQnV0
dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1dHRvblQKICAgICBpZiAoYXV0b0ZpbGxC
dXR0b25UeXBlID09IEF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUo
ImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gYnV0dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIG1fYXV0b0ZpbGxCdXR0
b24gPSBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCks
ICp0aGlzKTsKICAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRQc2V1ZG8oYXV0b0ZpbGxCdXR0b25U
eXBlVG9BdXRvRmlsbEJ1dHRvblBzZXVkb0NsYXNzTmFtZShhdXRvRmlsbEJ1dHRvblR5cGUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggYzhjYzZiNDll
NDZlMGNmOTBiYWIzMjY1ZDE5YmRjMDIwOGM3NGNlMC4uOTljOWE2ODQ3NjRlNzYwMGI4OTMwMDM4
NWI2NDI4YTk5OTkxNThlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAKQEAgLTE4MSwxNSArMTgxLDE0IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxk
QnViYmxlVHJlZSgpCiAKICAgICBTaGFkb3dSb290JiBzaGFkb3dSb290ID0gbV9lbGVtZW50LT5l
bnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU5hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25C
dWJibGVBcnJvd0NsaXBwZXJOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNs
aXBwZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJv
d05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVNZXNzYWdlTmFtZSgiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1tZXNzYWdlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0
aW9uQnViYmxlSWNvbk5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaWNvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZVRleHRCbG9ja05hbWUoIi13
ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtdGV4dC1ibG9jayIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZUhlYWRpbmdOYW1lKCItd2Via2l0LXZhbGlkYXRpb24t
YnViYmxlLWhlYWRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25C
dWJibGVCb2R5TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJr
aXRWYWxpZGF0aW9uQnViYmxlTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVBcnJvd0Ns
aXBwZXJOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlQXJyb3dO
YW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU1lc3NhZ2VOYW1lKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSWNvbk5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1i
dWJibGUtaWNvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlk
YXRpb25CdWJibGVUZXh0QmxvY2tOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLXRleHQt
YmxvY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9u
QnViYmxlSGVhZGluZ05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVCb2R5
TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1ib2R5IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9lbGVtZW50LT5k
b2N1bWVudCgpOwogICAgIG1fYnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2Vy
Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29u
dHJvbC5jcHAKaW5kZXggMmYxNjZmNzIyMjU2MWQ4OWMzOWU5MGY4MmNiNzcyMTQxMDhhMGNmZC4u
MTJkNTBmY2ZhNGNlZGE3ZTIyMzA3ZmM2ZTlmMzYwN2ZiMGFiZGQ5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtNDks
OCArNDksNyBAQCBSZWY8RGV0YWlsc01hcmtlckNvbnRyb2w+IERldGFpbHNNYXJrZXJDb250cm9s
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogRGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFp
bHNNYXJrZXJDb250cm9sKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50
KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0RGV0YWlsc01hcmtlck5hbWUoIi13ZWJraXQtZGV0
YWlscy1tYXJrZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdERldGFpbHNNYXJrZXJOYW1lKCItd2Via2l0LWRldGFp
bHMtbWFya2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFBz
ZXVkbyh3ZWJraXREZXRhaWxzTWFya2VyTmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudC5jcHAKaW5kZXggNGY1MWI1MmU2YzQ2N2I0MDM4YjQ3Y2EwNTU5NzRlNGRh
N2E1YTBhMS4uMWQzZTkyZDNlYjRkZWMyMzBlZWE4MGU4ZTNhNzljN2RmMDE3NzNlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTc3LDggKzc3LDcgQEAgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudChEb2MKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1l
bnQpCiAgICAgLCBtX21lZGlhRWxlbWVudChtYWtlV2Vha1B0cigmZWxlbWVudCkpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdE1lZGlhVGV4dFRy
YWNrQ29udGFpbmVyTmFtZSgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0TWVkaWFUZXh0VHJhY2tDb250YWluZXJOYW1lKCItd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHNldFBzZXVkbyh3ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cAppbmRleCA2YmMxMTcwZmQ0ZmI5ODliODQ5YWRlNGU3Y2MzNmMyYWFiODUzNjg1Li5mNTc0ZjA3
NDdkMTlhYjA4YjEwYTQ1ZjMxOWU3ODQzYWEyNGIyNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKQEAgLTkxLDggKzkx
LDcgQEAgdm9pZCBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6c2V0V2lkdGhQZXJjZW50YWdlKGRvdWJs
ZSB3aWR0aCkKIAogUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50PiBQcm9ncmVzc0lubmVyRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnROYW1lKCItd2Vi
a2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzSW5uZXJFbGVt
ZW50TmFtZSgiLXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVudD4gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc0lubmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHJl
c3VsdC0+c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzSW5uZXJFbGVtZW50TmFtZSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTEwMCw4ICs5OSw3IEBAIFJlZjxQcm9ncmVzc0lubmVyRWxlbWVudD4g
UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlZjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
d2Via2l0UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
UHJvZ3Jlc3NCYXJOYW1lKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiByZXN1bHQgPSBh
ZG9wdFJlZigqbmV3IFByb2dyZXNzQmFyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHJlc3VsdC0+
c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzQmFyTmFtZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAg
LTEwOSw4ICsxMDcsNyBAQCBSZWY8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlZjxQcm9ncmVzc1ZhbHVlRWxlbWVu
dD4gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNz
VmFsdWVOYW1lKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc1Zh
bHVlTmFtZSgiLXdlYmtpdC1wcm9ncmVzcy12YWx1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBSZWY8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICByZXN1bHQtPnNl
dFBzZXVkbyh3ZWJraXRQcm9ncmVzc1ZhbHVlTmFtZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmlu
ZGV4IDM1MzNlOGJhODA3NzRkYzJkNjZjMTVhNDgxMjFjNjM3OGRkYWU2YTkuLjY4YTQ5MGUxZmIx
NDRlNzMxZDNkMDc0OGM4NzkwYzk3M2NlMTgzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNTg3LDggKzU4Nyw4IEBAIE9w
dGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNsaWRlclRodW1iRWxlbWVudDo6cmVzb2x2ZUN1
c3RvbVN0eWxlKGNvbnN0IFJlbmRlCiB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNv
bXB1dGUgc3R5bGUuIFRoaXMgaXMganVzdCBhIGhhY2sgdG8gcGljayBzaGFkb3cgcHNldWRvIGlk
IHdoZW4gaG9zdCBzdHlsZSBpcyBrbm93bi4KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXNsaWRl
ci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXRo
dW1iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlkZXJUaHVtYlNo
YWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmICghaG9zdFN0eWxlKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtNjQxLDggKzY0MSw4IEBAIE9wdGlvbmFsPFN0eWxlOjpFbGVt
ZW50U3R5bGU+IFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjb25z
dCBSCiB7CiAgICAgLy8gVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGNvbXB1dGUgc3R5bGUuIFRoaXMg
aXMganVzdCBhIGhhY2sgdG8gcGljayBzaGFkb3cgcHNldWRvIGlkIHdoZW4gaG9zdCBzdHlsZSBp
cyBrbm93bi4KIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
ZWRpYVNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBzbGlkZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRh
aW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1lZGlhU2xpZGVyQ29udGFp
bmVyKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBzbGlkZXJDb250YWluZXIoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGlmICghaG9zdFN0eWxl
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDllMzI4ZjZjNmIxYWNhN2ZjZDEw
ZWZlNWJjNGZlMjI0ZGNmYWQ0MjMuLjk4NDZkMDNkOTY2YjNmOTMyMDZiOTE0NDJmZDIyM2IwMjBj
Y2EzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHAKQEAgLTU1LDggKzU1LDcgQEAgaW5saW5lIFNwaW5CdXR0b25FbGVtZW50OjpTcGlu
QnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYKICAgICAs
IG1fcHJlc3NTdGFydGluZ1N0YXRlKEluZGV0ZXJtaW5hdGUpCiAgICAgLCBtX3JlcGVhdGluZ1Rp
bWVyKCp0aGlzLCAmU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlcGVhdGluZ1RpbWVyRmlyZWQpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdElubmVyU3Bp
bkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdElubmVy
U3BpbkJ1dHRvbk5hbWUoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJh
Y2tzKCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdElubmVyU3BpbkJ1dHRvbk5hbWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAKaW5kZXggNzkzNGRkYzVlMjZjZWJlZTA5NmE2ODhhMDZjNTJmNjUyMzBjMmRjNy4u
YjZkNjljMWM0OGQ0MjQ5ZWU0NjBjY2U1Y2Y5NzVlZTI1NzRkYTQzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
CkBAIC0xODIsOCArMTgyLDcgQEAgT3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gVGV4dENv
bnRyb2xJbm5lclRleHRFbGVtZW50OjpyZXNvbHZlQ3VzdG9tU3R5bGUoY28KIGlubGluZSBUZXh0
Q29udHJvbFBsYWNlaG9sZGVyRWxlbWVudDo6VGV4dENvbnRyb2xQbGFjZWhvbGRlckVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1bWVu
dCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhY2Vo
b2xkZXJOYW1lKCJwbGFjZWhvbGRlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcGxhY2Vob2xkZXJOYW1lKCJwbGFjZWhvbGRl
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1ZG8ocGxh
Y2Vob2xkZXJOYW1lKTsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsK
IH0KQEAgLTI1Niw5ICsyNTUsOCBAQCBib29sIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIGlubGluZSBTZWFyY2hGaWVsZENh
bmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hD
YW5jZWxCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaENhbmNl
bEJ1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFj
a3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVt
YmVkU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJl
RW1iZWRTaGFkb3dFbGVtZW50LmNwcAppbmRleCAyMmY2MjA5NmRjYjBmY2U4YTYzZDBmOGM0OGQ0
NTlhZDAzMWQxYTVkLi45NzVhNjViMGNjNDczOWFjODZkNzcyZTcxOTZlYTBiZTk2M2QyNmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50LmNwcApAQCAtNDEsOCArNDEsNyBAQCBSZWY8WW91VHViZUVtYmVkU2hhZG93
RWxlbWVudD4gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2Mp
CiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFn
LCBkb2N1bWVudCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVu
dCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKCItd2Via2l0LXBsdWdpbi1yZXBs
YWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRQc2V1
ZG8od2Via2l0UGx1Z2luUmVwbGFjZW1lbnROYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAKaW5kZXggOTY0MzE2YTIyZTJhZjNhNDI5N2U5OGU3MzEzNDYyNTc2NWFjOWRm
Ni4uNmQ4MDFhNjE1ZjExNmI0ZDU5NjI3ZTI4OWFhNjNlZDE2ZjZjZWFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC05NCw4ICs5NCw3IEBAIFJlZlB0cjxJbWFnZUNvbnRy
b2xzQnV0dG9uRWxlbWVudE1hYz4gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OnRyeUNy
ZWF0ZShECiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhXZWJraXRJ
bWFnZUNvbnRyb2xzQnV0dG9uTmFtZSgieC13ZWJraXQtaW1hZ2UtY29udHJvbHMtYnV0dG9uIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRvbk5hbWUoIngtd2Via2l0LWltYWdlLWNvbnRy
b2xzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIGF1
dG8gYnV0dG9uID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYyhk
b2N1bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihIVE1MTmFtZXM6OmNsYXNzQXR0ciwgeFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKaW5kZXggMmY5ZGY0OWMyMmViZWEwYjhlNDU5MmFm
MWE1NjQ3YjY3NjUxZjI5Yi4uM2FhNDU0OWMxM2M4NzUxNzU1MGIzZjcxZjM4NDk3ODJiNmQwYjg5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAKQEAgLTg2LDggKzg2LDcgQEAgUmVmUHRy
PEltYWdlQ29udHJvbHNSb290RWxlbWVudD4gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50Ojp0cnlD
cmVhdGUoRG9jdW1lbnQmIGQKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4geFdlYmtpdEltYWdlQ29udHJvbHNOYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFJlZjxJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWM+IGNvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnRNYWMoZG9jdW1lbnQpKTsKICAgICBjb250cm9scy0+c2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmNsYXNzQXR0ciwgeFdlYmtpdEltYWdlQ29udHJv
bHNOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDAy
MDlmOWVjMWMwMmM5NzRmZDRlNjBiMWZkNDAwMzc4NjM4MzYwYzMuLjIzYTkxZDAwMGFjYmJlMTAy
NWMwNTRiZjJjNWIyYmNlNjExMDhjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmNwcApAQCAtNDEsMzcgKzQxLDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29u
c3QgQXRvbVN0cmluZyYgQXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gYWx0ZXJuYXRpdmUoImFsdGVybmF0aXZl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx0ZXJuYXRpdmUoImFsdGVybmF0
aXZlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhbHRl
cm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9UcmFjazo6ZGVzY3JpcHRpb25L
ZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZGVzY3Jp
cHRpb24oImRlc2NyaXB0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVz
Y3JpcHRpb24oImRlc2NyaXB0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9U
cmFjazo6bWFpbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBtYWluKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWFpbigi
bWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbWFp
bjsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgQXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbWFpbkRlc2MoIm1haW4t
ZGVzYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1haW5EZXNjKCJtYWluLWRl
c2MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG1haW5E
ZXNjOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjp0cmFuc2xhdGlvbktleXdv
cmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0cmFuc2xhdGlv
bigidHJhbnNsYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFuc2xh
dGlvbigidHJhbnNsYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHRyYW5zbGF0aW9uOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNr
Ojpjb21tZW50YXJ5S2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBjb21tZW50YXJ5KCJjb21tZW50YXJ5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggYzY1YTExODc5ZTY1MTMyMzk1MTMxNDM3MjgwN2Jj
Y2Q2ZTFmY2M2NC4uZDRlMGY2OTEzMWExYmIwYWMzNGEzYTYwYWY1MDI1NzIxODQ0MTcyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtNTIsMzcgKzUyLDM3IEBA
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2spOwogCiBjb25zdCBBdG9tU3Ry
aW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIHN0
YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBjYXB0aW9uc0tleXdvcmQoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjYXB0aW9ucygiY2FwdGlvbnMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjYXB0aW9ucygiY2FwdGlvbnMiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNhcHRpb25zOwogfQogCiBz
dGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZGVzY3JpcHRpb25zS2V5d29yZCgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlc2NyaXB0aW9ucygiZGVzY3Jp
cHRpb25zIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVzY3JpcHRpb25zKCJk
ZXNjcmlwdGlvbnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGRlc2NyaXB0aW9uczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGNoYXB0ZXJz
S2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGNoYXB0ZXJzKCJjaGFwdGVycyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNo
YXB0ZXJzKCJjaGFwdGVycyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gY2hhcHRlcnM7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBtZXRhZGF0
YUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtZXRhZGF0YSgibWV0YWRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
ZXRhZGF0YSgibWV0YWRhdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIG1ldGFkYXRhOwogfQogICAgIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGZv
cmNlZEtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBmb3JjZWQoImZvcmNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZv
cmNlZCgiZm9yY2VkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBmb3JjZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcAppbmRleCA2NTUxMDhhNTk3Yzk1M2ZjMDg3OWVmMDhhODMyYzEyNDRiOGRmZGExLi43ZGM4
YWEzZjZhNDg2ZDQxY2ZiNzA5N2UwZTQzYjZhYzhmNTU5ZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC02NCwxOSArNjQsMTkgQEAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFRleHRUcmFja0N1ZUJveCk7CiAKIGNvbnN0IEF0b21TdHJpbmcm
IFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGN1ZSgiY3VlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgIHJldHVybiBjdWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFRleHRUcmFja0N1ZTo6
Y3VlQm94U2hhZG93UHNldWRvSWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRp
YS10ZXh0LXRyYWNrLWRpc3BsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0
cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRp
c3BsYXkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHRy
YWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBUZXh0
VHJhY2tDdWU6OmN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkKCIt
d2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheS1iYWNrZHJvcCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IGN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1kaXNwbGF5LWJhY2tkcm9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBjdWVCYWNrZHJvcFNoYWRvd1BzZXVkb0lkOwogfQogCkBA
IC00ODgsOCArNDg4LDcgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSgp
CiAgICAgU2NyaXB0RGlzYWxsb3dlZFNjb3BlOjpFdmVudEFsbG93ZWRTY29wZSBhbGxvd2VkU2Nv
cGVGb3JSZWZlcmVuY2VUcmVlKCptX2N1ZU5vZGUpOwogCiAgICAgaWYgKCFtX2Rpc3BsYXlUcmVl
KSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJr
aXRHZW5lcmljQ3VlUm9vdE5hbWUoIi13ZWJraXQtZ2VuZXJpYy1jdWUtcm9vdCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB3ZWJraXRHZW5lcmljQ3VlUm9vdE5hbWUoIi13ZWJraXQtZ2VuZXJpYy1jdWUtcm9vdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgbV9kaXNwbGF5VHJl
ZSA9IFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlKG93bmVyRG9jdW1lbnQoKSwgKnRoaXMpOwogICAg
ICAgICBtX2Rpc3BsYXlUcmVlLT5zZXRQc2V1ZG8od2Via2l0R2VuZXJpY0N1ZVJvb3ROYW1lKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggM2E2ZTQ3
MjFlNzcyZDhmZDFkYjU5ZWQ4MzNmZTdiMmQ1NDE2ODM2Zi4uY2Q4Yzg3YjAyN2U3YTQ3NTM4YzJh
ZTJiYThmYmZjZTQzYmMzMjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9u
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFZUVFJlZ2lvbjo6c2V0
Vmlld3BvcnRBbmNob3JZKGRvdWJsZSB2YWx1ZSkKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IHVwS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHVwS2V5d29yZCgidXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB1cEtl
eXdvcmQoInVwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biB1cEtleXdvcmQ7CiB9CiAKQEAgLTI2MiwyMSArMjYyLDIxIEBAIHZvaWQgVlRUUmVnaW9uOjpw
YXJzZVNldHRpbmdWYWx1ZShSZWdpb25TZXR0aW5nIHNldHRpbmcsIFZUVFNjYW5uZXImIGlucHV0
KQogCiBjb25zdCBBdG9tU3RyaW5nJiBWVFRSZWdpb246OnRleHRUcmFja0N1ZUNvbnRhaW5lclNj
cm9sbGluZ0NsYXNzKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxpbmdDbGFzcygic2Nyb2xsaW5nIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJT
Y3JvbGxpbmdDbGFzcygic2Nyb2xsaW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xhc3M7
CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVy
U2hhZG93UHNldWRvSWQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclBzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRl
eHQtdHJhY2stcmVnaW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyUHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10
cmFjay1yZWdpb24tY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyUHNldWRvSWQ7CiB9CiAKIGNv
bnN0IEF0b21TdHJpbmcmIFZUVFJlZ2lvbjo6dGV4dFRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1Jl
Z2lvblNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdHJhY2tSZWdpb25TaGFkb3dQc2V1ZG9JZCgi
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIHJldHVybiB0cmFja1JlZ2lvblNoYWRvd1BzZXVkb0lkOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggYjVkZjE4M2FiZDJm
ZjhjZTFiOGYzOWViZmQxZDIwZjU2MGMwNTlhMy4uMzhlZDUxYzc2ZTFmNTNjMDhiZTcyMGFlOGQ3
NjY0YjQ4MDE0NDcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
CkBAIC00NiwzNyArNDYsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9tU3Ry
aW5nJiBWaWRlb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0ZXJuYXRpdmUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFsdGVybmF0
aXZlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjYXB0aW9u
cygiY2FwdGlvbnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjYXB0aW9ucygi
Y2FwdGlvbnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IGNhcHRpb25zOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWaWRlb1RyYWNrOjptYWluS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRp
b25zKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY2FwdGlvbnMoIm1h
aW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNhcHRp
b25zOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpZ24oInNpZ24i
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaWduKCJzaWduIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzaWduOwogfQogCiBjb25zdCBB
dG9tU3RyaW5nJiBWaWRlb1RyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gc3VidGl0bGVzOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiBWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbW1lbnRhcnko
ImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb21tZW50YXJ5
KCJjb21tZW50YXJ5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IGU0YTk0YTUwNTk2MWFhMzc5N2Zh
NmQwNGVhNjVjNjQ1NjVhZDk2ZGQuLjc1MDhkNzVhY2ZhMTllMTFkZmEyNTZiNjY3MzQ0YTYzM2Rh
MjNhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC04Miw3ICs4Miw3IEBAIGNvbnN0IEF0b21TdHJpbmcmIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSgpIGNvbnN0CiAgICAgaWYgKCFtX2lu
aXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JOYW1lOwog
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGRlZmF1bHROYW1lKCJvdGhl
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRlZmF1bHROYW1lKCJvdGhlciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZGVmYXVsdE5h
bWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5YTg0Mzk3MTEz
MmQ1MzZhYjRiNTEzNmZlOWM5N2NiY2EyMDU3OTVlLi44ZDQxNzE3NzQ0MjM1YmY4MWNmYTA3NGUw
YWI1NjIxYWUzOGIwNDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0z
NDA2LDEwICszNDA2LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAKIHN0YXRpYyBGb2N1
c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShjb25zdCBBdG9tU3RyaW5nJiBrZXlJZGVu
dGlmaWVyKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBEb3duKCJE
b3duIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBVcCgiVXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IExlZnQoIkxl
ZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IFJpZ2h0KCJSaWdodCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IERvd24oIkRvd24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBVcCgiVXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBMZWZ0KCJMZWZ0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gUmlnaHQoIlJpZ2h0IiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0g
Rm9jdXNEaXJlY3Rpb25Ob25lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1
aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggMjI5NmE4Zjlk
ZDU5ZjJhZTk4NDVkNmUyMjdhMzc4NTNkMWZjNTk1ZS4uZTJhNGMwODBhZDQyYjYxMWNlYzkzNzNl
NjIzMzFlNTgwZDBjODQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtNjg0LDcgKzY4NCw3
IEBAIGJvb2wgUXVpcmtzOjpzaG91bGRCeXBhc3NCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QKICAg
ICAvLyBiZWNhdXNlIGl0IHB1dHMgYW4gb3ZlcmxheSAod2l0aCBjbGFzcyAiZG9jcy1ob21lc2Ny
ZWVuLWZyZWV6ZS1lbC1mdWxsIikgb3ZlciB0aGUgcGFnZSB3aGVuIG5hdmlnYXRpbmcgYXdheSBh
bmQgZmFpbHMKICAgICAvLyB0byByZW1vdmUgaXQgd2hlbiBjb21pbmcgYmFjayBmcm9tIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUgKGUuZy4gaW4gJ3BhZ2VzaG93JyBldmVudCBoYW5kbGVyKS4gU2Vl
IDxyZGFyOi8vcHJvYmxlbS81NzY3MDA2ND4uCiAgICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBu
b3QgY2hlY2sgZm9yIGRvY3MuZ29vZ2xlLmNvbSBob3N0IGJlY2F1c2Ugb2YgaG9zdGVkIEcgU3Vp
dGUgYXBwcy4KLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ29v
Z2xlRG9jc092ZXJsYXlEaXZDbGFzcygiZG9jcy1ob21lc2NyZWVuLWZyZWV6ZS1lbC1mdWxsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZ29vZ2xlRG9jc092ZXJsYXlEaXZDbGFz
cygiZG9jcy1ob21lc2NyZWVuLWZyZWV6ZS1lbC1mdWxsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIGF1dG8qIGZpcnN0Q2hpbGRJbkJvZHkgPSBtX2RvY3VtZW50LT5i
b2R5KCkgPyBtX2RvY3VtZW50LT5ib2R5KCktPmZpcnN0Q2hpbGQoKSA6IG51bGxwdHI7CiAgICAg
aWYgKGlzPEhUTUxEaXZFbGVtZW50PihmaXJzdENoaWxkSW5Cb2R5KSkgewogICAgICAgICBhdXRv
JiBkaXYgPSBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKmZpcnN0Q2hpbGRJbkJvZHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAKaW5kZXggZWUwZDU2ODhjYjg4MWFkZGUwMGE2OWQ2YjYzZDllY2U5YWQ2NzM3ZC4uOTNjNDli
Y2Y2ZDkxZjRkY2RmNTQ2NzE0YTU0MzY4M2UxMmQ0Nzk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0yMjEsNyAr
MjIxLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9u
cyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXIKICAgICAvLyBUb3NzIHRoZSBhbmltYXRp
b24gb3JkZXIgbWFwLgogICAgIG1fa2V5ZnJhbWVBbmltYXRpb25PcmRlck1hcC5jbGVhcigpOwog
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub25lKCJub25lIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAgIC8vIE5vdyBtYXJrIGFueSBzdGls
bCBhY3RpdmUgYW5pbWF0aW9ucyBhcyBhY3RpdmUgYW5kIGFkZCBhbnkgbmV3IGFuaW1hdGlvbnMu
CiAgICAgaWYgKHRhcmdldFN0eWxlLmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudC5tbQppbmRleCBiMTQ5NTE4NDQ3M2RjYWUxYWZjNWNhOTdkNDQ0YWJjNjU5MTdi
OGM4Li4wODRmNDMyOTVkODE1ZTMwMDMzMjVkOTgzYjc3MDM5M2Q5NjlhNGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtNDAzLDcgKzQwMyw3IEBAIGNvbnN0IFZlY3Rv
cjxBdG9tU3RyaW5nPiYgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6Om9ic2VydmVk
RXZlbnROYW1lcygpCiAKIGNvbnN0IEF0b21TdHJpbmcmICBQbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudDo6ZXZlbnROYW1lQWxsKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gZXZlbnROYW1lQWxsKCJhbGxFdmVudHMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBldmVudE5hbWVBbGwoImFsbEV2ZW50cyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gZXZlbnROYW1lQWxsOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4IGU4ZTM5YzkyNjNkN2E1ODczYmE5YzE3NGI1
OGU0MWZmODNkNzdkNDAuLjNhZDY5YjdlNzQzY2VhMTgxZDRjZmZjNThiZjJkMmJlNzg2NjQ3NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCkBAIC0xODQsNyArMTg0LDcgQEAg
Y29uc3QgVmVjdG9yPEF0b21TdHJpbmc+JiBWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dDo6b2JzZXJ2ZWRFdmVudE5hbWVzKCkKIAogY29uc3QgQXRvbVN0cmluZyYgVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHNFdmVudE5hbWVBbGwgPSAiYWxsRXZlbnRzIjsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNFdmVudE5h
bWVBbGwgPSAiYWxsRXZlbnRzIjsKICAgICByZXR1cm4gc0V2ZW50TmFtZUFsbDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggN2Zj
YWE0NGQ1NGEzODc0MmY3ZGQ1ODc0MDA2YWE0Mzc2ZTI1ODQ4Yy4uYWJhMWE4NDI2ODAyNWMxMmY3
NWQ2NzM3M2I5MzMyNmNlYzZiM2YxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0xNDksMTIgKzE0OSwxMiBAQCBzdGF0aWMgRm9udFBs
YXRmb3JtRGF0YUNhY2hlJiBmb250UGxhdGZvcm1EYXRhQ2FjaGUoKQogCiBjb25zdCBBdG9tU3Ry
aW5nJiBGb250Q2FjaGU6OmFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbVN0cmluZyYgZmFt
aWx5TmFtZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gYXJpYWwo
IkFyaWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjb3VyaWVyKCJDb3VyaWVyIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBjb3VyaWVyTmV3KCJDb3VyaWVyIE5ldyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaGVsdmV0aWNh
KCJIZWx2ZXRpY2EiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzKCJUaW1lcyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gYXJpYWwoIkFyaWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY291cmllcigiQ291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGNvdXJpZXJOZXcoIkNvdXJpZXIgTmV3IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaGVsdmV0aWNhKCJIZWx2ZXRpY2EiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB0aW1lcygiVGltZXMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0aW1lc05l
d1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBwbGF0Zm9ybVNwZWNpZmljQWx0ZXJuYXRlID0g
cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGZhbWlseU5hbWUpOwogICAgIGlmICghcGxhdGZv
cm1TcGVjaWZpY0FsdGVybmF0ZS5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBjODI4YmJlN2U3NzU1ZWU3MTEyMTcy
M2U5ZjE3MDI3ZWQxZmFlMjQ2Li41YzJhYWY4YWNjYjMxNjAwMDhkY2JmYWQwOWY0ZjVmYThmYTc5
MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCkBAIC0yOTcsMTMgKzI5NywxMyBAQCBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJGYWN0b3J5PiYmIGZhY3RvcnkpCiAKIHN0YXRpYyBj
b25zdCBBdG9tU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXBwbGljYXRpb25PY3RldFN0cmVhbSgi
YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gYXBwbGljYXRpb25PY3RldFN0cmVhbSgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBhcHBsaWNhdGlvbk9j
dGV0U3RyZWFtOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgdGV4dFBsYWluKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dFBsYWluKCJ0
ZXh0L3BsYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dFBsYWluKCJ0
ZXh0L3BsYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biB0ZXh0UGxhaW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCmluZGV4IDJkNmU5YWE2M2M0ZTE5OWRkOTkyZTE3NDQyZTVkYWUwZTYzNDE4YmUuLjhhYzQ4
ZWM1ZGM2OWIzMTQ5NTdiYTQzM2Y5NzEwMWVhMjc3Njk2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcApAQCAtNzUsMTMgKzc1LDEzIEBAIGNvbnN0IFZlY3Rv
cjxGb3VyQ0M+JiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnZhbGlkRmFpclBsYXlTdHJl
YW1pbmdTY2hlbWVzCiAKIGNvbnN0IEF0b21TdHJpbmcmIENETVByaXZhdGVGYWlyUGxheVN0cmVh
bWluZzo6c2luZk5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoInNpbmYiKSB9OworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2luZiB7IE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJzaW5mIikgfTsKICAgICByZXR1cm4gc2luZjsKIH0KIAogY29uc3Qg
QXRvbVN0cmluZyYgQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpza2ROYW1lKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc2tkIHsgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoInNrZCIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBza2QgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2tkIikgfTsK
ICAgICByZXR1cm4gc2tkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5OWE5M2My
NTk4ZDQ3NmMxNDI2OWI0NGY5MWIxMzA3ZDRjNTdiOThkLi4zYjgwNDI4OWUxM2NlZDhjMTI3ZDJj
MDA5NGUxZjA0OTNmYTdjNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMwMTgsMTIg
KzMwMTgsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRC
dWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmkKICNpZiBFTkFCTEUoREFUQUNVRV9W
QUxVRSkKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBtZXRhZGF0YVR5cGUoTlNTdHJpbmcgKmF2
TWV0YWRhdGFLZXlTcGFjZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gcXVpY2tUaW1lVXNlckRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUudWR0YSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaXNvVXNlckRhdGEoIm9yZy5tcDRyYSIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gcXVpY2tUaW1lTWV0YWRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUubWR0YSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaVR1bmVzTWV0YWRhdGEoImNvbS5hcHBsZS5pdHVuZXMi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlkM01ldGFkYXRhKCJvcmcuaWQzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBobHNEYXRlUmFuZ2VNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS5I
TFMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVVc2VyRGF0YSgi
Y29tLmFwcGxlLnF1aWNrdGltZS51ZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaXNvVXNlckRhdGEoIm9yZy5tcDRyYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHF1aWNrVGltZU1ldGFkYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLm1kdGEiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpVHVuZXNNZXRhZGF0YSgiY29tLmFwcGxlLml0dW5l
cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlkM01ldGFkYXRhKCJvcmcuaWQz
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaGxzRGF0ZVJhbmdlTWV0YWRhdGEo
ImNvbS5hcHBsZS5xdWlja3RpbWUuSExTIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogCiAgICAgaWYgKFthdk1ldGFkYXRhS2V5U3BhY2UgaXNFcXVhbFRvU3RyaW5nOkFWTWV0
YWRhdGFLZXlTcGFjZVF1aWNrVGltZVVzZXJEYXRhXSkKICAgICAgICAgcmV0dXJuIHF1aWNrVGlt
ZVVzZXJEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IGY2MjhhYzJiNmNlNzRmZmM1
MjA2YjFhMmQ5Y2ZmNTc5MjE5MDk3ZDUuLjMzMmQyZWZjMDZmZTlhNDBhYTFlYzZmMmU0NzVkOGUz
Mjc3MmQxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTcwNSwxMyArNzA1LDEzIEBA
IFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIGNvbnN0IEF0CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAv
LyBTdWJzdGl0dXRlIHRoZSBkZWZhdWx0IG1vbm9zcGFjZSBmb250IGZvciB3ZWxsLWtub3duIG1v
bm9zcGFjZSBmb250cy4KICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFt
aWx5LCAibW9uYWNvIikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAi
bWVubG8iKSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gY291
cmllcigiY291cmllciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb3Vy
aWVyKCJjb3VyaWVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICByZXR1cm4gZm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwgY291cmllcik7CiAgICAgfQogCiAg
ICAgLy8gU3Vic3RpdHV0ZSBWZXJkYW5hIGZvciBMdWNpZGEgR3JhbmRlLgogICAgIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICJsdWNpZGEgZ3JhbmRlIikpIHsKLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHZlcmRhbmEoInZlcmRhbmEi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmVyZGFuYSgidmVyZGFuYSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIGZvbnRG
b3JGYW1pbHkoZGVzY3JpcHRpb24sIHZlcmRhbmEpOwogICAgIH0KICNlbmRpZgpAQCAtNzIwLDgg
KzcyMCw4IEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnNpbWlsYXJGb250KGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IEF0CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gcGFzaHRvKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJQYXNodG8iKSk7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdXJkdShNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiVXJkdSIpKTsKICAgICBzdGF0aWMgU3RyaW5nKiBtYXRjaFdvcmRzWzNdID0geyAmYXJh
YmljLmdldCgpLCAmcGFzaHRvLmdldCgpLCAmdXJkdS5nZXQoKSB9OwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBnZWV6YVBsYWluKCJHZWV6YVBybyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gZ2VlemFCb2xkKCJHZWV6YVByby1Cb2xkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZ2VlemFQbGFpbigiR2VlemFQcm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBnZWV6YUJvbGQoIkdlZXphUHJvLUJvbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgZm9yIChTdHJpbmcqIG1hdGNoV29yZCA6IG1hdGNoV29yZHMpIHsK
ICAgICAgICAgaWYgKGZhbWlseS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCptYXRjaFdvcmQp
KQogICAgICAgICAgICAgcmV0dXJuIGZvbnRGb3JGYW1pbHkoZGVzY3JpcHRpb24sIGlzRm9udFdl
aWdodEJvbGQoZGVzY3JpcHRpb24ud2VpZ2h0KCkpID8gZ2VlemFCb2xkIDogZ2VlemFQbGFpbik7
CkBAIC0xNTA3LDEwICsxNTA3LDEwIEBAIGNvbnN0IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6cGxh
dGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlsCiAgICAgc3Rh
dGljIGNvbnN0IFVDaGFyIHdlaXJ1YW5ZYUhlaVN0cmluZ1tdID0geyAweDVmYWUsIDB4OGY2Ziwg
MHg5NmM1LCAweDllZDEgfTsKICAgICBzdGF0aWMgY29uc3QgVUNoYXIgd2VpcnVhblpoZW5nSGVp
dGlTdHJpbmdbXSA9IHsgMHg1ZmFlLCAweDhlZGYsIDB4NmI2MywgMHg5ZWQxLCAweDlhZDQgfTsK
IAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzb25ndGlTQygiU29uZ3Rp
IFNDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzb25ndGlUQygiU29uZ3RpIFRDIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBoZWl0aVNDUmVwbGFjZW1lbnQoIlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBo
ZWl0aVRDUmVwbGFjZW1lbnQoIlBpbmdGYW5nIFRDIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gc29uZ3RpU0MoIlNvbmd0aSBTQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHNvbmd0aVRDKCJTb25ndGkgVEMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBoZWl0aVNDUmVwbGFjZW1lbnQoIlBpbmdGYW5nIFNDIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBUQyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZmFtaWx5TmFtZS5sZW5n
dGgoKSkgewogICAgIGNhc2UgMjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0
LmNwcAppbmRleCBjYzRlMmJjNDQ2ZjI4ZTQ5ZGViNTMzNmEzM2IwYmJmNzk4NmZjMmQwLi4zNTBi
MTZhN2UxZWMyYTUzYzQ5ZjkxMmFkY2U2NzkxMTUyZjNjYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVt
Rm9udERhdGFiYXNlQ29yZVRleHQuY3BwCkBAIC0yMTMsMjIgKzIxMywyMiBAQCBTeXN0ZW1Gb250
RGF0YWJhc2VDb3JlVGV4dDo6Q2FzY2FkZUxpc3RQYXJhbWV0ZXJzIFN5c3RlbUZvbnREYXRhYmFz
ZUNvcmVUZXh0OjpzeQogCiAgICAgc3dpdGNoIChzeXN0ZW1Gb250S2luZCkgewogICAgIGNhc2Ug
U3lzdGVtRm9udEtpbmQ6OlN5c3RlbVVJOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBzeXN0ZW1VSSA9IEF0b21TdHJpbmcoInN5c3RlbS11aSIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSSA9IEF0b21TdHJpbmcoInN5c3Rl
bS11aSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmVzdWx0
LmZvbnROYW1lID0gc3lzdGVtVUkuZ2V0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIFN5c3RlbUZvbnRLaW5kOjpVSVNlcmlmOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1VSVNlcmlmID0gQXRvbVN0cmluZygidWktc2VyaWYiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3lzdGVtVUlTZXJpZiA9IEF0b21T
dHJpbmcoInVpLXNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
ICAgICByZXN1bHQuZm9udE5hbWUgPSBzeXN0ZW1VSVNlcmlmLmdldCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlNb25vc3BhY2U6IHsKLSAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJTW9ub3NwYWNlID0g
QXRvbVN0cmluZygidWktbW9ub3NwYWNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHN5c3RlbVVJTW9ub3NwYWNlID0gQXRvbVN0cmluZygidWktbW9ub3NwYWNlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXN1bHQuZm9udE5hbWUg
PSBzeXN0ZW1VSU1vbm9zcGFjZS5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNh
c2UgU3lzdGVtRm9udEtpbmQ6OlVJUm91bmRlZDogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlSb3VuZGVkID0gQXRvbVN0cmluZygidWktcm91bmRl
ZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSVJvdW5kZWQg
PSBBdG9tU3RyaW5nKCJ1aS1yb3VuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgICAgICByZXN1bHQuZm9udE5hbWUgPSBzeXN0ZW1VSVJvdW5kZWQuZ2V0KCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggYTBhYTI1MDNlYTVlYmVj
OWNiZWE1YWM3MjdmNzA2MDU5Mzk0NTc1NS4uZWY2OTUyMTY0ZjAzMGY1YjBmNzRhMzgwNWYzNTdi
YWU2MmI3Y2JlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUmVmPFNvdXJj
ZUFscGhhPiBTb3VyY2VBbHBoYTo6Y3JlYXRlKEZpbHRlckVmZmVjdCYgc291cmNlRWZmZWN0KQog
CiBjb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VBbHBoYTo6ZWZmZWN0TmFtZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNfZWZmZWN0TmFtZSgiU291cmNl
QWxwaGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5hbWUoIlNv
dXJjZUFscGhhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBzX2VmZmVjdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDA0NWVlMDFmMjIz
ZTQyMmZmZjA0NmZlYTJmNGNhMmRkZTBkZGQ3MTIuLjg4YTM2YTQxMDI2YmQzYTU4NTQ0NzgyMDI3
NGMxMTA3ZDc4MzkyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMzYsNyArMzYsNyBAQCBS
ZWY8U291cmNlR3JhcGhpYz4gU291cmNlR3JhcGhpYzo6Y3JlYXRlKEZpbHRlciYgZmlsdGVyKQog
CiBjb25zdCBBdG9tU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3ROYW1lKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1lKCJTb3Vy
Y2VHcmFwaGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1l
KCJTb3VyY2VHcmFwaGljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBzX2VmZmVjdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDRmMDhjYTA2ZDI0ZTlkYzNm
YTA0MzQxOGMzY2JmYzI4Mjc2ZWUxZDEuLjJiMmFjOGE0YTAyNzgzYzI1MDljYmRmYTFkNDAyYzU0
NDFiY2M4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtNTMsMTAgKzUzLDEwIEBAIEZvbnRQbGF0Zm9ybURhdGEq
IEZvbnRDYWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KGNvbnN0IFVJbnQzMiBjLCBjb25zdCBG
b250RGVzCiB7CiAgICAgQVNTRVJUKHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KGMpKTsKIAot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBoZWx2ZXRpY2FGYW1pbHkoIkhl
bHZldGljYSBOZXVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuUFNNVEZhbWlseSgi
VGltZXNOZXdSb21hblBTTVQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWx2
ZXRpY2FGYW1pbHkoIkhlbHZldGljYSBOZXVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gdGltZXNOZXdSb21hblBTTVRGYW1pbHkoIlRpbWVzTmV3Um9tYW5QU01UIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCi0gICAgQXRvbVN0cmluZyogZmFtaWx5ID0g
bnVsbHB0cjsKKyAgICBjb25zdCBBdG9tU3RyaW5nKiBmYW1pbHkgPSBudWxscHRyOwogICAgIHN3
aXRjaCAoYykgewogICAgIGNhc2UgQXBwbGVMb2dvOgogICAgICAgICBmYW1pbHkgPSAmaGVsdmV0
aWNhRmFtaWx5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaApp
bmRleCAxN2NiNTBlM2E1NTUxMDU1YjMzYjU2ZDNhNTFhNjY4M2I3N2ZjMDIzLi4wOTg5OTgwZTQ2
NTY5OGRlY2Y2NGU0ZjQ3NWI1NDEyYmI4MjA4ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW0uaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNkZWZpbmUgVEVYTUFQX0RFQ0xBUkVfVkFSSUFCTEUoQWNjZXNzb3IsIE5hbWUsIFR5cGUpIFwK
ICAgICBHTHVpbnQgQWNjZXNzb3IjI0xvY2F0aW9uKCkgeyBcCi0gICAgICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKE5hbWUsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsgXAorICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoTmFtZSwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOyBcCiAgICAgICAgIHJldHVybiBnZXRMb2NhdGlvbihuYW1lLmdldCgpLCBUeXBl
KTsgXAogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udENhY2hlV2luLmNwcAppbmRleCA2OGQ0OGU4NzY0OTVhODI2N2U3NTg5NzNmMWRl
NWFiYzJlMTgxNWY4Li4yYjRiNTU3MmE0ZDgwOGI4M2I0YjBmNGFhNjRmOTZjOTYzODJmNjEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hl
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENh
Y2hlV2luLmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OmZv
bnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9uCiAK
IFJlZjxGb250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udE5hbWU7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmYWxsYmFja0ZvbnROYW1lOwogCiAgICAgaWYgKCFmYWxs
YmFja0ZvbnROYW1lLmdldCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuICpmb250Rm9yRmFt
aWx5KGZvbnREZXNjcmlwdGlvbiwgZmFsbGJhY2tGb250TmFtZSk7CkBAIC0zODQsNyArMzg0LDcg
QEAgUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGkKICAgICAvLyBTZWFyY2ggYWxsIHR5cGljYWwgV2lu
ZG93cy1pbnN0YWxsZWQgZnVsbCBVbmljb2RlIGZvbnRzLgogICAgIC8vIFNvcnRlZCBieSBtb3N0
IHRvIGxlYXN0IGdseXBocyBhY2NvcmRpbmcgdG8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr
aS9Vbmljb2RlX3R5cGVmYWNlcwogICAgIC8vIFN0YXJ0IHdpdGggVGltZXMgTmV3IFJvbWFuIGFs
c28gc2luY2UgaXQgaXMgdGhlIGRlZmF1bHQgaWYgdGhlIHVzZXIgZG9lc24ndCBjaGFuZ2UgcHJl
ZnMuCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udHNb
XSA9IHsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGZhbGxiYWNrRm9udHNbXSA9IHsKICAgICAgICAgQXRvbVN0cmluZygiVGltZXMgTmV3IFJv
bWFuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpLAogICAgICAgICBBdG9tU3Ry
aW5nKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSwKICAgICAgICAgQXRvbVN0cmluZygiVGFob21hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpLApAQCAtNjk0LDggKzY5NCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxh
dGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERl
CiAKIGNvbnN0IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlO
YW1lKGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseU5hbWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gbWljcm9zb2Z0U2Fuc1NlcmlmKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBS
b21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1pY3Jvc29mdFNhbnNTZXJp
ZigiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICBzd2l0Y2ggKGZhbWlseU5hbWUubGVuZ3RoKCkpIHsKICAgICAvLyBPbiBXaW5k
b3dzLCB3ZSBkb24ndCBzdXBwb3J0IGJpdG1hcCBmb250cywgYnV0IGxlZ2FjeSBjb250ZW50IGV4
cGVjdHMgc3VwcG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KaW5kZXggODVhYTFlMTQx
NWIwMGY1MTE5ZWQ3YTFiNjQzYjk2YWZkMjBiNzUwOS4uYjhiMDU3YjkyOTNjZTJhMjk5MDFmMWI4
YTAzYjg0YWVkNzBiZDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KQEAgLTE1MCw3
ICsxNTAsNyBAQCBzdGF0aWMgaW5saW5lIEF0b21TdHJpbmcgZXh0cmFjdEhUVFBTdGF0dXNUZXh0
KENGSFRUUE1lc3NhZ2VSZWYgbWVzc2FnZVJlZikKICAgICBpZiAoYXV0byBodHRwU3RhdHVzTGlu
ZSA9IGFkb3B0Q0YoQ0ZIVFRQTWVzc2FnZUNvcHlSZXNwb25zZVN0YXR1c0xpbmUobWVzc2FnZVJl
ZikpKQogICAgICAgICByZXR1cm4gZXh0cmFjdFJlYXNvblBocmFzZUZyb21IVFRQU3RhdHVzTGlu
ZShodHRwU3RhdHVzTGluZS5nZXQoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gZGVmYXVsdFN0YXR1c1RleHQoIk9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZGVmYXVsdFN0YXR1c1RleHQoIk9LIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIHJldHVybiBkZWZhdWx0U3RhdHVzVGV4dDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKaW5kZXggMjllYmU1NmFm
MDkxMTJiMzFlNTM2OWZlODllYTc4OTc0YmY3N2UwMC4uNDFiYjUyZjA2ZWY0ODZiNzFhNGNlNzZk
ODMyMGYzN2U5MThlMjk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Nv
bXBsZXhMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxl
eExpbmVMYXlvdXQuY3BwCkBAIC0yMTU4LDcgKzIxNTgsNyBAQCB2b2lkIENvbXBsZXhMaW5lTGF5
b3V0OjpjaGVja0xpbmVzRm9yVGV4dE92ZXJmbG93KCkKICAgICAvLyBEZXRlcm1pbmUgdGhlIHdp
ZHRoIG9mIHRoZSBlbGxpcHNpcyB1c2luZyB0aGUgY3VycmVudCBmb250LgogICAgIC8vIEZJWE1F
OiBDU1MzIHNheXMgdGhpcyBpcyBjb25maWd1cmFibGUsIGFsc28gbmVlZCB0byB1c2UgMHgwMDJF
IChGVUxMIFNUT1ApIGlmIGhvcml6b250YWwgZWxsaXBzaXMgaXMgIm5vdCByZW5kZXJhYmxlIgog
ICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gc3R5bGUoKS5mb250Q2FzY2FkZSgpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbGxpcHNpc1N0cigmaG9yaXpvbnRh
bEVsbGlwc2lzLCAxKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOwogICAgIGNv
bnN0IEZvbnRDYXNjYWRlJiBmaXJzdExpbmVGb250ID0gbV9mbG93LmZpcnN0TGluZVN0eWxlKCku
Zm9udENhc2NhZGUoKTsKICAgICBmbG9hdCBmaXJzdExpbmVFbGxpcHNpc1dpZHRoID0gZmlyc3RM
aW5lRm9udC53aWR0aChtX2Zsb3cuY29uc3RydWN0VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lz
LCAxLCBtX2Zsb3cuZmlyc3RMaW5lU3R5bGUoKSkpOwogICAgIGZsb2F0IGVsbGlwc2lzV2lkdGgg
PSAoZm9udCA9PSBmaXJzdExpbmVGb250KSA/IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggOiBmb250
LndpZHRoKG1fZmxvdy5jb25zdHJ1Y3RUZXh0UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0
eWxlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggODE1MGY1NWZkZTI2YTY0N2E3ZWQ4MDNhM2Ri
NzczMzZjNGE3MDk4Yi4uOTcwM2JlNDQ5ZjYyMjlmYmMzNjAwZjA1MmUwODRkYTY5MTQ2ZTMwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTk5MSw4ICs5OTEsOCBAQCB2b2lkIFJlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwg
Ym9vbAogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgY29uc3QgVUNoYXIgZWxsaXBz
aXNBbmRTcGFjZVsyXSA9IHsgaG9yaXpvbnRhbEVsbGlwc2lzLCAnICcgfTsKLSAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGVsbGlwc2lzQW5kU3BhY2VTdHIoZWxsaXBz
aXNBbmRTcGFjZSwgMik7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBlbGxpcHNpc1N0cigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBlbGxpcHNpc0FuZFNwYWNl
U3RyKGVsbGlwc2lzQW5kU3BhY2UsIDIpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBz
aXMsIDEpOwogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlID0gbnVtVmlzaWJs
ZUxpbmVzID09IDEgPyBmaXJzdExpbmVTdHlsZSgpIDogc3R5bGUoKTsKICAgICAgICAgY29uc3Qg
Rm9udENhc2NhZGUmIGZvbnQgPSBsaW5lU3R5bGUuZm9udENhc2NhZGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMWQ3ZjAzMWNm
ZTUxYTIyNGE1YWY4YTA2ZTJkYjg3ZThkNDlkZWYyNy4uYmQwYjkwZTVmOTJhNDE4YmIyZWM1MGZk
ODZmZjNhMzc3MTIzZGQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCkBAIC0xNTY2LDggKzE1NjYsOCBAQCBjb25zdCBBdG9tU3RyaW5nJiBS
ZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0
aW9uU3RyaW5nOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUu
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGh5cGhlbk1pbnVzU3RyaW5n
KCZoeXBoZW5NaW51cywgMSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IGh5cGhlblN0cmluZygmaHlwaGVuLCAxKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGh5cGhlbk1pbnVzU3RyaW5nKCZoeXBoZW5NaW51cywg
MSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBoeXBoZW5TdHJpbmcoJmh5cGhlbiwgMSk7CiAgICAgcmV0dXJuIGZvbnRDYXNjYWRlKCkucHJp
bWFyeUZvbnQoKS5nbHlwaEZvckNoYXJhY3RlcihoeXBoZW4pID8gaHlwaGVuU3RyaW5nIDogaHlw
aGVuTWludXNTdHJpbmc7CiB9CiAKQEAgLTE1NzksMjggKzE1NzksMjggQEAgY29uc3QgQXRvbVN0
cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdAogICAgIGNh
c2UgVGV4dEVtcGhhc2lzTWFyazo6Q3VzdG9tOgogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lz
Q3VzdG9tTWFyaygpOwogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6RG90OiB7Ci0gICAgICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxl
dCwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuRG90
U3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkRG90U3RyaW5nKCZidWxsZXQsIDEpOwor
ICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IG9wZW5Eb3RTdHJpbmcoJndoaXRlQnVsbGV0LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBo
YXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQgPyBmaWxsZWREb3RTdHJpbmcg
OiBvcGVuRG90U3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkNpcmNs
ZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkQ2ly
Y2xlU3RyaW5nKCZibGFja0NpcmNsZSwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBvcGVuQ2lyY2xlU3RyaW5nKCZ3aGl0ZUNpcmNsZSwgMSk7CisgICAgICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVk
Q2lyY2xlU3RyaW5nKCZibGFja0NpcmNsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlbkNpcmNsZVN0cmluZygmd2hpdGVD
aXJjbGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBo
YXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6RG91YmxlQ2lyY2xlOiB7Ci0gICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmaWxsZWREb3VibGVDaXJjbGVT
dHJpbmcoJmZpc2hleWUsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gb3BlbkRvdWJsZUNpcmNsZVN0cmluZygmYnVsbHNleWUsIDEpOworICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZERvdWJs
ZUNpcmNsZVN0cmluZygmZmlzaGV5ZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlbkRvdWJsZUNpcmNsZVN0cmluZygmYnVs
bHNleWUsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBo
YXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZERvdWJsZUNpcmNsZVN0cmluZyA6IG9wZW5Eb3VibGVD
aXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6
IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZFRyaWFu
Z2xlU3RyaW5nKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSk7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuVHJpYW5nbGVTdHJpbmcoJndoaXRlVXBQb2lu
dGluZ1RyaWFuZ2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWRUcmlhbmdsZVN0cmluZygmYmxhY2tVcFBvaW50aW5n
VHJpYW5nbGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IG9wZW5UcmlhbmdsZVN0cmluZygmd2hpdGVVcFBvaW50aW5nVHJpYW5n
bGUsIDEpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNp
c0ZpbGw6OkZpbGxlZCA/IGZpbGxlZFRyaWFuZ2xlU3RyaW5nIDogb3BlblRyaWFuZ2xlU3RyaW5n
OwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OlNlc2FtZTogewotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmlsbGVkU2VzYW1lU3RyaW5nKCZzZXNh
bWVEb3QsIDEpOwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb3Bl
blNlc2FtZVN0cmluZygmd2hpdGVTZXNhbWVEb3QsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZFNlc2FtZVN0cmluZygm
c2VzYW1lRG90LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBvcGVuU2VzYW1lU3RyaW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CiAg
ICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbDo6Rmls
bGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAgICAg
Y2FzZSBUZXh0RW1waGFzaXNNYXJrOjpBdXRvOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVz
dGVyLmNwcAppbmRleCAyMjFlZTY1ZDliOTg3ZWZhMzIyZTM2OWMxNDMwZjFlMjgwZWFmODY5Li5m
Y2NmMmJhMTdiMDExMmVkMmI1YWRjYWU3ODdmOGViZTliYWVlYzg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNTQ1LDIwICs1NDUsMjAgQEAgdm9pZCBBZGp1c3Rl
cjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QK
IAogICAgIGlmIChtX2RvY3VtZW50LnF1aXJrcygpLm5lZWRzR01haWxPdmVyZmxvd1Njcm9sbFF1
aXJrKCkpIHsKICAgICAgICAgLy8gVGhpcyB0dXJucyBzaWRlYmFyIHNjcm9sbGFibGUgd2l0aG91
dCBtb3VzZSBtb3ZlIGV2ZW50LgotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHJvbGVWYWx1ZSgibmF2aWdhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICAgICAgaWYgKHN0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpI
aWRkZW4gJiYgbV9lbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHJvbGVB
dHRyKSA9PSByb2xlVmFsdWUpCiAgICAgICAgICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZs
b3c6OkF1dG8pOwogICAgIH0KICAgICBpZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc1lvdVR1
YmVPdmVyZmxvd1Njcm9sbFF1aXJrKCkpIHsKICAgICAgICAgLy8gVGhpcyB0dXJucyBzaWRlYmFy
IHNjcm9sbGFibGUgd2l0aG91dCBob3Zlci4KLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGlkVmFsdWUoImd1aWRlLWlubmVyLWNvbnRlbnQiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWRWYWx1ZSgiZ3VpZGUtaW5uZXItY29udGVudCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgaWYgKHN0eWxlLm92ZXJm
bG93WSgpID09IE92ZXJmbG93OjpIaWRkZW4gJiYgbV9lbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1
dGlvbigpID09IGlkVmFsdWUpCiAgICAgICAgICAgICBzdHlsZS5zZXRPdmVyZmxvd1koT3ZlcmZs
b3c6OkF1dG8pOwogICAgIH0KICAgICBpZiAobV9kb2N1bWVudC5xdWlya3MoKS5uZWVkc0Z1bGxz
Y3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkpIHsKICAgICAgICAgaWYgKGlzPEhUTUxEaXZFbGVtZW50
PihtX2VsZW1lbnQpICYmIHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6Tm9uZSkgewot
ICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluc3Ry
ZWFtTmF0aXZlVmlkZW9EaXZDbGFzcygiaW5zdHJlYW0tbmF0aXZlLXZpZGVvLS1tb2JpbGUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmlkZW9FbGVtZW50SUQoInZqc192aWRlb18z
X2h0bWw1X2FwaSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5z
dHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKCJpbnN0cmVhbS1uYXRpdmUtdmlkZW8tLW1vYmlsZSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmlkZW9FbGVtZW50SUQo
InZqc192aWRlb18zX2h0bWw1X2FwaSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgICAgICAgICAgYXV0byYgZGl2ID0gZG93bmNhc3Q8SFRNTERpdkVsZW1lbnQ+KCpt
X2VsZW1lbnQpOwogICAgICAgICAgICAgaWYgKGRpdi5oYXNDbGFzcygpICYmIGRpdi5jbGFzc05h
bWVzKCkuY29udGFpbnMoaW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5kZXggNWQwNTIxMTlj
NjQ0Y2JlZjI0MDJhMmMzOTZmNjc3NzY5NjFjODkxOC4uMjU0NThjNGVhN2VkMjkyMWE0OGQxYmM3
ZmNlMWNhNTA5YjkzNTViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwCkBAIC0xMDksOCArMTA5LDggQEAgdm9pZCBTVkdBbmltYXRlTW90aW9u
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXQKICAgICAKIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2RlIFNWR0FuaW1hdGVN
b3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXV0b1ZhbCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gYXV0b1JldmVyc2UoImF1dG8tcmV2ZXJzZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGF1dG9WYWwoImF1dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZlcnNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIHJvdGF0ZSA9IGdldEF0dHJpYnV0ZShTVkdO
YW1lczo6cm90YXRlQXR0cik7CiAgICAgaWYgKHJvdGF0ZSA9PSBhdXRvVmFsKQogICAgICAgICBy
ZXR1cm4gUm90YXRlQXV0bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50
LmNwcAppbmRleCAxYjQ2MWI0NzMxODY4MDY0MjBjOGEwZWQ3YTM3YzE2ODk2NmQzYjMyLi40NWU0
NWQ1YmNlNGYzYTQyYWNmNjg0YjYyZGRiZWEwYWIyMTdlNmMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0yNzYsMTAgKzI3NiwxMCBAQCB2b2lkIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1h
dGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21TdHJpbmcmIGNhbGNNb2RlKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkaXNjcmV0ZSgiZGlz
Y3JldGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGxpbmVhcigibGluZWFyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwbGlu
ZSgic3BsaW5lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGlzY3JldGUoImRp
c2NyZXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbGluZWFyKCJsaW5lYXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwYWNlZCgicGFjZWQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzcGxpbmUoInNwbGluZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAoY2FsY01vZGUgPT0gZGlzY3JldGUpCiAgICAg
ICAgIHNldENhbGNNb2RlKENhbGNNb2RlOjpEaXNjcmV0ZSk7CiAgICAgZWxzZSBpZiAoY2FsY01v
ZGUgPT0gbGluZWFyKQpAQCAtMjk0LDggKzI5NCw4IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVu
dDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbVN0cmluZyYgY2FsY01vZGUpCiAKIHZvaWQgU1ZHQW5p
bWF0aW9uRWxlbWVudDo6c2V0QXR0cmlidXRlVHlwZShjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1
dGVUeXBlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBj
c3MoIkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geG1sKCJYTUwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBjc3MoIkNTUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHhtbCgiWE1MIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IGlmIChhdHRyaWJ1dGVUeXBlID09IGNzcykKICAgICAgICAgbV9hdHRyaWJ1dGVUeXBlID0gQXR0
cmlidXRlVHlwZTo6Q1NTOwogICAgIGVsc2UgaWYgKGF0dHJpYnV0ZVR5cGUgPT0geG1sKQpAQCAt
MzIxLDE0ICszMjEsMTQgQEAgU3RyaW5nIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmZyb21WYWx1ZSgp
IGNvbnN0CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBZGRpdGl2ZSgpIGNvbnN0CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bSgic3VtIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtKCJzdW0iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAg
IHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6
OkJ5OwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25z
dAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1
bSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1bSgic3VtIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0g
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1lczo6YWNjdW11bGF0ZUF0dHIp
OwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gJiYgYW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlv
bk1vZGU6OlRvOwogfQpAQCAtNjA2LDcgKzYwNiw3IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVu
dDo6Y29tcHV0ZUNTU1Byb3BlcnR5VmFsdWUoU1ZHRWxlbWVudCogZWxlbWVudCwgQ1NTUHJvcGVy
CiAKIHN0YXRpYyBib29sIGluaGVyaXRzRnJvbVByb3BlcnR5KFNWR0VsZW1lbnQqIHRhcmdldEVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYg
dmFsdWUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlu
aGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0
KCJpbmhlcml0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIAogICAg
IGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAppbmRleCA2Y2U3NWVl
NzUzMzI0YjhkZTYzMWEzMDY0M2Y5YmQ4ZWY4MWQ4NjlkLi4yNWI4MmEyOWE2NzQwMTZhNzYyZWRk
NTljYjU4OGVhNjlhZDBlM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNw
cApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0RGlzYWJsZWQoYm9v
bCBzZXREaXNhYmxlZCkKIAogY29uc3QgQXRvbVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBl
KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZGVmYXVsdFZhbHVlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGRlZmF1bHRWYWx1ZSgidGV4dC9jc3MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShTVkdOYW1lczo6dHlw
ZUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlLmdldCgpIDogbjsK
IH0KQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFR5cGUoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSkKIAogY29uc3QgQXRvbVN0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojpt
ZWRpYSgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGRlZmF1bHRWYWx1ZSgiYWxsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZGVmYXVsdFZhbHVlKCJhbGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgbiA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
U1ZHTmFtZXM6Om1lZGlhQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFs
dWUuZ2V0KCkgOiBuOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlv
bi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NN
SUxFbGVtZW50LmNwcAppbmRleCA0NDliMTRjZDUwMWRmMjU1ODc0ZWNjZmM1ODQ5Yzg5NGYyODEx
NmZkLi4wNDMyMTI4Yzk4MTJlOTViNjBlYzcxN2E2ZThmNzk1OWU5ZmM0MmFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtMzQwLDcg
KzM0MCw3IEBAIFNNSUxUaW1lIFNWR1NNSUxFbGVtZW50OjpwYXJzZUNsb2NrVmFsdWUoY29uc3Qg
U3RyaW5nJiBkYXRhKQogICAgIAogICAgIFN0cmluZyBwYXJzZSA9IGRhdGEuc3RyaXBXaGl0ZVNw
YWNlKCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5k
ZWZpbml0ZVZhbHVlKCJpbmRlZmluaXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaW5kZWZpbml0ZVZhbHVlKCJpbmRlZmluaXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogICAgIGlmIChwYXJzZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJl
dHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogCkBAIC02NTIsOCArNjUyLDggQEAgYm9vbCBT
VkdTTUlMRWxlbWVudDo6aXNGcm96ZW4oKSBjb25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OlJl
c3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3RhcnQoKSBjb25zdAogeyAgICAKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmV2ZXIoIm5ldmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB3aGVuTm90QWN0aXZlKCJ3aGVuTm90QWN0aXZlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmV2ZXIoIm5ldmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gd2hlbk5vdEFjdGl2ZSgid2hlbk5vdEFjdGl2ZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OnJlc3RhcnRBdHRyKTsKICAgICBp
ZiAodmFsdWUgPT0gbmV2ZXIpCiAgICAgICAgIHJldHVybiBSZXN0YXJ0TmV2ZXI7CkBAIC02NjQs
NyArNjY0LDcgQEAgU1ZHU01JTEVsZW1lbnQ6OlJlc3RhcnQgU1ZHU01JTEVsZW1lbnQ6OnJlc3Rh
cnQoKSBjb25zdAogICAgIAogU1ZHU01JTEVsZW1lbnQ6OkZpbGxNb2RlIFNWR1NNSUxFbGVtZW50
OjpmaWxsKCkgY29uc3QKIHsgICAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZnJlZXplKCJmcmVlemUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmcmVlemUoImZyZWV6ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oU1ZHTmFtZXM6OmZpbGxBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmls
bEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9CkBAIC02OTcsNyArNjk3LDcgQEAgU01JTFRpbWUgU1ZH
U01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KCkgY29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6dW5yZXNvbHZlZCgpOwogCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5kZWZpbml0
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluZGVmaW5pdGVWYWx1ZSgiaW5k
ZWZpbml0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAodmFs
dWUgPT0gaW5kZWZpbml0ZVZhbHVlKQogICAgICAgICByZXR1cm4gU01JTFRpbWU6OmluZGVmaW5p
dGUoKTsKICAgICBib29sIG9rOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25J
bXBsLmNwcAppbmRleCA3MmIyNWI1YjhjYzJmYzFlNzAxYzc5MTllMzM5Mjc2N2MyMzE0MDVkLi40
NzZmYjM0YjNhY2E0YjIxZmI3ZDBlZGNlYzFkZjBhOTEyOGQ5ODk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rp
b25JbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRp
b25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIENvbG9yIFNWR0FuaW1hdGlvbkNvbG9yRnVuY3Rpb246OmNvbG9yRnJv
bVN0cmluZyhTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBTdHJpbmcmIHN0cmluZykK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VycmVudENv
bG9yKCJjdXJyZW50Q29sb3IiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjdXJy
ZW50Q29sb3IoImN1cnJlbnRDb2xvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKIAogICAgIGlmIChzdHJpbmcgIT0gY3VycmVudENvbG9yLmdldCgpKQogICAgICAgICByZXR1
cm4gU1ZHUHJvcGVydHlUcmFpdHM8Q29sb3I+Ojpmcm9tU3RyaW5nKHN0cmluZyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgKaW5k
ZXggMjFlODgzZmUyNDQ4MzhmZjM3NDY4NjliZjExYTNkZjQ2ZmY0YmUyYS4uZDhlOGVjMTc2M2M5
MjAyOWExOTY4OWJlNTdlNjUxZWI4YWI1MGU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaApAQCAtNzIsNyArNzIsNyBAQCBj
bGFzcyBTVkdQcm9wZXJ0eUFuaW1hdG9yIDogcHVibGljIFNWR0F0dHJpYnV0ZUFuaW1hdG9yIHsK
IAogICAgIFN0cmluZyBhZGp1c3RGb3JJbmhlcml0YW5jZShTVkdFbGVtZW50KiB0YXJnZXRFbGVt
ZW50LCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogICAgIHsKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IGluaGVy
aXQgPyBjb21wdXRlSW5oZXJpdGVkQ1NTUHJvcGVydHlWYWx1ZSh0YXJnZXRFbGVtZW50KSA6IHZh
bHVlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398192</attachid>
            <date>2020-05-01 09:50:27 -0700</date>
            <delta_ts>2020-05-01 09:50:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211264-20200501095024.patch</filename>
            <type>text/plain</type>
            <size>145543</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA1YWM5YzdiYmVlNjk1YTM2YWNiOTAw
NGExOTEzZGMwMDU1OTQ1MzguLjNjOTljMTIxMjk5ODIzNTA1Mjc2ZmM1ZjI5ZWU2ODAxYmU2Njhk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDUtMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkIC8gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQXRvbVN0cmluZyBoYXMgdGhyZWFkLWFm
ZmluaXR5LCBgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+YCBpcyBiYXNp
Y2FsbHkgb25seSBzYWZlIGZvciB0aGUgbWFpbi10aHJlYWQgdXNlLgorICAgICAgICBXZSBzaG91
bGQgZW5zdXJlIHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIG1haW4tdGhyZWFkLiBUbyBk
byB0aGF0LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkIGFu
ZAorICAgICAgICBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkLiBUaGV5IGFyZSBOZXZlckRl
c3Ryb3llZCBhbmQgTGF6eU5ldmVyRGVzdHJveWVkICsgbWFpbi10aHJlYWQgYXNzZXJ0aW9ucy4K
KworICAgICAgICAqIHd0Zi9Gb3J3YXJkLmg6CisgICAgICAgICogd3RmL05ldmVyRGVzdHJveWVk
Lmg6CisgICAgICAgIChXVEY6OkFueVRocmVhZHNBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6
CisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2Vzcyk6Cisg
ICAgICAgIChXVEY6Ok5ldmVyRGVzdHJveWVkOjpOZXZlckRlc3Ryb3llZCk6CisgICAgICAgIChX
VEY6Ok5ldmVyRGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6
OkxhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0KToKKyAgICAgICAgKFdURjo6TGF6eU5ldmVy
RGVzdHJveWVkOjpzdG9yYWdlUG9pbnRlciBjb25zdCk6CisgICAgICAgIChXVEY6Om1ha2VOZXZl
ckRlc3Ryb3llZCk6CisgICAgICAgICogd3RmL3RleHQvQXRvbVN0cmluZy5jcHA6CisgICAgICAg
ICogd3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIwLTA0LTMwICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBUcmlTdGF0ZSBzaG91bGQgYmUgYW4g
ZW51bSBjbGFzcyBhbmQgdXNlICJJbmRldGVybWluYXRlIiBpbnN0ZWFkIG9mICJNaXhlZCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhOGFjZDJjZDUzMjEyM2M5ZTQ0M2M1MTVlZTY0NTFiMmYwODQ1MjJkLi45ODJl
Yzk4ZTExMzEwYzJhOGE2ZmVlM2I1OTE3Nzc0MTU0ZDE1MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjYyIEBACisyMDIwLTA1LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW50cm9kdWNlIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZCAvIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gQWRkaW5nIGFzc2VydGlvbnMgYWRkaXRp
b25hbGx5LgorCisgICAgICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUGxheWJh
Y2tUYXJnZXRBdmFpbGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5
OjpjZW5jTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbml0RGF0YVJlZ2lzdHJ5OjprZXlpZHNO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkluaXREYXRhUmVnaXN0cnk6OndlYm1OYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdvcmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZvcmNlZE9ubHlLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFsd2F5c09uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjptYW51
YWxLZXl3b3JkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6a2luZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjb250ZW50SGludCBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibG9iS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjphcnJheWJ1ZmZl
cktleXdvcmQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojps
aXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGRvbS9Db25zdGFudFByb3BlcnR5
TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnN0YW50UHJvcGVydHlNYXA6Om5hbWVGb3JQ
cm9wZXJ0eSBjb25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKToKKyAgICAgICAgKiBk
b20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRD
U1NDb250ZW50VHlwZSk6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3JkLmNwcDoKKyAgICAg
ICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAgICAgKHByaW50TmFtZXNIZWFkZXJGaWxlKToK
KyAgICAgICAgKHByaW50TmFtZXNDcHBGaWxlKToKKyAgICAgICAgKiBodG1sL0F1dG9jYXBpdGFs
aXplLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvckF1dG9jYXBpdGFsaXplVHlwZSk6
CisgICAgICAgICogaHRtbC9BdXRvZmlsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0NvbnRh
Y3RUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvZmlsbERhdGE6OmNyZWF0ZUZyb21IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmFsbGJh
Y2tWYWx1ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9Db2xv
cklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQpOgor
ICAgICAgICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9y
bUtleUdlbmVyYXRvcjo6Zm9ybUtleSk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmll
d0xpbmsgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6
CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3VtbWFyeVNsb3ROYW1lKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVmFsaWREaXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjp0cnVl
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpmYWxzZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
cGxhaW50ZXh0T25seU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldEF1
dG9jb3JyZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ6OmF1dG9jb21wbGV0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6
OmxvYWRpbmdGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlIGNv
bnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVDZWxs
RWxlbWVudDo6c2NvcGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJv
bFR5cGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0aW9uU3RyaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVJbm5lclRleHRFbGVtZW50RWRp
dGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSW5wdXRNb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0TW9kZU5hbWVzOjpub25lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5h
bWVzOjp0ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0TW9kZU5hbWVzOjp0ZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dE1vZGVOYW1lczo6ZW1haWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6
Om51bWVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OmRlY2ltYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRNb2RlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgICogaHRt
bC9JbnB1dFR5cGVOYW1lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6
YnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpjaGVja2JveCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6Y29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlTmFtZXM6OmRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFt
ZXM6OmRhdGV0aW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpkYXRldGlt
ZWxvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjplbWFpbCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6ZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGVOYW1lczo6aGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVz
OjppbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6bW9udGgpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6Om51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGVOYW1lczo6cGFzc3dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
TmFtZXM6OnJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjpyYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6cmVzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlTmFtZXM6OnNlYXJjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGVOYW1lczo6c3VibWl0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZU5hbWVzOjp0ZWxl
cGhvbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlTmFtZXM6OnRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlTmFtZXM6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGVOYW1lczo6d2Vl
ayk6CisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGxheWJhY2tTdGF0ZVdhaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0
ZVBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tTdGF0ZUVuZGVkKToKKyAgICAg
ICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVSZXN1bHRCdXR0b25Qc2V1ZG9UeXBl
KToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVEYXRhTGlzdERyb3Bkb3duSW5kaWNh
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFp
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0Zp
bGxCdXR0b24pOgorICAgICAgICAqIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGV0YWlsc01hcmtlckNvbnRyb2w6OkRldGFpbHNNYXJrZXJDb250cm9sKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9n
cmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzQmFy
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFsdWVFbGVtZW50
OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50OjpyZXNvbHZlQ3Vz
dG9tU3R5bGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpUZXh0Q29udHJv
bFBsYWNlaG9sZGVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRN
YWM6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNS
b290RWxlbWVudE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQ6OnRyeUNyZWF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpkZXNjcmlwdGlvbktleXdvcmQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9UcmFjazo6bWFpbktleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6
OnRyYW5zbGF0aW9uS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpjb21t
ZW50YXJ5S2V5d29yZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpkZXNjcmlwdGlvbnNL
ZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmNoYXB0ZXJzS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjptZXRhZGF0YUtleXdvcmQpOgorICAgICAgICAoV2ViQ29yZTo6Zm9yY2VkS2V5d29y
ZCk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmN1ZUJveFNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2tDdWU6OnJlYnVpbGREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBLZXl3b3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29udGFpbmVyU2Nyb2xsaW5nQ2xh
c3MpOgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVDb250YWluZXJT
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb246OnRleHRUcmFja1Jl
Z2lvblNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWRlb1RyYWNrOjptYWluS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrOjpzaWduS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmNvbW1lbnRhcnlL
ZXl3b3JkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFt
ZSBjb25zdCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkQnlwYXNzQmFja0ZvcndhcmRDYWNoZSBj
b25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmlt
YXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50OjpldmVudE5hbWVBbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OmV2ZW50TmFtZUFsbCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25PY3RldFN0cmVhbSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UGxhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2tkTmFtZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1ldGFkYXRhVHlwZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzaW1pbGFyRm9udCk6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnN5c3RlbUZvbnRQYXJh
bWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUFscGhhOjplZmZlY3ROYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Z2V0Q3VzdG9tRmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpl
eHRyYWN0SFRUUFN0YXR1c1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Db21wbGV4TGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4TGluZUxheW91dDo6Y2hlY2tMaW5l
c0ZvclRleHRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Omh5cGhlblN0cmluZyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0
cmluZyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJrcyBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRlZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjppbmhlcml0c0Zyb21Qcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnR5cGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjptZWRpYSBjb25zdCk6CisgICAg
ICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1NNSUxFbGVtZW50OjpyZXN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxF
bGVtZW50OjpmaWxsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50Ojpy
ZXBlYXRDb3VudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9u
QWRkaXRpdmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRpb25Db2xvckZ1bmN0aW9uOjpjb2xvckZyb21TdHJpbmcpOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3Bl
cnR5QW5pbWF0b3I6OmFkanVzdEZvckluaGVyaXRhbmNlIGNvbnN0KToKKwogMjAyMC0wNS0wMSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046
IE1vdGlvbk1hcmsgMS4xIHJlZ3Jlc3NlZCBkdWUgdG8gcjI2MDAxNgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRm9yd2FyZC5oIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCmluZGV4IDZl
OTdkNWQ5ZWU5MDk2MGYxY2UzMmU2ODAzYmNmZmRlNDIyMDRjY2UuLmY3NmNhNDNjMmIzZWYzYjA0
NzJiODJjNTMxOGU1YWM5OGNiNDU1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zvcndh
cmQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKQEAgLTU0LDEyICs1NCwxNCBAQCBz
dHJ1Y3QgVmVjdG9yTWFsbG9jOwogdXNpbmcgVmVjdG9yTWFsbG9jID0gRmFzdE1hbGxvYzsKICNl
bmRpZgogCitzdHJ1Y3QgQW55VGhyZWFkc0FjY2Vzc1RyYWl0czsKK3N0cnVjdCBNYWluVGhyZWFk
QWNjZXNzVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIENvbXBsZXRpb25IYW5kbGVy
OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IER1bWJQdHJUcmFpdHM7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgRHVtYlZhbHVlVHJhaXRzOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNs
YXNzIEZ1bmN0aW9uOwotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIExhenlOZXZlckRlc3Ryb3ll
ZDsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBOZXZlckRlc3Ryb3llZDsKK3RlbXBsYXRlPHR5
cGVuYW1lLCB0eXBlbmFtZSA9IEFueVRocmVhZHNBY2Nlc3NUcmFpdHM+IGNsYXNzIExhenlOZXZl
ckRlc3Ryb3llZDsKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IEFueVRocmVhZHNBY2Nl
c3NUcmFpdHM+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IE9wdGlvblNldDsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBPcHRpb25hbDsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIFBhY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL05l
dmVyRGVzdHJveWVkLmggYi9Tb3VyY2UvV1RGL3d0Zi9OZXZlckRlc3Ryb3llZC5oCmluZGV4IGI5
YzkxNWE1MmI0YmUxOTJmYmRhMzAwZDIwYjkyZjY2MTZmYzQ3NDMuLmQ4MjQyZmU3ZTdjYTM5MGRk
ZDQwMjk3MjI1NGY1YmQxNDY0ODFmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL05ldmVy
RGVzdHJveWVkLmgKKysrIGIvU291cmNlL1dURi93dGYvTmV2ZXJEZXN0cm95ZWQuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAj
aW5jbHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiAvLyBOZXZlckRlc3Ryb3ll
ZCBpcyBhIHNtYXJ0LXBvaW50ZXItbGlrZSBjbGFzcyB0aGF0IGVuc3VyZXMgdGhhdCB0aGUgZGVz
dHJ1Y3RvcgpAQCAtNDIsMTggKzQzLDMzIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBOZXZlckRlc3Ryb3llZCB7CitzdHJ1Y3QgQW55VGhyZWFkc0Fj
Y2Vzc1RyYWl0cyB7CisgICAgc3RhdGljIHZvaWQgYXNzZXJ0QWNjZXNzKCkKKyAgICB7CisgICAg
fQorfTsKKworc3RydWN0IE1haW5UaHJlYWRBY2Nlc3NUcmFpdHMgeworICAgIHN0YXRpYyB2b2lk
IGFzc2VydEFjY2VzcygpCisgICAgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cz4g
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5ldmVyRGVz
dHJveWVkKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IE5ldmVyRGVzdHJveWVkKEFyZ3MmJi4uLiBhcmdz
KQogICAgIHsKKyAgICAgICAgQWNjZXNzVHJhaXRzOjphc3NlcnRBY2Nlc3MoKTsKICAgICAgICAg
TWF5YmVSZWxheDxUPihuZXcgKHN0b3JhZ2VQb2ludGVyKCkpIFQoc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKSk7CiAgICAgfQogCiAgICAgTmV2ZXJEZXN0cm95ZWQoTmV2ZXJEZXN0cm95ZWQm
JiBvdGhlcikKICAgICB7CisgICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAg
ICAgICAgIE1heWJlUmVsYXg8VD4obmV3IChzdG9yYWdlUG9pbnRlcigpKSBUKFdURk1vdmUoKm90
aGVyLnN0b3JhZ2VQb2ludGVyKCkpKSk7CiAgICAgfQogCkBAIC03MCw3ICs4NiwxMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBOZXZlckRlc3Ryb3llZCB7CiBwcml2YXRlOgogICAgIHVz
aW5nIFBvaW50ZXJUeXBlID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VD46OnR5cGUqOwog
Ci0gICAgUG9pbnRlclR5cGUgc3RvcmFnZVBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PFBvaW50ZXJUeXBlPihyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdlKSk7
IH0KKyAgICBQb2ludGVyVHlwZSBzdG9yYWdlUG9pbnRlcigpIGNvbnN0CisgICAgeworICAgICAg
ICBBY2Nlc3NUcmFpdHM6OmFzc2VydEFjY2VzcygpOworICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxQb2ludGVyVHlwZT4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBUKj4oJm1fc3RvcmFnZSkpOwor
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIGJvb2wgU2hvdWxkUmVsYXgg
PSBzdGQ6OmlzX2Jhc2Vfb2Y8UmVmQ291bnRlZEJhc2UsIFB0clR5cGU+Ojp2YWx1ZT4gc3RydWN0
IE1heWJlUmVsYXggewogICAgICAgICBleHBsaWNpdCBNYXliZVJlbGF4KFB0clR5cGUqKSB7IH0K
QEAgLTg0LDEyICsxMDQsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0
cm95ZWQgewogICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihUKSwgc3Rk
OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlPjo6dHlwZSBtX3N0b3JhZ2U7CiB9OwogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBOZXZlckRlc3Ryb3llZDxUPiBtYWtlTmV2ZXJEZXN0cm95ZWQoVCYmKTsK
K3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFjY2Vzc1RyYWl0cyA9IEFueVRocmVhZHNB
Y2Nlc3NUcmFpdHM+IE5ldmVyRGVzdHJveWVkPFQsIEFjY2Vzc1RyYWl0cz4gbWFrZU5ldmVyRGVz
dHJveWVkKFQmJik7CiAKIC8vIEZJWE1FOiBJdCdzIG1lc3N5IHRvIGhhdmUgdG8gcmVwZWF0IHRo
ZSB3aG9sZSBjbGFzcyBqdXN0IHRvIG1ha2UgdGhpcyAibGF6eSIgdmVyc2lvbi4KIC8vIFNob3Vs
ZCByZXZpc2l0IGNsaWVudHMgdG8gc2VlIGlmIHdlIHJlYWxseSBuZWVkIHRoaXMsIGFuZCBwZXJo
YXBzIHVzZSB0ZW1wbGF0ZXMgdG8KIC8vIHNoYXJlIG1vcmUgb2YgdGhlIGNvZGUgd2l0aCB0aGUg
bWFpbiBOZXZlckRlc3Ryb3llZCBhYm92ZS4KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExh
enlOZXZlckRlc3Ryb3llZCB7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBY2Nlc3NU
cmFpdHM+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTGF6eU5ldmVyRGVzdHJveWVkKTsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsK
IHB1YmxpYzoKQEAgLTk5LDYgKzExOSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExh
enlOZXZlckRlc3Ryb3llZCB7CiAgICAgdm9pZCBjb25zdHJ1Y3QoQXJncyYmLi4uIGFyZ3MpCiAg
ICAgewogICAgICAgICBBU1NFUlQoIW1faXNDb25zdHJ1Y3RlZCk7CisgICAgICAgIEFjY2Vzc1Ry
YWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgICAgICBtX2lz
Q29uc3RydWN0ZWQgPSB0cnVlOwpAQCAtMTI3LDYgKzE0OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZCB7CiAgICAgUG9pbnRlclR5cGUgc3RvcmFnZVBv
aW50ZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1faXNDb25zdHJ1Y3RlZCk7Cisg
ICAgICAgIEFjY2Vzc1RyYWl0czo6YXNzZXJ0QWNjZXNzKCk7CiAgICAgICAgIHJldHVybiBjb25z
dF9jYXN0PFBvaW50ZXJUeXBlPihyZWludGVycHJldF9jYXN0PGNvbnN0IFQqPigmbV9zdG9yYWdl
KSk7CiAgICAgfQogCkBAIC0xNDgsMTMgKzE3MCwyMyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBMYXp5TmV2ZXJEZXN0cm95ZWQgewogICAgIHR5cGVuYW1lIHN0ZDo6YWxpZ25lZF9zdG9y
YWdlPHNpemVvZihUKSwgc3RkOjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlPjo6dHlwZSBtX3N0b3Jh
Z2U7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgTmV2ZXJEZXN0cm95ZWQ8VD4g
bWFrZU5ldmVyRGVzdHJveWVkKFQmJiBhcmd1bWVudCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIEFjY2Vzc1RyYWl0cz4gaW5saW5lIE5ldmVyRGVzdHJveWVkPFQsIEFjY2Vzc1RyYWl0
cz4gbWFrZU5ldmVyRGVzdHJveWVkKFQmJiBhcmd1bWVudCkKIHsKICAgICByZXR1cm4gV1RGTW92
ZShhcmd1bWVudCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2luZyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQgPSBOZXZlckRlc3Ryb3llZDxULCBNYWluVGhyZWFkQWNjZXNzVHJhaXRz
PjsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3VzaW5nIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0
cm95ZWQgPSBMYXp5TmV2ZXJEZXN0cm95ZWQ8VCwgTWFpblRocmVhZEFjY2Vzc1RyYWl0cz47CisK
IH0gLy8gbmFtZXNwYWNlIFdURjsKIAogdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7CiB1
c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjptYWtlTmV2ZXJEZXN0cm95ZWQ7
Cit1c2luZyBXVEY6Ok1haW5UaHJlYWROZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6TWFpblRo
cmVhZExhenlOZXZlckRlc3Ryb3llZDsKK3VzaW5nIFdURjo6QW55VGhyZWFkc0FjY2Vzc1RyYWl0
czsKK3VzaW5nIFdURjo6TWFpblRocmVhZEFjY2Vzc1RyYWl0czsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21T
dHJpbmcuY3BwCmluZGV4IDcwNjhmNWZmYTQ4MmRiMDcwNTg1MWVjZjRkMmZkNTNhM2ZmNzRiZDEu
LjMzOWJhZTNiYWI1OTIzNjM4YzExMmQxYzQzMzA1YjY1ZTc0NzNjYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9BdG9tU3RyaW5nLmNwcApAQCAtMTMzLDExICsxMzMsMTEgQEAgdm9pZCBBdG9tU3RyaW5nOjpz
aG93KCkgY29uc3QKIAogI2VuZGlmCiAKLVdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0
cm95ZWQ8QXRvbVN0cmluZz4gbnVsbEF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklWQVRFIExhenlO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBlbXB0eUF0b21EYXRhOwotV1RGX0VYUE9SVF9QUklW
QVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7Ci1XVEZfRVhQ
T1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHhtbEF0b21EYXRhOwot
V1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4bWxuc0F0
b21EYXRhOworV1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBudWxsQXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7CitXVEZfRVhQT1JUX1BSSVZBVEUg
TWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdGFyQXRvbURh
dGE7CitXVEZfRVhQT1JUX1BSSVZBVEUgTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB4bWxBdG9tRGF0YTsKK1dURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFk
TGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7CiAKIHZv
aWQgQXRvbVN0cmluZzo6aW5pdCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0F0b21TdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDg4
YjRlYmFjMzI3MWJkM2ViM2MxNDEzZDVmNDgwYmEzZWJjYzIyZDQuLjIyM2RmNmFmMWZjMGYwNjI2
Y2ZjN2ZhN2IyYTMzZjc0YjRjMjA2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QXRvbVN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC0y
ODgsMTMgKzI4OCwxNSBAQCBpbmxpbmUgQXRvbVN0cmluZzo6QXRvbVN0cmluZyhOU1N0cmluZyAq
c3RyaW5nKQogCiAjZW5kaWYKIAorLy8gbnVsbEF0b20gYW5kIGVtcHR5QXRvbSBhcmUgc3BlY2lh
bCBBdG9tU3RyaW5nLiBUaGV5IGNhbiBiZSB1c2VkIGZyb20gYW55IHRocmVhZHMgc2luY2UgdGhl
aXIgU3RyaW5nSW1wbHMgYXJlIG5vdCBhY3R1YWxseSByZWdpc3RlcmVkIGludG8gQXRvbVN0cmlu
Z1RhYmxlLgorZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gbnVsbEF0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBM
YXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZW1wdHlBdG9tRGF0YTsKKwogLy8g
RGVmaW5lIGV4dGVybmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBjb21tb25seSB1c2VkIGF0
b20gc3RyaW5ncy4KIC8vIFRoZXNlIGFyZSBvbmx5IHVzYWJsZSBmcm9tIHRoZSBtYWluIHRocmVh
ZC4KLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IG51bGxBdG9tRGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IGVtcHR5QXRvbURhdGE7Ci1leHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzdGFyQXRvbURhdGE7Ci1leHRlcm4g
V1RGX0VYUE9SVF9QUklWQVRFIExhenlOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB4bWxBdG9t
RGF0YTsKLWV4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUgTGF6eU5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHhtbG5zQXRvbURhdGE7CitleHRlcm4gV1RGX0VYUE9SVF9QUklWQVRFIE1haW5UaHJl
YWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3RhckF0b21EYXRhOworZXh0
ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWluVGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHhtbEF0b21EYXRhOworZXh0ZXJuIFdURl9FWFBPUlRfUFJJVkFURSBNYWlu
VGhyZWFkTGF6eU5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHhtbG5zQXRvbURhdGE7
CiAKIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBudWxsQXRvbSgpIHsgcmV0dXJuIG51bGxBdG9t
RGF0YS5nZXQoKTsgfQogaW5saW5lIGNvbnN0IEF0b21TdHJpbmcmIGVtcHR5QXRvbSgpIHsgcmV0
dXJuIGVtcHR5QXRvbURhdGEuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUV2ZW50LmNwcAppbmRleCA1Yzg0Yzg1ZWM3NzFkZDU4Nzc5YjQzOTY1ODY1ODNjYmI5
ZTVjMGIxLi5iOWI2NmEyYjViOTVhNDYwMTUwNThhNTY1NWI2OGMyNGIwNzcyNTNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5
L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwCkBAIC0zNyw4ICszNyw4
IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJLaXRQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUV2ZW50KTsKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIHN0cmluZ0ZvclBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdmFpbGFibGVTdHJpbmcoImF2YWlsYWJsZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbVN0cmluZz4gbm90QXZhaWxhYmxlU3RyaW5nKCJub3QtYXZhaWxhYmxlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXZhaWxhYmxlU3RyaW5nKCJhdmFpbGFibGUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBub3RBdmFpbGFibGVTdHJpbmcoIm5vdC1hdmFp
bGFibGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4g
YXZhaWxhYmxlID8gYXZhaWxhYmxlU3RyaW5nIDogbm90QXZhaWxhYmxlU3RyaW5nOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKaW5kZXggN2M1NDZkYzYwMGIxMmM1NzZkZDA4Mjc5YWI3YzY2N2ZhNTVm
YjkxMy4uM2IyNWQwNmIxMjNhMWE1MWEwYTJhY2ZiNGY2NTZmOGQ5NGFkYjNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRh
UmVnaXN0cnkuY3BwCkBAIC0yNTgsMTkgKzI1OCwxOSBAQCB2b2lkIEluaXREYXRhUmVnaXN0cnk6
OnJlZ2lzdGVySW5pdERhdGFUeXBlKGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgSW5p
dAogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5OjpjZW5jTmFtZSgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiY2VuYyIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoImNlbmMi
KSB9OwogICAgIHJldHVybiBzaW5mOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJl
Z2lzdHJ5OjprZXlpZHNOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0
cmluZz4gc2luZiB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMiKSB9OworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2luZiB7IE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJrZXlpZHMiKSB9OwogICAgIHJldHVybiBzaW5mOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBJbml0RGF0YVJlZ2lzdHJ5Ojp3ZWJtTmFtZSgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJ
TkdfSU1QTCgid2VibSIpIH07CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIndlYm0iKSB9
OwogICAgIHJldHVybiBzaW5mOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAppbmRleCA2MGVhNmU3
ZDEwNTYzZWUxNzk0MGZjNTkzM2U4MzNlOWEwY2ZhZDFhLi5mOTgxZWNjYzI5NmQ3OGM4NzBkNzY4
OGEwNmEwY2ZmODJmNzc2MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAgLTQzLDI1ICs0Mywy
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhQ29udHJv
bHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gYXV0b21hdGljKCJhdXRvbWF0aWMiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBhdXRvbWF0aWMoImF1dG9tYXRpYyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXV0b21hdGljOwogfQogCiBjb25zdCBBdG9t
U3RyaW5nJiBNZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25seUtleXdvcmQoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3JjZWRPbmx5KCJmb3JjZWQt
b25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcmNlZE9ubHkoImZvcmNl
ZC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBm
b3JjZWRPbmx5OwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYWx3YXlzT25LZXl3b3Jk
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYWx3YXlz
T24oImFsd2F5cy1vbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsd2F5c09u
KCJhbHdheXMtb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGFsd2F5c09uOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgbWFudWFsS2V5d29y
ZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsd2F5
c09uKCJtYW51YWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHdheXNPbigi
bWFudWFsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBh
bHdheXNPbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggZDBiMmNiOWZkMGFhMWJkMWYyOWFjZWRj
NWI2MDkzOTc3NGExMWNiMC4uMDg1ZTRmZDZmYjgzMWU4NDI1NWE4MmEwMmVhOGYxNzA0MmY5ZmY0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xMDksOCArMTA5LDggQEAgTWVkaWFTdHJlYW1UcmFjazo6
fk1lZGlhU3RyZWFtVHJhY2soKQogCiBjb25zdCBBdG9tU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNr
OjpraW5kKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
YXVkaW9LaW5kKCJhdWRpbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmlkZW9LaW5kKCJ2aWRlbyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1ZGlvS2luZCgiYXVkaW8iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0tpbmQoInZpZGVvIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKG1fcHJpdmF0ZS0+dHlwZSgpID09IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQogICAgICAgICByZXR1cm4gYXVkaW9LaW5k
OwpAQCAtMTI5LDExICsxMjksMTEgQEAgY29uc3QgU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrOjps
YWJlbCgpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJpbmcmIE1lZGlhU3RyZWFtVHJhY2s6OmNvbnRl
bnRIaW50KCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gc3BlZWNoSGludCgic3BlZWNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtdXNpY0hp
bnQoIm11c2ljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXRhaWxIaW50KCJkZXRhaWwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRIaW50KCJ0ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtb3Rpb25IaW50KCJtb3Rpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBzcGVlY2hIaW50KCJzcGVlY2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBt
dXNpY0hpbnQoIm11c2ljIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGV0YWls
SGludCgiZGV0YWlsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGV4dEhpbnQo
InRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb3Rpb25IaW50KCJtb3Rp
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBzd2l0Y2ggKG1f
cHJpdmF0ZS0+Y29udGVudEhpbnQoKSkgewogICAgIGNhc2UgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OkhpbnRWYWx1ZTo6RW1wdHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDZhMGRmMDRmNTFmYmI5OGY5ZTI4
Mjk5MjBiYzVlZjAxM2JhZTljYWQuLjBiZTMxMmFmMGU2Y2FiY2Y3ZjAxNGRjMTk1NTdhZTE5MWI3
NGIyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWwuY3BwCkBAIC00MywxMyArNDMsMTMgQEAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKFJUQ0RhdGFDaGFubmVsKTsKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGJs
b2JLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gYmxv
YigiYmxvYiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJsb2IoImJsb2IiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGJsb2I7CiB9CiAK
IHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBhcnJheWJ1ZmZlcktleXdvcmQoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXlidWZmZXIi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXlidWZm
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFycmF5
YnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAwMmM3NTcwMGE4NWIzYzcyNTY2
OTc3YmEyZGJjMWUzYWY4MjkxNGI1Li4yNjJiMjljOWM1YmY1N2NiZTZhN2IwMDExNzZiMWVjZDY5
YjUyOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTM0MTAsNyArMzQxMCw3IEBAIGNvbnN0
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uU3RhdHVzKCkgY29u
c3QKIAogY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25S
ZWxldmFudCgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGRlZmF1bHRMaXZlUmVnaW9uUmVsZXZhbnQoImFkZGl0aW9ucyB0ZXh0IiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCgiYWRk
aXRpb25zIHRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29u
c3QgQXRvbVN0cmluZyYgcmVsZXZhbnQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9yZWxldmFudEF0dHIp
OwogCiAgICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9ucyB0ZXh0Ii4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db25zdGFudFByb3BlcnR5TWFwLmNwcAppbmRleCBmZDE0MmY3ZGVh
YjA3NDhlOTZhMTljNWIwZGFlZDkwNjI3MGQzMGIyLi5iZTVhZDQ4M2UwYzEzOTdiNWYyODljYTdk
YzMyYTI2ZTU5ZDZmODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29uc3RhbnRQ
cm9wZXJ0eU1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnN0YW50UHJvcGVydHlN
YXAuY3BwCkBAIC01MCwxNSArNTAsMTUgQEAgY29uc3QgQ29uc3RhbnRQcm9wZXJ0eU1hcDo6VmFs
dWVzJiBDb25zdGFudFByb3BlcnR5TWFwOjp2YWx1ZXMoKSBjb25zdAogCiBjb25zdCBBdG9tU3Ry
aW5nJiBDb25zdGFudFByb3BlcnR5TWFwOjpuYW1lRm9yUHJvcGVydHkoQ29uc3RhbnRQcm9wZXJ0
eSBwcm9wZXJ0eSkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gc2FmZUFyZWFJbnNldFRvcE5hbWUoInNhZmUtYXJlYS1pbnNldC10b3AiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IHNhZmVBcmVhSW5zZXRSaWdodE5hbWUoInNhZmUtYXJlYS1pbnNldC1yaWdodCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gc2FmZUFyZWFJbnNldEJvdHRvbU5hbWUoInNhZmUtYXJlYS1pbnNldC1i
b3R0b20iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRMZWZ0TmFtZSgic2FmZS1hcmVh
LWluc2V0LWxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5JbnNldFRvcE5hbWUoImZ1
bGxzY3JlZW4taW5zZXQtdG9wIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRMZWZ0
TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1sZWZ0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVu
SW5zZXRCb3R0b21OYW1lKCJmdWxsc2NyZWVuLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gZnVsbHNjcmVlbkluc2V0UmlnaHROYW1lKCJmdWxsc2NyZWVuLWluc2V0LXJpZ2h0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBmdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbk5hbWUoImZ1bGxzY3JlZW4t
YXV0by1oaWRlLWR1cmF0aW9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2Fm
ZUFyZWFJbnNldFRvcE5hbWUoInNhZmUtYXJlYS1pbnNldC10b3AiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0UmlnaHROYW1lKCJzYWZlLWFyZWEtaW5zZXQt
cmlnaHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzYWZlQXJlYUluc2V0Qm90
dG9tTmFtZSgic2FmZS1hcmVhLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHNhZmVBcmVhSW5zZXRMZWZ0TmFtZSgic2FmZS1hcmVhLWluc2V0LWxlZnQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRUb3BOYW1lKCJm
dWxsc2NyZWVuLWluc2V0LXRvcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1
bGxzY3JlZW5JbnNldExlZnROYW1lKCJmdWxsc2NyZWVuLWluc2V0LWxlZnQiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBmdWxsc2NyZWVuSW5zZXRCb3R0b21OYW1lKCJmdWxsc2Ny
ZWVuLWluc2V0LWJvdHRvbSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxz
Y3JlZW5JbnNldFJpZ2h0TmFtZSgiZnVsbHNjcmVlbi1pbnNldC1yaWdodCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uTmFtZSgiZnVs
bHNjcmVlbi1hdXRvLWhpZGUtZHVyYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAKICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CiAgICAgY2FzZSBDb25zdGFudFByb3Bl
cnR5OjpTYWZlQXJlYUluc2V0VG9wOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTg0NGJm
MjliYmY3YzVjMDEwYWNjYzk5YjY5ZDE3YmUyODUzYmY5YS4uZTljOTRmZjY0ODAxOTY1Nzc3MTIw
NGI1YzczNjMzMWE4YmU2ZTJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMjU5LDcg
KzEyNTksNyBAQCBDdXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXMgRG9jdW1lbnQ6OnZh
bGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUoY29uc3QgQXRvbQogI2lmIEVOQUJMRShNQVRITUwpCiAg
ICAgY29uc3QgYXV0byYgYW5ub3RhdGlvblhtbExvY2FsTmFtZSA9IE1hdGhNTE5hbWVzOjphbm5v
dGF0aW9uX3htbFRhZy0+bG9jYWxOYW1lKCk7CiAjZWxzZQotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbm5vdGF0aW9uWG1sTG9jYWxOYW1lKCJhbm5vdGF0aW9u
LXhtbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFubm90YXRpb25YbWxMb2Nh
bE5hbWUoImFubm90YXRpb24teG1sIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogI2VuZGlmCiAKICAgICBpZiAobG9jYWxOYW1lID09IFNWR05hbWVzOjpjb2xvcl9wcm9maWxl
VGFnLT5sb2NhbE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0
eWxlU2hlZXRPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93
bmVyLmNwcAppbmRleCBmYjI5NTkwZGYzMGU3NDY0ZmY5NzhhYzU5NTRhZTRkODhiYmZmZmZjLi5i
ZWQ5N2UxMGM2YTYyNTViNzI2ZDVlMjZjMDE5MmZlYWE5ZTc4NGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIGlu
bGluZSBib29sIGlzVmFsaWRDU1NDb250ZW50VHlwZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBB
dG9tU3RyaW5nJiB0eXBlKQogICAgIC8vIEZJWE1FOiBTaG91bGQgTUlNRSB0eXBlcyByZWFsbHkg
YmUgY2FzZSBzZW5zaXRpdmUgaW4gWE1MIGRvY3VtZW50cz8gRG9lc24ndCBzZWVtIGxpa2UgdGhl
eSBzaG91bGQsCiAgICAgLy8gZXZlbiB0aG91Z2ggb3RoZXIgdGhpbmdzIGFyZSBjYXNlIHNlbnNp
dGl2ZSBpbiB0aGF0IGNvbnRleHQuIE1JTUUgdHlwZXMgc2hvdWxkIG5ldmVyIGJlIGNhc2Ugc2Vu
c2l0aXZlLgogICAgIC8vIFdlIHNob3VsZCB2ZXJpZnkgdGhpcyBhbmQgdGhlbiByZW1vdmUgdGhl
IGlzSFRNTEVsZW1lbnQgY2hlY2sgaGVyZS4KLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gY3NzQ29udGVudFR5cGUoInRleHQvY3NzIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gY3NzQ29udGVudFR5cGUoInRleHQvY3NzIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBlbGVtZW50LmlzSFRNTEVsZW1lbnQo
KSA/IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHR5cGUsICJ0ZXh0L2NzcyIpIDogdHlw
ZSA9PSBjc3NDb250ZW50VHlwZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5j
cHAKaW5kZXggNTE5MzIwZDQ2OTkxYzE0YjM3Mjc4MWFjY2VhYzc0OTAzYzA4MmExOC4uZTk2NGVm
MzA0ZTBiNzA2MjUyNDdkOWZhMWZmNzQ4ZjljYTAxYjY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0
YXRpb25SZWNvcmQuY3BwCkBAIC0xNzQsMTkgKzE3NCwxOSBAQCBjbGFzcyBNdXRhdGlvblJlY29y
ZFdpdGhOdWxsT2xkVmFsdWUgZmluYWwgOiBwdWJsaWMgTXV0YXRpb25SZWNvcmQgewogCiBjb25z
dCBBdG9tU3RyaW5nJiBDaGlsZExpc3RSZWNvcmQ6OnR5cGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBjaGlsZExpc3QoImNoaWxkTGlzdCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGNoaWxkTGlzdCgiY2hpbGRMaXN0IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBjaGlsZExpc3Q7CiB9CiAKIGNvbnN0
IEF0b21TdHJpbmcmIEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhdHRyaWJ1dGVzKCJhdHRyaWJ1dGVzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYXR0cmlidXRlcygiYXR0cmlidXRlcyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gYXR0cmlidXRlczsKIH0KIAog
Y29uc3QgQXRvbVN0cmluZyYgQ2hhcmFjdGVyRGF0YVJlY29yZDo6dHlwZSgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNoYXJhY3RlckRhdGEoImNoYXJhY3RlckRh
dGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjaGFyYWN0ZXJEYXRhKCJjaGFy
YWN0ZXJEYXRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVy
biBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDcwNDFm
MTIxNzFkZTAzZTk1MGE4ODgyN2Y3ZmQxMWY5ZDhkNzI1ZmEuLmI1Mzg5MjY1YmFhNmQ0NTkwM2Mx
NTk3ZjY1NGU4ZDVlZWU0M2ZlZWUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtl
X25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0xMTUs
NyArMTE1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+CiBFTkQKIAotICAg
IHByaW50TWFjcm9zKCRGLCAiZXh0ZXJuIExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0
b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CisgICAgcHJpbnRNYWNyb3MoJEYsICJleHRl
cm4gTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+Iiwg
IiIsIFwlcGFyYW1ldGVycyk7CiAgICAgcHJpbnQgRiAiI2VuZGlmXG5cbiI7CiAKICAgICBwcmlu
dEluaXQoJEYsIDEpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIEVORAogCiAgICAgcHJpbnQgRiBTdGF0
aWNTdHJpbmc6OkdlbmVyYXRlU3RyaW5ncyhcJXBhcmFtZXRlcnMpOwogCi0gICAgcHJpbnRNYWNy
b3MoJEYsICJMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiIsICIiLCBc
JXBhcmFtZXRlcnMpOworICAgIHByaW50TWFjcm9zKCRGLCAiTWFpblRocmVhZExhenlOZXZlckRl
c3Ryb3llZDxjb25zdCBXVEY6OkF0b21TdHJpbmc+IiwgIiIsIFwlcGFyYW1ldGVycyk7CiAKICAg
ICBwcmludEluaXQoJEYsIDApOwogCkBAIC03MjIsNyArNzIyLDcgQEAgRU5ECiAgICAgbXkgJGxv
d2VyY2FzZU5hbWVzcGFjZVByZWZpeCA9IGxjKCRwYXJhbWV0ZXJze25hbWVzcGFjZVByZWZpeH0p
OwogCiAgICAgcHJpbnQgRiAiLy8gTmFtZXNwYWNlXG4iOwotICAgIHByaW50IEYgIldFQkNPUkVf
RVhQT1JUIGV4dGVybiBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgV1RGOjpBdG9tU3RyaW5nPiAk
e2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CisgICAgcHJpbnQg
RiAiV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIE1haW5UaHJlYWRMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgV1RGOjpBdG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VV
Ukk7XG5cbiI7CiAKICAgICBpZiAoa2V5cyAlYWxsVGFncykgewogICAgICAgICBwcmludCBGICIv
LyBUYWdzXG4iOwpAQCAtNzYwLDcgKzc2MCw3IEBAIHN1YiBwcmludE5hbWVzQ3BwRmlsZQogICAg
IAogICAgIG15ICRsb3dlcmNhc2VOYW1lc3BhY2VQcmVmaXggPSBsYygkcGFyYW1ldGVyc3tuYW1l
c3BhY2VQcmVmaXh9KTsKIAotICAgIHByaW50IEYgIkxhenlOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7
CisgICAgcHJpbnQgRiAiTWFpblRocmVhZExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiAke2xvd2VyY2FzZU5hbWVzcGFjZVByZWZpeH1OYW1lc3BhY2VVUkk7XG5cbiI7CiAKICAg
ICBwcmludCBGIFN0YXRpY1N0cmluZzo6R2VuZXJhdGVTdHJpbmdzKFwlYWxsU3RyaW5ncyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2NhcGl0YWxpemUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKaW5kZXggM2EwZjkxMTk5YjZiYjdi
ODQ3Y2M1ODUwNjE4ODMzZGI3ZTAxZWE3NS4uNzM1YmUwZmE3NTcyOGFkNGRiZjEyZjYyNmVhOGNj
YzljNmNlN2IxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvY2FwaXRhbGl6ZS5jcHAKQEAgLTU3
LDE5ICs1NywxOSBAQCBjb25zdCBBdG9tU3RyaW5nJiBzdHJpbmdGb3JBdXRvY2FwaXRhbGl6ZVR5
cGUoQXV0b2NhcGl0YWxpemVUeXBlIHR5cGUpCiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVE
ZWZhdWx0OgogICAgICAgICByZXR1cm4gbnVsbEF0b20oKTsKICAgICBjYXNlIEF1dG9jYXBpdGFs
aXplVHlwZU5vbmU6IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHZhbHVlTm9uZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB2YWx1ZU5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJldHVybiB2YWx1ZU5vbmU7CiAgICAgfQogICAgIGNhc2UgQXV0b2NhcGl0YWxp
emVUeXBlU2VudGVuY2VzOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB2YWx1ZVNlbnRlbmNlcygic2VudGVuY2VzIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlU2VudGVuY2VzKCJzZW50ZW5jZXMiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZVNlbnRlbmNlczsK
ICAgICB9CiAgICAgY2FzZSBBdXRvY2FwaXRhbGl6ZVR5cGVXb3JkczogewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVXb3Jkcygid29yZHMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdmFsdWVXb3Jkcygid29yZHMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZVdv
cmRzOwogICAgIH0KICAgICBjYXNlIEF1dG9jYXBpdGFsaXplVHlwZUFsbENoYXJhY3RlcnM6IHsK
LSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHZhbHVlQWxs
Q2hhcmFjdGVycygiY2hhcmFjdGVycyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiB2YWx1ZUFsbENoYXJhY3RlcnMoImNoYXJhY3RlcnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJldHVybiB2YWx1ZUFsbENoYXJhY3RlcnM7CiAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXV0b2ZpbGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5jcHAKaW5kZXggYTBhN2Q3N2I1YzkyNWYwMGQw
MTE1ODg1ZWQ4ZWI4YzA0MWE4MTRmNC4uNjczNWUyNjlmMjVhZWY3YmMwOTEyNzU1MzkyMTQ4MWNk
ZTNlOGViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdXRvZmlsbC5jcHAKQEAgLTEzMiwxMSArMTMyLDExIEBA
IEF1dG9maWxsRmllbGROYW1lIHRvQXV0b2ZpbGxGaWVsZE5hbWUoY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbnRhY3RUb2tlbihjb25zdCBBdG9tU3Ry
aW5nJiB0b2tlbikKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaG9t
ZSgiaG9tZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gd29yaygid29yayIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
bW9iaWxlKCJtb2JpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZheCgiZmF4IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBob21l
KCJob21lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd29yaygid29yayIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vYmlsZSgibW9iaWxlIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmF4KCJmYXgiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBwYWdlcigicGFnZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAKICAgICByZXR1cm4gdG9rZW4gPT0gaG9tZSB8fCB0b2tlbiA9PSB3b3JrIHx8IHRva2Vu
ID09IG1vYmlsZSB8fCB0b2tlbiA9PSBmYXggfHwgdG9rZW4gPT0gcGFnZXI7CiB9CkBAIC0xNjEs
OCArMTYxLDggQEAgc3RhdGljIHVuc2lnbmVkIG1heFRva2Vuc0ZvckF1dG9maWxsRmllbGRDYXRl
Z29yeShBdXRvZmlsbENhdGVnb3J5IGNhdGVnb3J5KQogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNwcm9jZXNzaW5nLW1vZGVsLTMKIEF1dG9maWxs
RGF0YSBBdXRvZmlsbERhdGE6OmNyZWF0ZUZyb21IVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gb2ZmKCJvZmYiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbigib24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBvZmYoIm9mZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKIAogICAgIC8vIExhYmVsOiBEZWZhdWx0CiAgICAgLy8gMjYuIExldCB0aGUgZWxlbWVu
dCdzIElETC1leHBvc2VkIGF1dG9maWxsIHZhbHVlIGJlIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBp
dHMgYXV0b2ZpbGwgaGludCBzZXQgYW5kIGF1dG9maWxsIHNjb3BlIGJlIGVtcHR5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggZWJiN2Qy
YThiMDAzZjQ0ZTQ4MWVmYjAyNjg2Njk5ZjgzNmU2MDVhMy4uYTk0OTk1NmU5MzMyMmUwNmM0ZDNk
NGI4ZDgxMDdkNjFhNDFjOGRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwCkBAIC05OSw3ICs5OSw3IEBAIGJvb2wgQmFzZUNoZWNrYWJsZUlu
cHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogCiBTdHJpbmcg
QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6ZmFsbGJhY2tWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKICAgICByZXR1cm4gb24uZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAK
aW5kZXggN2IxMDYxZmUxYTFmNDkxMzJhZGY0M2Q1OWNiODc1ZWRiZjdmZTYxMC4uNTQyMWZkYjRi
ZjZiODFkZTlmNTRlMWIyMTY2NWE5NzViZDNhMzMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAK
QEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiAKIHZvaWQgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiB2YWx1ZUNvbnRhaW5lclBzZXVkbygiLXdlYmtp
dC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
dmFsdWVDb250YWluZXJQc2V1ZG8oIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIEFTU0VSVChlbGVtZW50KCkpOwog
ICAgIGF1dG8gdmFsdWVDb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4
IDllMmYwNGM0MDAwNTY1NzlkNTRjNDUyNDY4Y2EyZGM4MWFiMWU2NzIuLmQ0Yzg1OGEzZjkyMDE1
YjZkMzhlNTQwYmM2YzY1OWUwMzY5ZjNkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCkBAIC0xNDMsOSArMTQzLDggQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1l
bnQoKS0+c2hhZG93Um9vdCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaE5hbWUoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaFdyYXBwZXJOYW1lKCItd2Vi
a2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRDb2xvclN3YXRjaE5hbWUoIi13
ZWJraXQtY29sb3Itc3dhdGNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0Q29sb3JTd2F0Y2hXcmFwcGVyTmFtZSgiLXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBhdXRvIHdyYXBwZXJFbGVtZW50ID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAppbmRleCBhOGVkYzk5ZjBiN2Q5NWZkYjZlM2EyNTM1OWJiODdkYzI4MWNkZTA2
Li4zZTJmOWJlYWYwMGQyNTg2MDQzNmI3YjYwOGJmZTlmYjIzMTk1YmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTg5LDkgKzg5LDggQEAgUmVmPFVwbG9hZEJ1dHRv
bkVsZW1lbnQ+IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKERvY3VtZW50
JiBkb2N1bWUKIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1dFRhZywgZG9jdW1lbnQs
IDAsIGZhbHNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdEZpbGVV
cGxvYWRCdXR0b25OYW1lKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9u
TmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0Rmls
ZVVwbG9hZEJ1dHRvbk5hbWUoIi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFR5cGUoYnV0dG9uTmFtZSk7CiAgICAg
c2V0UHNldWRvKHdlYmtpdEZpbGVVcGxvYWRCdXR0b25OYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggNzlkYjM0MWUxYzk1NjVmMWQwZjkxM2QyYzdjN2Qz
YzQ2YjI2Y2Y1Yi4uYzdhNzA5YTBhMjQxMjQ0M2Q0M2YxN2Y2ZmE1ZjMxMmQ5OWIwYTNjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBB
dG9tU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZSYgY29udAogewogICAgIGF1dG8gZm9ybSA9IG1ha2VSZWZQdHIob3du
ZXJGb3JtRm9yU3RhdGUoY29udHJvbCkpOwogICAgIGlmICghZm9ybSkgewotICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZm9ybUtleUZvck5vT3duZXIoIk5vIG93bmVy
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZvcm1LZXlGb3JOb093bmVy
KCJObyBvd25lciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAg
cmV0dXJuIGZvcm1LZXlGb3JOb093bmVyOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAppbmRleCAwMDlmNTU0NzhkM2E2ZTg2MTk4OGU2YmJmMjVjZTQw
YjIxMzhjY2JjLi42ZmM5YjQ3ZmRiMTJmNjhkNmNmNGMxNWE2OTAzMTNlNzViNzIzYjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMjUzLDkgKzI1Myw5
IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAg
fSBlbHNlIGlmIChuYW1lID09IHJlbEF0dHIpIHsKICAgICAgICAgLy8gVXBkYXRlIEhUTUxBbmNo
b3JFbGVtZW50OjpyZWxMaXN0KCkgaWYgbW9yZSByZWwgYXR0cmlidXRlcyB2YWx1ZXMgYXJlIHN1
cHBvcnRlZC4KLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5vUmVm
ZXJyZXIoIm5vcmVmZXJyZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBub09wZW5lcigibm9vcGVu
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvcGVuZXIoIm9wZW5lciIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBub1JlZmVycmVyKCJub3JlZmVycmVyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vT3BlbmVyKCJub29wZW5lciIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuZXIoIm9wZW5lciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICAgICAgY29uc3QgYm9vbCBzaG91bGRGb2xkQ2Fz
ZSA9IHRydWU7CiAgICAgICAgIFNwYWNlU3BsaXRTdHJpbmcgcmVsVmFsdWUodmFsdWUsIHNob3Vs
ZEZvbGRDYXNlKTsKICAgICAgICAgaWYgKHJlbFZhbHVlLmNvbnRhaW5zKG5vUmVmZXJyZXIpKQpA
QCAtMzgxLDcgKzM4MSw3IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmll
d0xpbmsoKSBjb25zdAogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zeXN0ZW1QcmV2aWV3RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtUHJldmlld1JlbFZh
bHVlKCJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVByZXZpZXdS
ZWxWYWx1ZSgiYXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBp
ZiAoIXJlbExpc3QoKS5jb250YWlucyhzeXN0ZW1QcmV2aWV3UmVsVmFsdWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmlu
ZGV4IDcxZmUxYTBiNzg1OGNmMGYzMDkyNmY5MGY3NGZmNzc0ZmY1N2ZlMTguLjQyYTI5Y2M1Nzg4
YzM5YTNjNjQ2M2VjNGIwMTM2ODJkYzdhZGFmNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC03NCwxNSArNzQsMTUgQEAgY29uc3QgQXRvbVN0cmluZyYg
SFRNTEJ1dHRvbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJtaXQoInN1Ym1pdCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VibWl0KCJzdWJtaXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gc3VibWl0Owog
ICAgICAgICB9CiAgICAgICAgIGNhc2UgQlVUVE9OOiB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0dG9uKCJidXR0b24iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbigiYnV0dG9uIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbjsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIFJFU0VUOiB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gcmVzZXQoInJlc2V0IiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByZXNldCgicmVzZXQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzZXQ7CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKaW5kZXgg
NjBkZDFmYjI1MjAzODYwZDNkOTJhN2E1YWNiMzMxYzJhYjA0YjU5MS4uMDdjYjE2NGFlZTFhZTA4
MTZiY2QxNTY0NDM0MzhkZTBlZjU2OTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgRGV0YWlsRXZlbnRTZW5k
ZXImIGRldGFpbFRvZ2dsZUV2ZW50U2VuZGVyKCkKIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IHN1bW1hcnlTbG90TmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJp
bmc+IHN1bW1hcnlTbG90KCJzdW1tYXJ5U2xvdCIpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtbWFyeVNsb3QoInN1bW1hcnlTbG90Iik7
CiAgICAgcmV0dXJuIHN1bW1hcnlTbG90OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCmluZGV4IDdhNmE2ZmUzZTkxNGU4NWI5ODkzZDE2OTY0MjczZDZiMmM1YmE5NjMuLjViN2Y5
YWYzODYxMTZkYWRiNmYwNTNjYjg0MGU4NzU3ODY1NGM0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCkBAIC01MDUsOSArNTA1LDkgQEAgc3RhdGljIFJlZjxEb2N1bWVudEZyYWdt
ZW50PiB0ZXh0VG9GcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGUK
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI2xpbWl0ZWQtdG8tb25seS1rbm93bi12
YWx1ZXMKIHN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgdG9WYWxpZERpclZhbHVlKGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9t
U3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBydGxWYWx1ZSgicnRsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBhdXRvVmFsdWUoImF1dG8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBsdHJWYWx1ZSgibHRyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcnRsVmFsdWUoInJ0bCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGF1dG9W
YWx1ZSgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJsdHIiKSkKICAgICAgICAgcmV0
dXJuIGx0clZhbHVlOwogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZSwgInJ0bCIpKQpAQCAtNjYyLDIyICs2NjIsMTkgQEAgU3RyaW5nIEhUTUxFbGVtZW50Ojpjb250
ZW50RWRpdGFibGUoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgdHJ1ZU5hbWUo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cnVlVmFs
dWUoInRydWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHRydWVWYWx1ZSgidHJ1ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICByZXR1cm4gdHJ1ZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMgY29u
c3QgQXRvbVN0cmluZyYgZmFsc2VOYW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gZmFsc2VWYWx1ZSgiZmFsc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZhbHNlVmFsdWUoImZh
bHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBmYWxz
ZVZhbHVlLmdldCgpOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgcGxhaW50ZXh0T25s
eU5hbWUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBw
bGFpbnRleHRPbmx5VmFsdWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFpbnRleHRPbmx5VmFs
dWUoInBsYWludGV4dC1vbmx5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBwbGFpbnRleHRPbmx5VmFsdWUuZ2V0KCk7CiB9CiAKQEAgLTExMTcsOSArMTEx
NCw4IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OnNob3VsZEF1dG9jb3JyZWN0KCkgY29uc3QKIAogdm9p
ZCBIVE1MRWxlbWVudDo6c2V0QXV0b2NvcnJlY3QoYm9vbCBhdXRvY29ycmVjdCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb25OYW1lKCJvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvbk5hbWUoIm9uIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb2ZmTmFtZSgib2ZmIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oYXV0b2NvcnJlY3RBdHRyLCBhdXRvY29ycmVjdCA/IG9uTmFtZS5nZXQoKSA6IG9mZk5hbWUu
Z2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNw
cAppbmRleCA1MWFiMDE4Nzk4MDQ4N2IzYWZkNGU1MzVlNmFmYzVjYWUwZDI3ZmUyLi42MjE4NDBj
OTY4MjJmZjBhNmE4Y2M2ODU0YjY0YWZlZDVkNDQ2Yzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTE1NCw3ICsxNTQsNyBAQCBib29sIEhUTUxG
aWVsZFNldEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogCiBjb25zdCBBdG9tU3RyaW5n
JiBIVE1MRmllbGRTZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNldCgiZmllbGRzZXQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWVsZHNldCgiZmllbGRzZXQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGZpZWxkc2V0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggNjIwZDJjNDIx
YTIxMjRiYjkyYTJhODRhNGZhMDhhY2UzMWVjZWQ2Zi4uNjY1YWNlNDdlNzllMTQzYTFkMDY1MzU5
ODczN2NlNDA3YTBhMjBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNw
cApAQCAtOTA2LDggKzkwNiw4IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzZXRBdXRvY29tcGxl
dGUoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxGb3Jt
RWxlbWVudDo6YXV0b2NvbXBsZXRlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gb24oIm9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBvZmYoIm9mZiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9uKCJvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG9mZigib2ZmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogCiAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhdXRvY29tcGxldGVBdHRyKSwgIm9mZiIpID8gb2ZmIDogb247CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBjYTAwNjM5Y2ViM2I4
ZDQ3Y2EwYmRjODA5MmI2ZmQ5M2Q2M2VmMjI0Li44NTRiNmJmNzRjODM1YmJiMjhiZTIwNWQ4MGFi
MzAwNDM4MWUzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAK
QEAgLTkwMyw4ICs5MDMsOCBAQCBzaXplX3QgSFRNTEltYWdlRWxlbWVudDo6cGVuZGluZ0RlY29k
ZVByb21pc2VzQ291bnRGb3JUZXN0aW5nKCkgY29uc3QKIAogY29uc3QgQXRvbVN0cmluZyYgSFRN
TEltYWdlRWxlbWVudDo6bG9hZGluZ0ZvckJpbmRpbmdzKCkgY29uc3QKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWFnZXIoImVhZ2VyIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBsYXp5KCJsYXp5IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWFnZXIoImVh
Z2VyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbGF6eSgibGF6eSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvJiBhdHRyaWJ1dGVWYWx1ZSA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpsb2FkaW5nQXR0cik7
CiAgICAgcmV0dXJuIGhhc0xhenlMb2FkYWJsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYnV0ZVZhbHVl
KSA/IGxhenkgOiBlYWdlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHAKaW5kZXggNzgwYjc5MTkzZDk4NzYzMmI1OTJjOWIyNGQ4NTgwYjRlYzZhOGU0MC4uMTY1
MTBjZjc3Y2VlMzk1MDdlZTA1ZDBkNzI0MjBlZjZhYThiNzg3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgY2xhc3MgS2V5Z2Vu
U2VsZWN0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MU2VsZWN0RWxlbWVudCB7CiAgICAgS2V5
Z2VuU2VsZWN0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogSFRNTFNlbGVj
dEVsZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVudCwgMCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBwc2V1ZG9JZCgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBzZXVkb0lkKCItd2Via2l0
LWtleWdlbi1zZWxlY3QiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
ICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogCkBAIC0xMzAsNyArMTMwLDcgQEAgYm9v
bCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmIGZvcm1EYXRh
LCBib29sKQogCiBjb25zdCBBdG9tU3RyaW5nJiBIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4ga2V5Z2VuKCJrZXlnZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBr
ZXlnZW4oImtleWdlbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4ga2V5Z2VuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcAppbmRleCA5ZmU5ZTE0YjU2NTE1OTA2OTlmMDlhOTU1YzZjYjYyNDMyYmVkNmYwLi45
M2E2ZjRjY2Y1M2U0YjMwZDNkMjk5NWU0ZWFlNDMzZjM4ZTc5NDE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBI
VE1MT3B0R3JvdXBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJp
bmcmIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wdGdyb3VwKCJvcHRncm91
cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wdGdyb3VwKCJvcHRncm91cCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gb3B0Z3JvdXA7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggNTZi
NzIwNmFlM2JlOGYxMGE4ODE0YWU5YWZhYzYyYmZlYjU2MDlhYy4uMzYwNjY1YjcyODgwMTY4YjFm
ZDU5MDU2NWJkMjc0YzhjOWZiYWUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPEhUTUxPdXRwdXRFbGVtZW50PiBIVE1M
T3V0cHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEQKIAog
Y29uc3QgQXRvbVN0cmluZyYgSFRNTE91dHB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG91dHB1
dCgib3V0cHV0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3V0cHV0KCJvdXRw
dXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIG91dHB1
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKaW5kZXggN2YwMzU0ZjVjODM5ZjQ1YzVhMmE2Y2M2ZDU3NTFkNGRjZDdiYjQ0Yi4uMWRiZDQ1
NDFiZjMxNjA2ZWU0OTk2ZDAwMDMyNTFhYmUwM2I1ZDIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC00MjIsNyArNDIyLDcgQEAgdm9p
ZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRv
d1Jvb3QmIHJvb3QpCiAKIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFydE9mU25hcHNo
b3RPdmVybGF5KGNvbnN0IEV2ZW50VGFyZ2V0KiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNlbGVjdG9yKCIuc25hcHNob3Qtb3ZlcmxheSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNlbGVjdG9yKCIuc25hcHNob3Qtb3Zl
cmxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBhdXRvIHNoYWRv
dyA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICBpZiAoIXNoYWRvdykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRl
eCBlZTQzNzM2NjcyYmVkMjNiNDc5ZjFhMzRkMjI3MDQ3MTc0ZjFlOWViLi4zMTMzZDAzMTAxNzI0
NGEzY2JiNmFiZTNhZmMzM2I2ZTQ4OGRkNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcApAQCAtMTAwLDggKzEwMCw4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2Ugc3R5bGVDaGFuZ2UpCiAKIGNvbnN0IEF0
b21TdHJpbmcmIEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzZWxlY3RNdWx0aXBs
ZSgic2VsZWN0LW11bHRpcGxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzZWxlY3RPbmUoInNl
bGVjdC1vbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzZWxlY3RNdWx0aXBs
ZSgic2VsZWN0LW11bHRpcGxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2Vs
ZWN0T25lKCJzZWxlY3Qtb25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIHJldHVybiBtX211bHRpcGxlID8gc2VsZWN0TXVsdGlwbGUgOiBzZWxlY3RPbmU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAKaW5kZXggYTYw
MDM4ZmU5NGYyOThiMDhlYTRhYjZlZGFjZDdkMTU1N2FhODc1NS4uYzA2YTNlNTMzMzgzYTFkNTIx
YzNiNjlhZjJjNWZiYjJmM2RkNGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDZWxsRWxlbWVudC5jcHAKQEAgLTE2OSwxMCArMTY5LDEwIEBAIHZvaWQgSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQ6OnNldFJvd1NwYW5Gb3JCaW5kaW5ncyh1bnNpZ25lZCBuKQogY29uc3QgQXRvbVN0
cmluZyYgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OnNjb3BlKCkgY29uc3QKIHsKICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90YWJsZXMuaHRtbCNhdHRyLXRoLXNj
b3BlCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHJvdygicm93
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2woImNvbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gcm93Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjb2xncm91cCgi
Y29sZ3JvdXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiByb3coInJvdyIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNvbCgiY29sIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gcm93Z3JvdXAoInJvd2dyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gY29sZ3JvdXAoImNvbGdyb3VwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c2NvcGVBdHRyKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggZTE5NTA0YmQ5Yjg3MGI2
NjgzM2RjYWIyZmM1NTJmNjE0NmYzMTA0Yi4uYTg5ODgzZmFkMzBkOTc5ZmVlNmE4YWQzMzQyYzhk
MmJiNTM0OTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpkaWRBZGRV
c2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHJvb3QpCiAKIGNvbnN0IEF0b21TdHJpbmcm
IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVhKCJ0ZXh0YXJlYSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHRleHRhcmVhKCJ0ZXh0YXJlYSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gdGV4dGFyZWE7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKaW5kZXggMzg4ZWNiOGIwMWEwZmM3NzE3NjEyNzA5NDc4OTc1NjRhNjRjOWVhNi4uM2Rj
NDYzYmI3ZGMyNmUzZjBiN2U2ZGUyODM5ZWRmM2VhNGYxZmM3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM5Nyw5ICsz
OTcsOSBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNvbXB1dGVTZWxlY3Rpb25F
bmQoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgZGlyZWN0aW9uU3RyaW5nKFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGZvcndhcmQoImZvcndhcmQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJhY2t3YXJk
KCJiYWNrd2FyZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmb3J3YXJkKCJmb3J3YXJkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYmFja3dhcmQoImJhY2t3YXJkIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
ICAgICBjYXNlIFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOgpAQCAtNTM1LDkgKzUzNSw4IEBAIGJv
b2wgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxl
KCkgY29uc3QKIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZUlubmVyVGV4
dEVsZW1lbnRFZGl0YWJpbGl0eSgpCiB7CiAgICAgaWYgKGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJU
ZXh0RWxlbWVudCgpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBwbGFpblRleHRPbmx5TmFtZSgicGxhaW50ZXh0LW9ubHkiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBmYWxzZU5hbWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBsYWluVGV4dE9u
bHlOYW1lKCJwbGFpbnRleHQtb25seSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBmYWxzZU5hbWUoImZhbHNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwogICAgICAgICBjb25zdCBhdXRvJiB2YWx1ZSA9IGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxl
KCkgPyBwbGFpblRleHRPbmx5TmFtZS5nZXQoKSA6IGZhbHNlTmFtZS5nZXQoKTsKICAgICAgICAg
aW5uZXJUZXh0LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnRlbnRlZGl0
YWJsZUF0dHIsIHZhbHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0TW9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0TW9kZS5jcHAKaW5kZXgg
YTIwZWFjY2ZmOWM2ZDA1NzY5Yjk4ZDY4YzczZjVhZmMxYjliZTZiZS4uMzQ5ZDg1YjU2MmU3YmI5
YzVhZGZlZDUyNzExZjUzMDVjNDdkZTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dE1vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRNb2RlLmNwcApA
QCAtODIsNDkgKzgyLDQ5IEBAIG5hbWVzcGFjZSBJbnB1dE1vZGVOYW1lcyB7CiAKIGNvbnN0IEF0
b21TdHJpbmcmIG5vbmUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBtb2RlKCJub25lIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgibm9u
ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsK
IH0KIAogY29uc3QgQXRvbVN0cmluZyYgdGV4dCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IG1vZGUoInRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBtb2RlKCJ0ZXh0IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHJldHVybiBtb2RlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiB0ZWwoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJ0ZWwiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBtb2RlKCJ0ZWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHVybCgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG1vZGUoInVybCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoInVybCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgZW1haWwoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2Rl
KCJlbWFpbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vZGUoImVtYWlsIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBtb2RlOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBudW1lcmljKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbW9kZSgibnVtZXJpYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG1vZGUoIm51bWVyaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG1vZGU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRlY2ltYWwoKQogewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtb2RlKCJkZWNpbWFsIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgiZGVjaW1hbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbW9kZTsKIH0KIAogY29uc3QgQXRv
bVN0cmluZyYgc2VhcmNoKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmlu
Zz4gbW9kZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbW9kZSgi
c2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBt
b2RlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5hbWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCmluZGV4IGE4YTZl
NzlkY2M2OGIyOTZiZmQ4NzE5N2NjZjRiNDZlOWE3ZjllZTQuLjNlMjZkNzBiNmYwZWM3ZWVmMWQ0
OTlhMTlkNGEwYmZhOWQyMjljNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlTmFtZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMu
Y3BwCkBAIC0zMywxMzkgKzMzLDEzOSBAQCBuYW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewogCiBj
b25zdCBBdG9tU3RyaW5nJiBidXR0b24oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9tU3RyaW5nPiBuYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBuYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGNoZWNrYm94KCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiY2hlY2tib3giLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJjaGVja2JveCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0
cmluZyYgY29sb3IoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBu
YW1lKCJjb2xvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoImNvbG9y
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiBkYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IG5hbWUoImRhdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGRhdGV0aW1lKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZGF0ZXRpbWUiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJkYXRldGltZSIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0
cmluZyYgZGF0ZXRpbWVsb2NhbCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IG5hbWUoImRhdGV0aW1lLWxvY2FsIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gbmFtZSgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGVtYWlsKCkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiZW1haWwiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJlbWFpbCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bVN0cmluZyYgZmlsZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG5hbWUoImZpbGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJmaWxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiBoaWRkZW4oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBuYW1lKCJoaWRkZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBuYW1lKCJoaWRkZW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIGltYWdlKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgiaW1hZ2UiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJpbWFnZSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgbW9udGgoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBuYW1l
KCJtb250aCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoIm1vbnRoIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBudW1iZXIoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBuYW1lKCJudW1iZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBuYW1lKCJudW1iZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHBhc3N3b3JkKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicGFzc3dvcmQiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJwYXNzd29yZCIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bVN0cmluZyYgcmFkaW8oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBuYW1lKCJyYWRpbyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInJh
ZGlvIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1l
OwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiByYW5nZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInJhbmdlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gbmFtZSgicmFuZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHJlc2V0KCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFtZSgicmVzZXQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJyZXNldCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgc2VhcmNoKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gbmFt
ZSgic2VhcmNoIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZSgic2VhcmNo
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9tU3RyaW5nJiBzdWJtaXQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBuYW1lKCJzdWJtaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBuYW1lKCJzdWJtaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHRlbGVwaG9uZSgpCiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInRlbCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoInRlbCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmlu
ZyYgdGV4dCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUo
InRleHQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJ0ZXh0IiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBj
b25zdCBBdG9tU3RyaW5nJiB0aW1lKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gbmFtZSgidGltZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5h
bWUoInRpbWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIHVybCgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoInVybCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG5hbWUoInVybCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgd2VlaygpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG5hbWUoIndlZWsiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBuYW1lKCJ3ZWVrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBuYW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhQ29udHJvbGxlci5jcHAKaW5kZXggZTQ4MmIzNjJiMThhN2E1NDk0NTM3NjQ2NDRjY2ZlN2Ni
ZjUxNTJiMy4uMzIxMTUwY2E3ZWY5NDIxZDc0ZGNkNTJkOGQ2YzI3MjhjMDFiNTdhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcApAQCAtMjg5LDE5ICsyODksMTkgQEAg
dm9pZCBNZWRpYUNvbnRyb2xsZXI6OnNldE11dGVkKGJvb2wgZmxhZykKIAogc3RhdGljIGNvbnN0
IEF0b21TdHJpbmcmIHBsYXliYWNrU3RhdGVXYWl0aW5nKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gd2FpdGluZygid2FpdGluZyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdhaXRpbmcoIndhaXRpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9t
U3RyaW5nJiBwbGF5YmFja1N0YXRlUGxheWluZygpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEF0b21TdHJpbmc+IHBsYXlpbmcoInBsYXlpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBwbGF5aW5nKCJwbGF5aW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgIHJldHVybiBwbGF5aW5nOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmlu
ZyYgcGxheWJhY2tTdGF0ZUVuZGVkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gZW5kZWQoImVuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
ZW5kZWQoImVuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBlbmRlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRl
eCBkYjYzNmUyNjlhMGM1Yjk3OWYzNDUyZmJiYjlhYzA1ZTZmMTIzMWI3Li5kZjVlYjM1MGM0MTcw
MDEyNjgyODc2OWI3ODU1N2I2MDNlNmZmOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcApAQCAtMjU1LDggKzI1NSw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVt
ZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2xpZGVyUnVubmFibGVUcmFja05hbWUoIi13ZWJr
aXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTbGlkZXJSdW5uYWJsZVRyYWNr
TmFtZSgiLXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2siLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1
bWVudCgpOwogICAgIGF1dG8gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICB0cmFjay0+c2V0UHNldWRvKHdlYmtpdFNsaWRlclJ1bm5hYmxlVHJhY2tOYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCA3NzFjZjQ3MTIzMmI4
NWVjMzBiMjI2NTU0YTMyOWQ4MGIyNWEwMzYxLi4xODdmM2Y2NGZmOTU2MzAwMzEyZmViYTBmN2Mx
MzBhYmNmNzllYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBA
IC02NCwxMCArNjQsOSBAQCB2b2lkIFNlYXJjaElucHV0VHlwZTo6YWRkU2VhcmNoUmVzdWx0KCkK
IAogc3RhdGljIHZvaWQgdXBkYXRlUmVzdWx0QnV0dG9uUHNldWRvVHlwZShTZWFyY2hGaWVsZFJl
c3VsdHNCdXR0b25FbGVtZW50JiByZXN1bHRCdXR0b24sIGludCBtYXhSZXN1bHRzKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hEZWNv
cmF0aW9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gd2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKCItd2Via2l0LXNlYXJjaC1y
ZXN1bHRzLWRlY29yYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJl
c3VsdHNCdXR0b25OYW1lKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0U2VhcmNoRGVjb3JhdGlvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRTZWFyY2hSZXN1bHRzRGVjb3JhdGlv
bk5hbWUoIi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFNlYXJjaFJlc3VsdHNCdXR0b25OYW1lKCItd2Via2l0
LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBpZiAoIW1heFJlc3VsdHMpCiAgICAgICAgIHJlc3VsdEJ1dHRvbi5zZXRQc2V1ZG8o
d2Via2l0U2VhcmNoUmVzdWx0c0RlY29yYXRpb25OYW1lKTsKICAgICBlbHNlIGlmIChtYXhSZXN1
bHRzIDwgMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRl
eCAyZjU5ZTQ1MzkyMjk2NDNkMWM4MDNiYzZjZTAyNGVjNmU0NTBlMDM4Li4yZGU0M2RhZDVhOWZi
NmQ4YzU5MWQ3ZmZmZDQ0ZTFjNDQyNjc4NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0zNDgsOCArMzQ4LDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIH0KIAogICAgIGlmIChzaG91bGRIYXZl
Q2Fwc0xvY2tJbmRpY2F0b3IpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSgiLXdlYmtpdC1jYXBzLWxv
Y2staW5kaWNhdG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdENhcHNMb2NrSW5kaWNhdG9yTmFtZSgi
LXdlYmtpdC1jYXBzLWxvY2staW5kaWNhdG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOwogICAgICAgICBtX2NhcHNMb2NrSW5kaWNhdG9yID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIG1fY2Fwc0xvY2tJbmRpY2F0b3ItPnNldFBzZXVkbyh3
ZWJraXRDYXBzTG9ja0luZGljYXRvck5hbWUpOwogCkBAIC00NTcsOCArNDU2LDcgQEAgdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZURhdGFMaXN0RHJvcGRvd25JbmRpY2F0b3IoKQogICAg
IGlmICghbV9jb250YWluZXIpCiAgICAgICAgIGNyZWF0ZUNvbnRhaW5lcigpOwogCi0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdExpc3RCdXR0b25OYW1l
KCItd2Via2l0LWxpc3QtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRMaXN0QnV0dG9uTmFtZSgiLXdlYmtp
dC1saXN0LWJ1dHRvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBT
Y3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3BlIGFsbG93ZWRTY29wZSgqbV9j
b250YWluZXIpOwogICAgIG1fZGF0YUxpc3REcm9wZG93bkluZGljYXRvciA9IERhdGFMaXN0QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgKnRoaXMpOwogICAgIG1f
Y29udGFpbmVyLT5hcHBlbmRDaGlsZCgqbV9kYXRhTGlzdERyb3Bkb3duSW5kaWNhdG9yKTsKQEAg
LTc4Miw4ICs3ODAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQ29udGFpbmVy
KCkKICAgICBBU1NFUlQoIW1fY29udGFpbmVyKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKIAot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRUZXh0Zmll
bGREZWNvcmF0aW9uQ29udGFpbmVyTmFtZSgiLXdlYmtpdC10ZXh0ZmllbGQtZGVjb3JhdGlvbi1j
b250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHdlYmtpdFRleHRmaWVsZERlY29yYXRpb25Db250YWluZXJOYW1lKCIt
d2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6RXZlbnRBbGxv
d2VkU2NvcGUgYWxsb3dlZFNjb3BlKCplbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7
CiAKQEAgLTgwMyw4ICs4MDAsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0
b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVAogICAgIGlmIChh
dXRvRmlsbEJ1dHRvblR5cGUgPT0gQXV0b0ZpbGxCdXR0b25UeXBlOjpOb25lKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gYnV0
dG9uTmFtZSgiYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBidXR0b25OYW1lKCJidXR0b24iLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgbV9hdXRv
RmlsbEJ1dHRvbiA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9j
dW1lbnQoKSwgKnRoaXMpOwogICAgIG1fYXV0b0ZpbGxCdXR0b24tPnNldFBzZXVkbyhhdXRvRmls
bEJ1dHRvblR5cGVUb0F1dG9GaWxsQnV0dG9uUHNldWRvQ2xhc3NOYW1lKGF1dG9GaWxsQnV0dG9u
VHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBj
OGNjNmI0OWU0NmUwY2Y5MGJhYjMyNjVkMTliZGMwMjA4Yzc0Y2UwLi45OWM5YTY4NDc2NGU3NjAw
Yjg5MzAwMzg1YjY0MjhhOTk5OTE1OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcApAQCAtMTgxLDE1ICsxODEsMTQgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2Fn
ZTo6YnVpbGRCdWJibGVUcmVlKCkKIAogICAgIFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QgPSBtX2Vs
ZW1lbnQtPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKIAotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTmFtZSgiLXdl
YmtpdC12YWxpZGF0aW9uLWJ1YmJsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFs
aWRhdGlvbkJ1YmJsZUFycm93Q2xpcHBlck5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
YXJyb3ctY2xpcHBlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1
YmJsZUFycm93TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJsZU1lc3NhZ2VOYW1lKCItd2Via2l0
LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dFZhbGlkYXRpb25CdWJibGVJY29uTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1pY29u
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlVGV4dEJsb2Nr
TmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS10ZXh0LWJsb2NrIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlSGVhZGluZ05hbWUoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUtaGVhZGluZyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFs
aWRhdGlvbkJ1YmJsZUJvZHlOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWJvZHkiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1YmJs
ZUFycm93Q2xpcHBlck5hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBl
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJi
bGVBcnJvd05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ciLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRWYWxpZGF0aW9uQnViYmxlTWVzc2FnZU5hbWUo
Ii13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtbWVzc2FnZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdFZhbGlkYXRpb25CdWJibGVJY29uTmFtZSgiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1pY29uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0VmFsaWRhdGlvbkJ1YmJsZVRleHRCbG9ja05hbWUoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtdGV4dC1ibG9jayIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFZh
bGlkYXRpb25CdWJibGVIZWFkaW5nTmFtZSgiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1oZWFk
aW5nIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0VmFsaWRhdGlvbkJ1
YmJsZUJvZHlOYW1lKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWJvZHkiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCk7CiAgICAgbV9idWJibGUgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFp
bHNNYXJrZXJDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNN
YXJrZXJDb250cm9sLmNwcAppbmRleCAyZjE2NmY3MjIyNTYxZDg5YzM5ZTkwZjgyY2I3NzIxNDEw
OGEwY2ZkLi4xMmQ1MGZjZmE0Y2VkYTdlMjIzMDdmYzZlOWYzNjA3ZmIwYWJkZDllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3Bw
CkBAIC00OSw4ICs0OSw3IEBAIFJlZjxEZXRhaWxzTWFya2VyQ29udHJvbD4gRGV0YWlsc01hcmtl
ckNvbnRyb2w6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiBEZXRhaWxzTWFya2VyQ29udHJv
bDo6RGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERp
dkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXREZXRhaWxzTWFya2VyTmFtZSgiLXdl
YmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0RGV0YWlsc01hcmtlck5hbWUoIi13ZWJr
aXQtZGV0YWlscy1tYXJrZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgc2V0UHNldWRvKHdlYmtpdERldGFpbHNNYXJrZXJOYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAppbmRleCA0ZjUxYjUyZTZjNDY3YjQwMzhiNDdjYTA1
NTk3NGU0ZGE3YTVhMGExLi4xZDNlOTJkM2ViNGRlYzIzMGVlYTgwZThlM2E3OWM3ZGYwMTc3M2Uw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcApAQCAtNzcsOCArNzcs
NyBAQCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvYwogICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKICAgICAsIG1fbWVkaWFFbGVtZW50KG1ha2VXZWFrUHRyKCZlbGVtZW50KSkK
IHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0TWVk
aWFUZXh0VHJhY2tDb250YWluZXJOYW1lKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFp
bmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRNZWRpYVRleHRUcmFja0NvbnRhaW5lck5hbWUoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgc2V0UHNldWRvKHdlYmtpdE1lZGlhVGV4dFRyYWNrQ29udGFpbmVyTmFtZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0Vs
ZW1lbnQuY3BwCmluZGV4IDZiYzExNzBmZDRmYjk4OWI4NDlhZGU0ZTdjYzM2YzJhYWI4NTM2ODUu
LmY1NzRmMDc0N2QxOWFiMDhiMTBhNDVmMzE5ZTc4NDNhYTI0YjI2YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcApAQCAt
OTEsOCArOTEsNyBAQCB2b2lkIFByb2dyZXNzVmFsdWVFbGVtZW50OjpzZXRXaWR0aFBlcmNlbnRh
Z2UoZG91YmxlIHdpZHRoKQogCiBSZWY8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5u
ZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQcm9ncmVzc0lubmVyRWxlbWVudE5h
bWUoIi13ZWJraXQtcHJvZ3Jlc3MtaW5uZXItZWxlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0UHJvZ3Jlc3NJ
bm5lckVsZW1lbnROYW1lKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgUmVmPFByb2dyZXNzSW5uZXJFbGVtZW50
PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFByb2dyZXNzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7
CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnROYW1lKTsK
ICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTAwLDggKzk5LDcgQEAgUmVmPFByb2dyZXNzSW5uZXJF
bGVtZW50PiBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IAogUmVmPFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiB3ZWJraXRQcm9ncmVzc0Jhck5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtYmFyIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiB3ZWJraXRQcm9ncmVzc0Jhck5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtYmFyIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IHJl
c3VsdCA9IGFkb3B0UmVmKCpuZXcgUHJvZ3Jlc3NCYXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAg
cmVzdWx0LT5zZXRQc2V1ZG8od2Via2l0UHJvZ3Jlc3NCYXJOYW1lKTsKICAgICByZXR1cm4gcmVz
dWx0OwpAQCAtMTA5LDggKzEwNyw3IEBAIFJlZjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNz
QmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogUmVmPFByb2dyZXNzVmFs
dWVFbGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
UHJvZ3Jlc3NWYWx1ZU5hbWUoIi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBy
b2dyZXNzVmFsdWVOYW1lKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgIFJlZjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBQcm9ncmVzc1ZhbHVlRWxlbWVudChkb2N1bWVudCkpOwogICAgIHJl
c3VsdC0+c2V0UHNldWRvKHdlYmtpdFByb2dyZXNzVmFsdWVOYW1lKTsKICAgICByZXR1cm4gcmVz
dWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5jcHAKaW5kZXggMzUzM2U4YmE4MDc3NGRjMmQ2NmMxNWE0ODEyMWM2Mzc4ZGRhZTZhOS4uNjhh
NDkwZTFmYjE0NGU3MzFkM2QwNzQ4Yzg3OTBjOTczY2UxODNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC01ODcsOCArNTg3
LDggQEAgT3B0aW9uYWw8U3R5bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyVGh1bWJFbGVtZW50Ojpy
ZXNvbHZlQ3VzdG9tU3R5bGUoY29uc3QgUmVuZGUKIHsKICAgICAvLyBUaGlzIGRvZXNuJ3QgYWN0
dWFsbHkgY29tcHV0ZSBzdHlsZS4gVGhpcyBpcyBqdXN0IGEgaGFjayB0byBwaWNrIHNoYWRvdyBw
c2V1ZG8gaWQgd2hlbiBob3N0IHN0eWxlIGlzIGtub3duLgogCi0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJr
aXQtc2xpZGVyLXRodW1iIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtZWRpYVNsaWRlclRodW1i
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1z
bGlkZXItdGh1bWIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtZWRpYVNsaWRl
clRodW1iU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFob3N0U3R5bGUpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC02NDEsOCArNjQxLDggQEAgT3B0aW9uYWw8U3R5
bGU6OkVsZW1lbnRTdHlsZT4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6cmVzb2x2ZUN1c3RvbVN0
eWxlKGNvbnN0IFIKIHsKICAgICAvLyBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgY29tcHV0ZSBzdHls
ZS4gVGhpcyBpcyBqdXN0IGEgaGFjayB0byBwaWNrIHNoYWRvdyBwc2V1ZG8gaWQgd2hlbiBob3N0
IHN0eWxlIGlzIGtub3duLgogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG1lZGlhU2xpZGVyQ29udGFpbmVyKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWlu
ZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1zbGlk
ZXItY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWVkaWFTbGlk
ZXJDb250YWluZXIoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHNsaWRlckNvbnRhaW5lcigiLXdlYmtpdC1zbGlkZXItY29u
dGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgaWYgKCFo
b3N0U3R5bGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggOWUzMjhmNmM2YjFh
Y2E3ZmNkMTBlZmU1YmM0ZmUyMjRkY2ZhZDQyMy4uOTg0NmQwM2Q5NjZiM2Y5MzIwNmI5MTQ0MmZk
MjIzYjAyMGNjYTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3Bp
bkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5C
dXR0b25FbGVtZW50LmNwcApAQCAtNTUsOCArNTUsNyBAQCBpbmxpbmUgU3BpbkJ1dHRvbkVsZW1l
bnQ6OlNwaW5CdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgU3BpbkJ1dHRvbk93bmVy
JgogICAgICwgbV9wcmVzc1N0YXJ0aW5nU3RhdGUoSW5kZXRlcm1pbmF0ZSkKICAgICAsIG1fcmVw
ZWF0aW5nVGltZXIoKnRoaXMsICZTcGluQnV0dG9uRWxlbWVudDo6cmVwZWF0aW5nVGltZXJGaXJl
ZCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0
SW5uZXJTcGluQnV0dG9uTmFtZSgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Vi
a2l0SW5uZXJTcGluQnV0dG9uTmFtZSgiLXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29s
dmVDYWxsYmFja3MoKTsKICAgICBzZXRQc2V1ZG8od2Via2l0SW5uZXJTcGluQnV0dG9uTmFtZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcAppbmRleCA3OTM0ZGRjNWUyNmNlYmVlMDk2YTY4OGEwNmM1MmY2NTIz
MGMyZGM3Li5iNmQ2OWMxYzQ4ZDQyNDllZTQ2MGNjZTVjZjk3NWVlMjU3NGRhNDNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHAKQEAgLTE4Miw4ICsxODIsNyBAQCBPcHRpb25hbDxTdHlsZTo6RWxlbWVudFN0eWxl
PiBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZShjbwogaW5s
aW5lIFRleHRDb250cm9sUGxhY2Vob2xkZXJFbGVtZW50OjpUZXh0Q29udHJvbFBsYWNlaG9sZGVy
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcs
IGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBwbGFjZWhvbGRlck5hbWUoInBsYWNlaG9sZGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBwbGFjZWhvbGRlck5hbWUoInBs
YWNlaG9sZGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHNldFBz
ZXVkbyhwbGFjZWhvbGRlck5hbWUpOwogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxi
YWNrcygpOwogfQpAQCAtMjU2LDkgKzI1NSw4IEBAIGJvb2wgU2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogaW5saW5lIFNlYXJj
aEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1l
bnQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtp
dFNlYXJjaENhbmNlbEJ1dHRvbk5hbWUoIi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gd2Via2l0U2Vh
cmNoQ2FuY2VsQnV0dG9uTmFtZSgiLXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGJ1dHRvbk5hbWUoImJ1dHRvbiIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKIAogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2
ZUNhbGxiYWNrcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Z
b3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDIyZjYyMDk2ZGNiMGZjZThhNjNk
MGY4YzQ4ZDQ1OWFkMDMxZDFhNWQuLjk3NWE2NWIwY2M0NzM5YWM4NmQ3NzJlNzE5NmVhMGJlOTYz
ZDI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJl
ZFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCkBAIC00MSw4ICs0MSw3IEBAIFJlZjxZb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvYykKIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OllvdVR1YmVFbWJlZFNoYWRvd0Vs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVz
OjpkaXZUYWcsIGRvY3VtZW50KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUoIi13ZWJraXQtcGx1Z2luLXJl
cGxhY2VtZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUoIi13ZWJraXQtcGx1
Z2luLXJlcGxhY2VtZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IHNldFBzZXVkbyh3ZWJraXRQbHVnaW5SZXBsYWNlbWVudE5hbWUpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNC
dXR0b25FbGVtZW50TWFjLmNwcAppbmRleCA5NjQzMTZhMjJlMmFmM2E0Mjk3ZTk4ZTczMTM0NjI1
NzY1YWM5ZGY2Li42ZDgwMWE2MTVmMTE2YjRkNTk2MjdlMjg5YWE2M2VkMTZmNmNlYWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKQEAgLTk0LDggKzk0LDcgQEAgUmVmUHRyPElt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjPiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yzo6dHJ5Q3JlYXRlKEQKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
eFdlYmtpdEltYWdlQ29udHJvbHNCdXR0b25OYW1lKCJ4LXdlYmtpdC1pbWFnZS1jb250cm9scy1i
dXR0b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHhXZWJraXRJbWFnZUNvbnRyb2xzQnV0dG9uTmFtZSgieC13ZWJraXQtaW1h
Z2UtY29udHJvbHMtYnV0dG9uIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
CiAgICAgYXV0byBidXR0b24gPSBhZG9wdFJlZigqbmV3IEltYWdlQ29udHJvbHNCdXR0b25FbGVt
ZW50TWFjKGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB4V2Via2l0SW1hZ2VDb250cm9sc0J1dHRv
bk5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAppbmRleCAyZjlkZjQ5YzIyZWJlYTBi
OGU0NTkyYWYxYTU2NDdiNjc2NTFmMjliLi4zYWE0NTQ5YzEzYzg3NTE3NTUwYjNmNzFmMzg0OTc4
MmI2ZDBiODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9tYWMvSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcApAQCAtODYsOCArODYsNyBA
QCBSZWZQdHI8SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50PiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnQ6OnRyeUNyZWF0ZShEb2N1bWVudCYgZAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUoIngtd2Via2l0LWltYWdlLWNvbnRy
b2xzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiB4V2Via2l0SW1hZ2VDb250cm9sc05hbWUoIngtd2Via2l0LWltYWdlLWNvbnRy
b2xzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgUmVmPEltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYz4gY29udHJvbHMgPSBhZG9wdFJlZigqbmV3IEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYyhkb2N1bWVudCkpOwogICAgIGNvbnRyb2xzLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB4V2Via2l0SW1h
Z2VDb250cm9sc05hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAK
aW5kZXggMDIwOWY5ZWMxYzAyYzk3NGZkNGU2MGIxZmQ0MDAzNzg2MzgzNjBjMy4uMjNhOTFkMDAw
YWNiYmUxMDI1YzA1NGJmMmM1YjJiY2U2MTEwOGMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suY3BwCkBAIC00MSwzNyArNDEsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgiYWx0
ZXJuYXRpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhbHRlcm5hdGl2ZSgi
YWx0ZXJuYXRpdmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0
dXJuIGFsdGVybmF0aXZlOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjpkZXNj
cmlwdGlvbktleXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBkZXNjcmlwdGlvbigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBkZXNjcmlwdGlvbigiZGVzY3JpcHRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9tU3RyaW5n
JiBBdWRpb1RyYWNrOjptYWluS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IG1haW4oIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBtYWluKCJtYWluIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJl
dHVybiBtYWluOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluRGVzY0tl
eXdvcmQoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBtYWluRGVz
YygibWFpbi1kZXNjIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWFpbkRlc2Mo
Im1haW4tZGVzYyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gbWFpbkRlc2M7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1ZGlvVHJhY2s6OnRyYW5zbGF0
aW9uS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRy
YW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHRyYW5zbGF0aW9uKCJ0cmFuc2xhdGlvbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gdHJhbnNsYXRpb247CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEF1
ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8QXRvbVN0cmluZz4gY29tbWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGNvbW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRleCBjNjVhMTE4NzllNjUxMzIzOTUxMzE0
MzcyODA3YmNjZDZlMWZjYzY0Li5kNGUwZjY5MTMxYTFiYjBhYzM0YTNhNjBhZjUwMjU3MjE4NDQx
NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC01MiwzNyAr
NTIsMzcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFRleHRUcmFjayk7CiAKIGNvbnN0
IEF0b21TdHJpbmcmIFRleHRUcmFjazo6c3VidGl0bGVzS2V5d29yZCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxlcygic3VidGl0bGVzIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHN1YnRpdGxlczsK
IH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9u
cyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNhcHRpb25zKCJjYXB0aW9ucyIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4gY2FwdGlvbnM7
CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBkZXNjcmlwdGlvbnNLZXl3b3JkKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVzY3JpcHRpb25z
KCJkZXNjcmlwdGlvbnMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkZXNjcmlw
dGlvbnMoImRlc2NyaXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
ICAgICByZXR1cm4gZGVzY3JpcHRpb25zOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYg
Y2hhcHRlcnNLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gY2hhcHRlcnMoImNoYXB0ZXJzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIHJldHVybiBjaGFwdGVyczsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcm
IG1ldGFkYXRhS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IG1ldGFkYXRhKCJtZXRhZGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IG1ldGFkYXRhKCJtZXRhZGF0YSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAgICAgCiBzdGF0aWMgY29uc3QgQXRvbVN0
cmluZyYgZm9yY2VkS2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGZvcmNlZCgiZm9yY2VkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gZm9yY2VkKCJmb3JjZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGZvcmNlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCmluZGV4IDY1NTEwOGE1OTdjOTUzZmMwODc5ZWYwOGE4MzJjMTI0NGI4ZGZk
YTEuLjdkYzhhYTNmNmE0ODZkNDFjZmI3MDk3ZTBlNDNiNmFjOGY1NTlkOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTY0LDE5ICs2NCwxOSBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoVGV4dFRyYWNrQ3VlQm94KTsKIAogY29uc3QgQXRv
bVN0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1ZSgiY3VlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlKCJjdWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAgICAgcmV0dXJuIGN1ZTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVGV4dFRy
YWNrQ3VlOjpjdWVCb3hTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stZGlzcGxheSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBy
ZXR1cm4gdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQ7CiB9CiAKIGNvbnN0IEF0b21TdHJp
bmcmIFRleHRUcmFja0N1ZTo6Y3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGN1ZUJhY2tkcm9wU2hhZG93UHNl
dWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5LWJhY2tkcm9wIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY3VlQmFja2Ryb3BTaGFkb3dQc2V1ZG9JZCgiLXdl
YmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXktYmFja2Ryb3AiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGN1ZUJhY2tkcm9wU2hhZG93UHNldWRvSWQ7
CiB9CiAKQEAgLTQ4OCw4ICs0ODgsNyBAQCB2b2lkIFRleHRUcmFja0N1ZTo6cmVidWlsZERpc3Bs
YXlUcmVlKCkKICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkV2ZW50QWxsb3dlZFNjb3BlIGFs
bG93ZWRTY29wZUZvclJlZmVyZW5jZVRyZWUoKm1fY3VlTm9kZSk7CiAKICAgICBpZiAoIW1fZGlz
cGxheVRyZWUpIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHdlYmtpdEdlbmVyaWNDdWVSb290TmFtZSgiLXdlYmtpdC1nZW5lcmljLWN1ZS1yb290Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IHdlYmtpdEdlbmVyaWNDdWVSb290TmFtZSgiLXdlYmtpdC1nZW5lcmljLWN1
ZS1yb290IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBtX2Rp
c3BsYXlUcmVlID0gVGV4dFRyYWNrQ3VlQm94OjpjcmVhdGUob3duZXJEb2N1bWVudCgpLCAqdGhp
cyk7CiAgICAgICAgIG1fZGlzcGxheVRyZWUtPnNldFBzZXVkbyh3ZWJraXRHZW5lcmljQ3VlUm9v
dE5hbWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRU
UmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAppbmRl
eCAzYTZlNDcyMWU3NzJkOGZkMWRiNTllZDgzM2ZlN2IyZDU0MTY4MzZmLi5jZDhjODdiMDI3ZTdh
NDc1MzhjMmFlMmJhOGZiZmNlNDNiYzMyODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb24uY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gVlRUUmVn
aW9uOjpzZXRWaWV3cG9ydEFuY2hvclkoZG91YmxlIHZhbHVlKQogCiBzdGF0aWMgY29uc3QgQXRv
bVN0cmluZyYgdXBLZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdXBLZXl3b3JkKCJ1cCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IHVwS2V5d29yZCgidXAiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHVwS2V5d29yZDsKIH0KIApAQCAtMjYyLDIxICsyNjIsMjEgQEAgdm9pZCBWVFRS
ZWdpb246OnBhcnNlU2V0dGluZ1ZhbHVlKFJlZ2lvblNldHRpbmcgc2V0dGluZywgVlRUU2Nhbm5l
ciYgaW5wdXQpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFZUVFJlZ2lvbjo6dGV4dFRyYWNrQ3VlQ29u
dGFpbmVyU2Nyb2xsaW5nQ2xhc3MoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNvbnRhaW5lclNjcm9sbGluZ0NsYXNzKCJzY3Jv
bGxpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvbkN1ZUNv
bnRhaW5lclNjcm9sbGluZ0NsYXNzKCJzY3JvbGxpbmciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25DdWVDb250YWluZXJTY3JvbGxp
bmdDbGFzczsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJhY2tDdWVD
b250YWluZXJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IHRyYWNrUmVnaW9uQ3VlQ29udGFpbmVyUHNldWRvSWQoIi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1yZWdpb24tY29udGFpbmVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZCgiLXdlYmtpdC1tZWRp
YS10ZXh0LXRyYWNrLXJlZ2lvbi1jb250YWluZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CiAKICAgICByZXR1cm4gdHJhY2tSZWdpb25DdWVDb250YWluZXJQc2V1ZG9JZDsK
IH0KIAogY29uc3QgQXRvbVN0cmluZyYgVlRUUmVnaW9uOjp0ZXh0VHJhY2tSZWdpb25TaGFkb3dQ
c2V1ZG9JZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHRyYWNrUmVnaW9uU2hhZG93UHNldWRvSWQoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdp
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0cmFja1JlZ2lvblNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgcmV0dXJuIHRyYWNrUmVnaW9uU2hhZG93UHNldWRv
SWQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCBiNWRm
MTgzYWJkMmZmOGNlMWI4ZjM5ZWJmZDFkMjBmNTYwYzA1OWEzLi4zOGVkNTFjNzZlMWY1M2MwOGJl
NzIwYWU4ZDc2NjRiNDgwMTQ0NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHAKQEAgLTQ2LDM3ICs0NiwzNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVybmF0aXZlKCJhbHRlcm5h
dGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGFsdGVybmF0aXZlKCJhbHRl
cm5hdGl2ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1cm4g
YWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmNhcHRpb25z
S2V5d29yZCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGNhcHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNh
cHRpb25zKCJjYXB0aW9ucyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAg
ICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6Om1h
aW5LZXl3b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gY2FwdGlvbnMoIm1haW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBjYXB0
aW9ucygibWFpbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICByZXR1
cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OnNpZ25LZXl3
b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc2ln
bigic2lnbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNpZ24oInNpZ24iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIHNpZ247CiB9CiAK
IGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRp
dGxlcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFp
blRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN1YnRpdGxlcygic3VidGl0
bGVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBzdWJ0
aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1lbnRhcnlLZXl3
b3JkKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gY29t
bWVudGFyeSgiY29tbWVudGFyeSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
KyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNv
bW1lbnRhcnkoImNvbW1lbnRhcnkiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZTRhOTRhNTA1OTYx
YWEzNzk3ZmE2ZDA0ZWE2NWM2NDU2NWFkOTZkZC4uNzUwOGQ3NWFjZmExOWUxMWRmYTI1NmI2Njcz
NDRhNjMzZGEyM2FjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgY29uc3QgQXRvbVN0
cmluZyYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkgY29uc3QKICAgICBp
ZiAoIW1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX2luaXRpYXRv
ck5hbWU7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZGVmYXVsdE5h
bWUoIm90aGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGVmYXVsdE5hbWUo
Im90aGVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBk
ZWZhdWx0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDlh
ODQzOTcxMTMyZDUzNmFiNGI1MTM2ZmU5Yzk3Y2JjYTIwNTc5NWUuLjhkNDE3MTc3NDQyMzViZjgx
Y2ZhMDc0ZTBhYjU2MjFhZTM4YjA0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTM0MDYsMTAgKzM0MDYsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5
RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQKIAogc3Rh
dGljIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uRm9yS2V5KGNvbnN0IEF0b21TdHJpbmcm
IGtleUlkZW50aWZpZXIpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IERvd24oIkRvd24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IFVwKCJVcCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4g
TGVmdCgiTGVmdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gUmlnaHQoIlJpZ2h0IiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gRG93bigiRG93biIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IFVwKCJVcCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAg
ICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IExlZnQo
IkxlZnQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBSaWdodCgiUmlnaHQiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKICAgICBGb2N1c0RpcmVjdGlvbiBy
ZXRWYWwgPSBGb2N1c0RpcmVjdGlvbk5vbmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCAy
Mjk2YThmOWRkNTlmMmFlOTg0NWQ2ZTIyN2EzNzg1M2QxZmM1OTVlLi5lMmE0YzA4MGFkNDJiNjEx
Y2VjOTM3M2U2MjMzMWU1ODBkMGM4NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgYm9vbCBRdWlya3M6OnNob3VsZEJ5cGFzc0JhY2tGb3J3YXJkQ2FjaGUoKSBj
b25zdAogICAgIC8vIGJlY2F1c2UgaXQgcHV0cyBhbiBvdmVybGF5ICh3aXRoIGNsYXNzICJkb2Nz
LWhvbWVzY3JlZW4tZnJlZXplLWVsLWZ1bGwiKSBvdmVyIHRoZSBwYWdlIHdoZW4gbmF2aWdhdGlu
ZyBhd2F5IGFuZCBmYWlscwogICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIGNvbWluZyBiYWNrIGZy
b20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSAoZS5nLiBpbiAncGFnZXNob3cnIGV2ZW50IGhhbmRs
ZXIpLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3NjcwMDY0Pi4KICAgICAvLyBOb3RlIHRoYXQgdGhp
cyBkb2VzIG5vdCBjaGVjayBmb3IgZG9jcy5nb29nbGUuY29tIGhvc3QgYmVjYXVzZSBvZiBob3N0
ZWQgRyBTdWl0ZSBhcHBzLgotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBnb29nbGVEb2NzT3ZlcmxheURpdkNsYXNzKCJkb2NzLWhvbWVzY3JlZW4tZnJlZXplLWVs
LWZ1bGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBnb29nbGVEb2NzT3Zlcmxh
eURpdkNsYXNzKCJkb2NzLWhvbWVzY3JlZW4tZnJlZXplLWVsLWZ1bGwiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgYXV0byogZmlyc3RDaGlsZEluQm9keSA9IG1fZG9j
dW1lbnQtPmJvZHkoKSA/IG1fZG9jdW1lbnQtPmJvZHkoKS0+Zmlyc3RDaGlsZCgpIDogbnVsbHB0
cjsKICAgICBpZiAoaXM8SFRNTERpdkVsZW1lbnQ+KGZpcnN0Q2hpbGRJbkJvZHkpKSB7CiAgICAg
ICAgIGF1dG8mIGRpdiA9IGRvd25jYXN0PEhUTUxEaXZFbGVtZW50PigqZmlyc3RDaGlsZEluQm9k
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmNwcAppbmRleCBlZTBkNTY4OGNiODgxYWRkZTAwYTY5ZDZiNjNkOWVjZTlhZDY3Mzdk
Li45M2M0OWJjZjZkOTFmNGRjZGY1NDY3MTRhNTQzNjgzZTEyZDQ3OTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKQEAg
LTIyMSw3ICsyMjEsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVB
bmltYXRpb25zKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlcgogICAgIC8vIFRvc3MgdGhl
IGFuaW1hdGlvbiBvcmRlciBtYXAuCiAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNs
ZWFyKCk7CiAKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbm9u
ZSgibm9uZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vbmUoIm5vbmUiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgCiAgICAgLy8gTm93IG1hcmsg
YW55IHN0aWxsIGFjdGl2ZSBhbmltYXRpb25zIGFzIGFjdGl2ZSBhbmQgYWRkIGFueSBuZXcgYW5p
bWF0aW9ucy4KICAgICBpZiAodGFyZ2V0U3R5bGUuYW5pbWF0aW9ucygpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IGIxNDk1MTg0NDczZGNhZTFhZmM1Y2E5N2Q0NDRh
YmM2NTkxN2I4YzguLjA4NGY0MzI5NWQ4MTVlMzAwMzMyNWQ5ODNiNzcwMzkzZDk2OWE0YjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC00MDMsNyArNDAzLDcgQEAgY29u
c3QgVmVjdG9yPEF0b21TdHJpbmc+JiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6
b2JzZXJ2ZWRFdmVudE5hbWVzKCkKIAogY29uc3QgQXRvbVN0cmluZyYgIFBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpldmVudE5hbWVBbGwoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBldmVudE5hbWVBbGwoImFsbEV2ZW50cyIsIEF0b21TdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGV2ZW50TmFtZUFsbCgiYWxsRXZlbnRzIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHJldHVybiBldmVudE5hbWVBbGw7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggZThlMzljOTI2M2Q3YTU4NzNi
YTljMTc0YjU4ZTQxZmY4M2Q3N2Q0MC4uM2FkNjliN2U3NDNjZWExODFkNGNmZmM1OGJmMmQyYmU3
ODY2NDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTE4NCw3ICsx
ODQsNyBAQCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50OjpvYnNlcnZlZEV2ZW50TmFtZXMoKQogCiBjb25zdCBBdG9tU3RyaW5nJiBWaWRl
b0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZXZlbnROYW1lQWxsKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc0V2ZW50TmFtZUFsbCA9ICJhbGxFdmVudHMi
OworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
c0V2ZW50TmFtZUFsbCA9ICJhbGxFdmVudHMiOwogICAgIHJldHVybiBzRXZlbnROYW1lQWxsOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApp
bmRleCA3ZmNhYTQ0ZDU0YTM4NzQyZjdkZDU4NzQwMDZhYTQzNzZlMjU4NDhjLi5hYmExYTg0MjY4
MDI1YzEyZjc1ZDY3MzczYjkzMzI2Y2VjNmIzZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTE0OSwxMiArMTQ5LDEyIEBAIHN0YXRp
YyBGb250UGxhdGZvcm1EYXRhQ2FjaGUmIGZvbnRQbGF0Zm9ybURhdGFDYWNoZSgpCiAKIGNvbnN0
IEF0b21TdHJpbmcmIEZvbnRDYWNoZTo6YWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9tU3Ry
aW5nJiBmYW1pbHlOYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5n
PiBhcmlhbCgiQXJpYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGNvdXJpZXIoIkNvdXJpZXIiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGNvdXJpZXJOZXcoIkNvdXJpZXIgTmV3IiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBo
ZWx2ZXRpY2EoIkhlbHZldGljYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdGltZXMoIlRpbWVzIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuKCJUaW1lcyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcmlhbCgiQXJpYWwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBjb3VyaWVyKCJDb3VyaWVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gY291cmllck5ldygiQ291cmllciBOZXciLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBoZWx2ZXRpY2EoIkhlbHZldGljYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IHRpbWVzKCJUaW1lcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHRpbWVzTmV3Um9tYW4oIlRpbWVzIE5ldyBSb21hbiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIGNvbnN0IEF0b21TdHJpbmcmIHBsYXRmb3JtU3BlY2lmaWNBbHRl
cm5hdGUgPSBwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoZmFtaWx5TmFtZSk7CiAgICAgaWYg
KCFwbGF0Zm9ybVNwZWNpZmljQWx0ZXJuYXRlLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGM4MjhiYmU3ZTc3NTVl
ZTcxMTIxNzIzZTlmMTcwMjdlZDFmYWUyNDYuLjVjMmFhZjhhY2NiMzE2MDAwOGRjYmZhZDA5ZjRm
NWZhOGZhNzkxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKQEAgLTI5NywxMyArMjk3LDEzIEBAIHN0YXRpYyB2b2lkIGFkZE1lZGlh
RW5naW5lKHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllckZhY3Rvcnk+JiYgZmFjdG9yeSkKIAog
c3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0oKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhcHBsaWNhdGlvbk9jdGV0
U3RyZWFtKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGFwcGxp
Y2F0aW9uT2N0ZXRTdHJlYW07CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiB0ZXh0UGxh
aW4oKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0
UGxhaW4oInRleHQvcGxhaW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB0ZXh0
UGxhaW4oInRleHQvcGxhaW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHRleHRQbGFpbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0
cmVhbWluZy5jcHAKaW5kZXggMmQ2ZTlhYTYzYzRlMTk5ZGQ5OTJlMTc0NDJlNWRhZTBlNjM0MThi
ZS4uOGFjNDhlYzVkYzY5YjMxNDk1N2JhNDMzZjk3MTAxZWEyNzc2OTY0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5
U3RyZWFtaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwCkBAIC03NSwxMyArNzUsMTMgQEAgY29u
c3QgVmVjdG9yPEZvdXJDQz4mIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6dmFsaWRGYWly
UGxheVN0cmVhbWluZ1NjaGVtZXMKIAogY29uc3QgQXRvbVN0cmluZyYgQ0RNUHJpdmF0ZUZhaXJQ
bGF5U3RyZWFtaW5nOjpzaW5mTmFtZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IHNpbmYgeyBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgic2luZiIpIH07CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzaW5mIHsg
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoInNpbmYiKSB9OwogICAgIHJldHVybiBzaW5mOwogfQog
CiBjb25zdCBBdG9tU3RyaW5nJiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNrZE5hbWUo
KQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBza2QgeyBNQUtFX1NU
QVRJQ19TVFJJTkdfSU1QTCgic2tkIikgfTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNrZCB7IE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJz
a2QiKSB9OwogICAgIHJldHVybiBza2Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IDk5YTkzYzI1OThkNDc2YzE0MjY5YjQ0ZjkxYjEzMDdkNGM1N2I5OGQuLjNiODA0Mjg5ZTEzY2Vk
OGMxMjdkMmMwMDk0ZTFmMDQ5M2ZhN2M3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MzAxOCwxMiArMzAxOCwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaQogI2lmIEVOQUJMRShE
QVRBQ1VFX1ZBTFVFKQogc3RhdGljIGNvbnN0IEF0b21TdHJpbmcmIG1ldGFkYXRhVHlwZShOU1N0
cmluZyAqYXZNZXRhZGF0YUtleVNwYWNlKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVVc2VyRGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS51
ZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiBxdWlja1RpbWVNZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGlt
ZS5tZHRhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpVHVuZXNNZXRhZGF0YSgiY29tLmFwcGxl
Lml0dW5lcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEoIm9yZy5pZDMiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IGhsc0RhdGVSYW5nZU1ldGFkYXRhKCJjb20uYXBwbGUucXVp
Y2t0aW1lLkhMUyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0
aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHF1aWNrVGltZVVz
ZXJEYXRhKCJjb20uYXBwbGUucXVpY2t0aW1lLnVkdGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpc29Vc2VyRGF0YSgib3JnLm1wNHJhIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gcXVpY2tUaW1lTWV0YWRhdGEoImNvbS5hcHBsZS5xdWlja3RpbWUubWR0YSIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGlUdW5lc01ldGFkYXRhKCJjb20uYXBw
bGUuaXR1bmVzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaWQzTWV0YWRhdGEo
Im9yZy5pZDMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBobHNEYXRlUmFuZ2VN
ZXRhZGF0YSgiY29tLmFwcGxlLnF1aWNrdGltZS5ITFMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAKICAgICBpZiAoW2F2TWV0YWRhdGFLZXlTcGFjZSBpc0VxdWFsVG9TdHJp
bmc6QVZNZXRhZGF0YUtleVNwYWNlUXVpY2tUaW1lVXNlckRhdGFdKQogICAgICAgICByZXR1cm4g
cXVpY2tUaW1lVXNlckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggZjYyOGFjMmI2
Y2U3NGZmYzUyMDZiMWEyZDljZmY1NzkyMTkwOTdkNS4uMzMyZDJlZmMwNmZlOWE0MGFhMWVjNmYy
ZTQ3NWQ4ZTMyNzcyZDE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtNzA1LDEzICs3
MDUsMTMgQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXQKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIC8vIFN1YnN0aXR1dGUgdGhlIGRlZmF1bHQgbW9ub3NwYWNlIGZvbnQgZm9yIHdlbGwt
a25vd24gbW9ub3NwYWNlIGZvbnRzLgogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShmYW1pbHksICJtb25hY28iKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShm
YW1pbHksICJtZW5sbyIpKSB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBjb3VyaWVyKCJjb3VyaWVyIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGNvdXJpZXIoImNvdXJpZXIiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgICAgIHJldHVybiBmb250Rm9yRmFtaWx5KGRlc2NyaXB0aW9uLCBjb3VyaWVyKTsKICAg
ICB9CiAKICAgICAvLyBTdWJzdGl0dXRlIFZlcmRhbmEgZm9yIEx1Y2lkYSBHcmFuZGUuCiAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgImx1Y2lkYSBncmFuZGUi
KSkgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdmVyZGFuYSgi
dmVyZGFuYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2ZXJkYW5hKCJ2
ZXJkYW5hIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1
cm4gZm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwgdmVyZGFuYSk7CiAgICAgfQogI2VuZGlmCkBA
IC03MjAsOCArNzIwLDggQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXQKICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiBwYXNodG8oTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlBhc2h0
byIpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB1cmR1KE1BS0VfU1RBVElD
X1NUUklOR19JTVBMKCJVcmR1IikpOwogICAgIHN0YXRpYyBTdHJpbmcqIG1hdGNoV29yZHNbM10g
PSB7ICZhcmFiaWMuZ2V0KCksICZwYXNodG8uZ2V0KCksICZ1cmR1LmdldCgpIH07Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGdlZXphUGxhaW4oIkdlZXphUHJvIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBnZWV6YUJvbGQoIkdlZXphUHJvLUJvbGQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBnZWV6YVBsYWluKCJHZWV6YVBybyIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21TdHJpbmc+IGdlZXphQm9sZCgiR2VlemFQcm8tQm9sZCIsIEF0b21TdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBmb3IgKFN0cmluZyogbWF0Y2hXb3JkIDogbWF0Y2hX
b3JkcykgewogICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoKm1h
dGNoV29yZCkpCiAgICAgICAgICAgICByZXR1cm4gZm9udEZvckZhbWlseShkZXNjcmlwdGlvbiwg
aXNGb250V2VpZ2h0Qm9sZChkZXNjcmlwdGlvbi53ZWlnaHQoKSkgPyBnZWV6YUJvbGQgOiBnZWV6
YVBsYWluKTsKQEAgLTE1MDcsMTAgKzE1MDcsMTAgQEAgY29uc3QgQXRvbVN0cmluZyYgRm9udENh
Y2hlOjpwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoY29uc3QgQXRvbVN0cmluZyYgZmFtaWwK
ICAgICBzdGF0aWMgY29uc3QgVUNoYXIgd2VpcnVhbllhSGVpU3RyaW5nW10gPSB7IDB4NWZhZSwg
MHg4ZjZmLCAweDk2YzUsIDB4OWVkMSB9OwogICAgIHN0YXRpYyBjb25zdCBVQ2hhciB3ZWlydWFu
WmhlbmdIZWl0aVN0cmluZ1tdID0geyAweDVmYWUsIDB4OGVkZiwgMHg2YjYzLCAweDllZDEsIDB4
OWFkNCB9OwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNvbmd0aVND
KCJTb25ndGkgU0MiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHNvbmd0aVRDKCJTb25ndGkgVEMiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21TdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0ZhbmcgU0MiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21T
dHJpbmc+IGhlaXRpVENSZXBsYWNlbWVudCgiUGluZ0ZhbmcgVEMiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBzb25ndGlTQygiU29uZ3RpIFNDIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gc29uZ3RpVEMoIlNvbmd0aSBUQyIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0ZhbmcgU0MiLCBBdG9tU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9tU3RyaW5nPiBoZWl0aVRDUmVwbGFjZW1lbnQoIlBpbmdGYW5nIFRDIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChmYW1pbHlO
YW1lLmxlbmd0aCgpKSB7CiAgICAgY2FzZSAyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNl
Q29yZVRleHQuY3BwCmluZGV4IGNjNGUyYmM0NDZmMjhlNDlkZWI1MzM2YTMzYjBiYmY3OTg2ZmMy
ZDAuLjM1MGIxNmE3ZTFlYzJhNTNjNDlmOTEyYWRjZTY3OTExNTJmM2NhMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRhYmFz
ZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5jcHAKQEAgLTIxMywyMiArMjEzLDIyIEBAIFN5
c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0OjpDYXNjYWRlTGlzdFBhcmFtZXRlcnMgU3lzdGVtRm9u
dERhdGFiYXNlQ29yZVRleHQ6OnN5CiAKICAgICBzd2l0Y2ggKHN5c3RlbUZvbnRLaW5kKSB7CiAg
ICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6U3lzdGVtVUk6IHsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmluZygic3lzdGVtLXVpIiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJID0gQXRvbVN0cmlu
Zygic3lzdGVtLXVpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAg
ICByZXN1bHQuZm9udE5hbWUgPSBzeXN0ZW1VSS5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgU3lzdGVtRm9udEtpbmQ6OlVJU2VyaWY6IHsKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHN5c3RlbVVJU2VyaWYgPSBBdG9tU3RyaW5nKCJ1aS1z
ZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGlj
IE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzeXN0ZW1VSVNlcmlm
ID0gQXRvbVN0cmluZygidWktc2VyaWYiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJU2VyaWYuZ2V0KCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFN5c3RlbUZvbnRLaW5kOjpVSU1vbm9zcGFjZTog
ewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gc3lzdGVtVUlNb25v
c3BhY2UgPSBBdG9tU3RyaW5nKCJ1aS1tb25vc3BhY2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4gc3lzdGVtVUlNb25vc3BhY2UgPSBBdG9tU3RyaW5nKCJ1aS1tb25vc3Bh
Y2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5m
b250TmFtZSA9IHN5c3RlbVVJTW9ub3NwYWNlLmdldCgpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBTeXN0ZW1Gb250S2luZDo6VUlSb3VuZGVkOiB7Ci0gICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBzeXN0ZW1VSVJvdW5kZWQgPSBBdG9tU3RyaW5nKCJ1
aS1yb3VuZGVkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHN5c3RlbVVJ
Um91bmRlZCA9IEF0b21TdHJpbmcoInVpLXJvdW5kZWQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CiAgICAgICAgIHJlc3VsdC5mb250TmFtZSA9IHN5c3RlbVVJUm91bmRlZC5n
ZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCBhMGFhMjUw
M2VhNWViZWM5Y2JlYTVhYzcyN2Y3MDYwNTkzOTQ1NzU1Li5lZjY5NTIxNjRmMDMwZjViMGY3NGEz
ODA1ZjM1N2JhZTYyYjdjYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMzcsNyArMzcsNyBAQCBS
ZWY8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyRWZmZWN0JiBzb3VyY2VF
ZmZlY3QpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNvdXJjZUFscGhhOjplZmZlY3ROYW1lKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc19lZmZlY3ROYW1l
KCJTb3VyY2VBbHBoYSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNfZWZmZWN0
TmFtZSgiU291cmNlQWxwaGEiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKaW5kZXggMDQ1
ZWUwMWYyMjNlNDIyZmZmMDQ2ZmVhMmY0Y2EyZGRlMGRkZDcxMi4uODhhMzZhNDEwMjZiZDNhNTg1
NDQ3ODIwMjc0YzExMDdkNzgzOTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC0zNiw3ICsz
Niw3IEBAIFJlZjxTb3VyY2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVyJiBm
aWx0ZXIpCiAKIGNvbnN0IEF0b21TdHJpbmcmIFNvdXJjZUdyYXBoaWM6OmVmZmVjdE5hbWUoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2VmZmVjdE5h
bWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzX2Vm
ZmVjdE5hbWUoIlNvdXJjZUdyYXBoaWMiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KaW5kZXggNGYwOGNhMDZk
MjRlOWRjM2ZhMDQzNDE4YzNjYmZjMjgyNzZlZTFkMS4uMmIyYWM4YTRhMDI3ODNjMjUwOWNiZGZh
MWQ0MDJjNTQ0MWJjYzhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCkBAIC01MywxMCArNTMsMTAgQEAgRm9udFBsYXRm
b3JtRGF0YSogRm9udENhY2hlOjpnZXRDdXN0b21GYWxsYmFja0ZvbnQoY29uc3QgVUludDMyIGMs
IGNvbnN0IEZvbnREZXMKIHsKICAgICBBU1NFUlQocmVxdWlyZXNDdXN0b21GYWxsYmFja0ZvbnQo
YykpOwogCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGhlbHZldGljYUZh
bWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IHRpbWVzTmV3Um9tYW5QU01U
RmFtaWx5KCJUaW1lc05ld1JvbWFuUFNNVCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGhlbHZldGljYUZhbWlseSgiSGVsdmV0aWNhIE5ldWUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiB0aW1lc05ld1JvbWFuUFNNVEZhbWlseSgiVGltZXNOZXdSb21hblBTTVQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAKLSAgICBBdG9tU3RyaW5nKiBm
YW1pbHkgPSBudWxscHRyOworICAgIGNvbnN0IEF0b21TdHJpbmcqIGZhbWlseSA9IG51bGxwdHI7
CiAgICAgc3dpdGNoIChjKSB7CiAgICAgY2FzZSBBcHBsZUxvZ286CiAgICAgICAgIGZhbWlseSA9
ICZoZWx2ZXRpY2FGYW1pbHkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5oCmluZGV4IDE3Y2I1MGUzYTU1NTEwNTViMzNiNTZkM2E1MWE2NjgzYjc3ZmMwMjMuLjA5
ODk5ODBlNDY1Njk4ZGVjZjY0ZTRmNDc1YjU0MTJiYjgyMDhkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogI2RlZmluZSBURVhNQVBfREVDTEFSRV9WQVJJQUJMRShBY2Nlc3NvciwgTmFtZSwg
VHlwZSkgXAogICAgIEdMdWludCBBY2Nlc3NvciMjTG9jYXRpb24oKSB7IFwKLSAgICAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5hbWUoTmFtZSwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOyBcCisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbmFtZShOYW1lLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7IFwKICAgICAgICAgcmV0dXJuIGdldExvY2F0aW9uKG5hbWUuZ2V0
KCksIFR5cGUpOyBcCiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCmluZGV4IDY4ZDQ4ZTg3NjQ5NWE4MjY3ZTc1
ODk3M2YxZGU1YWJjMmUxODE1ZjguLjJiNGI1NTcyYTRkODA4YjgzYjRiMGY0YWE2NGY5NmM5NjM4
MmY2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q2FjaGVXaW4uY3BwCkBAIC0zNzMsNyArMzczLDcgQEAgUmVmUHRyPEZvbnQ+IEZvbnRD
YWNoZTo6Zm9udEZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb24KIAogUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmFsbGJhY2tGb250TmFtZTsKKyAgICBzdGF0aWMgTWFpblRo
cmVhZE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZhbGxiYWNrRm9udE5hbWU7CiAKICAgICBp
ZiAoIWZhbGxiYWNrRm9udE5hbWUuZ2V0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gKmZv
bnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBmYWxsYmFja0ZvbnROYW1lKTsKQEAgLTM4NCw3
ICszODQsNyBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aQogICAgIC8vIFNlYXJjaCBhbGwgdHlw
aWNhbCBXaW5kb3dzLWluc3RhbGxlZCBmdWxsIFVuaWNvZGUgZm9udHMuCiAgICAgLy8gU29ydGVk
IGJ5IG1vc3QgdG8gbGVhc3QgZ2x5cGhzIGFjY29yZGluZyB0byBodHRwOi8vZW4ud2lraXBlZGlh
Lm9yZy93aWtpL1VuaWNvZGVfdHlwZWZhY2VzCiAgICAgLy8gU3RhcnQgd2l0aCBUaW1lcyBOZXcg
Um9tYW4gYWxzbyBzaW5jZSBpdCBpcyB0aGUgZGVmYXVsdCBpZiB0aGUgdXNlciBkb2Vzbid0IGNo
YW5nZSBwcmVmcy4KLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmFsbGJh
Y2tGb250c1tdID0geworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZmFsbGJhY2tGb250c1tdID0gewogICAgICAgICBBdG9tU3RyaW5nKCJUaW1l
cyBOZXcgUm9tYW4iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCksCiAgICAgICAg
IEF0b21TdHJpbmcoIk1pY3Jvc29mdCBTYW5zIFNlcmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpLAogICAgICAgICBBdG9tU3RyaW5nKCJUYWhvbWEiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCksCkBAIC02OTQsOCArNjk0LDggQEAgc3RkOjp1bmlxdWVfcHRy
PEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25z
dCBGb250RGUKIAogY29uc3QgQXRvbVN0cmluZyYgRm9udENhY2hlOjpwbGF0Zm9ybUFsdGVybmF0
ZUZhbWlseU5hbWUoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5TmFtZSkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gdGltZXNOZXdSb21hbigiVGltZXMgTmV3IFJvbWFu
IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9tU3RyaW5nPiBtaWNyb3NvZnRTYW5zU2VyaWYoIk1pY3Jvc29mdCBTYW5zIFNl
cmlmIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWlu
VGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gdGltZXNOZXdSb21hbigiVGlt
ZXMgTmV3IFJvbWFuIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0
YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbWljcm9zb2Z0
U2Fuc1NlcmlmKCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKIAogICAgIHN3aXRjaCAoZmFtaWx5TmFtZS5sZW5ndGgoKSkgewogICAgIC8v
IE9uIFdpbmRvd3MsIHdlIGRvbid0IHN1cHBvcnQgYml0bWFwIGZvbnRzLCBidXQgbGVnYWN5IGNv
bnRlbnQgZXhwZWN0cyBzdXBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQppbmRleCA4
NWFhMWUxNDE1YjAwZjUxMTllZDdhMWI2NDNiOTZhZmQyMGI3NTA5Li5iOGIwNTdiOTI5M2NlMmEy
OTkwMWYxYjhhMDNiODRhZWQ3MGJkMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbQpA
QCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBpbmxpbmUgQXRvbVN0cmluZyBleHRyYWN0SFRUUFN0
YXR1c1RleHQoQ0ZIVFRQTWVzc2FnZVJlZiBtZXNzYWdlUmVmKQogICAgIGlmIChhdXRvIGh0dHBT
dGF0dXNMaW5lID0gYWRvcHRDRihDRkhUVFBNZXNzYWdlQ29weVJlc3BvbnNlU3RhdHVzTGluZSht
ZXNzYWdlUmVmKSkpCiAgICAgICAgIHJldHVybiBleHRyYWN0UmVhc29uUGhyYXNlRnJvbUhUVFBT
dGF0dXNMaW5lKGh0dHBTdGF0dXNMaW5lLmdldCgpKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9tU3RyaW5nPiBkZWZhdWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBkZWZhdWx0U3RhdHVzVGV4dCgiT0siLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgcmV0dXJuIGRlZmF1bHRTdGF0dXNUZXh0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAppbmRleCAy
OWViZTU2YWYwOTExMmIzMWU1MzY5ZmU4OWVhNzg5NzRiZjc3ZTAwLi40MWJiNTJmMDZlZjQ4NmI3
MWE0Y2U3NmQ4MzIwZjM3ZTkxOGUyOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Db21wbGV4TGluZUxheW91dC5jcHAKQEAgLTIxNTgsNyArMjE1OCw3IEBAIHZvaWQgQ29tcGxl
eExpbmVMYXlvdXQ6OmNoZWNrTGluZXNGb3JUZXh0T3ZlcmZsb3coKQogICAgIC8vIERldGVybWlu
ZSB0aGUgd2lkdGggb2YgdGhlIGVsbGlwc2lzIHVzaW5nIHRoZSBjdXJyZW50IGZvbnQuCiAgICAg
Ly8gRklYTUU6IENTUzMgc2F5cyB0aGlzIGlzIGNvbmZpZ3VyYWJsZSwgYWxzbyBuZWVkIHRvIHVz
ZSAweDAwMkUgKEZVTEwgU1RPUCkgaWYgaG9yaXpvbnRhbCBlbGxpcHNpcyBpcyAibm90IHJlbmRl
cmFibGUiCiAgICAgY29uc3QgRm9udENhc2NhZGUmIGZvbnQgPSBzdHlsZSgpLmZvbnRDYXNjYWRl
KCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZo
b3Jpem9udGFsRWxsaXBzaXMsIDEpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxpcHNpcywgMSk7
CiAgICAgY29uc3QgRm9udENhc2NhZGUmIGZpcnN0TGluZUZvbnQgPSBtX2Zsb3cuZmlyc3RMaW5l
U3R5bGUoKS5mb250Q2FzY2FkZSgpOwogICAgIGZsb2F0IGZpcnN0TGluZUVsbGlwc2lzV2lkdGgg
PSBmaXJzdExpbmVGb250LndpZHRoKG1fZmxvdy5jb25zdHJ1Y3RUZXh0UnVuKCZob3Jpem9udGFs
RWxsaXBzaXMsIDEsIG1fZmxvdy5maXJzdExpbmVTdHlsZSgpKSk7CiAgICAgZmxvYXQgZWxsaXBz
aXNXaWR0aCA9IChmb250ID09IGZpcnN0TGluZUZvbnQpID8gZmlyc3RMaW5lRWxsaXBzaXNXaWR0
aCA6IGZvbnQud2lkdGgobV9mbG93LmNvbnN0cnVjdFRleHRSdW4oJmhvcml6b250YWxFbGxpcHNp
cywgMSwgc3R5bGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA4MTUwZjU1ZmRlMjZhNjQ3YTdl
ZDgwM2EzZGI3NzMzNmM0YTcwOThiLi45NzAzYmU0NDlmNjIyOWZiYzM2MDBmMDUyZTA4NGRhNjkx
NDZlMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtOTkxLDggKzk5MSw4IEBAIHZvaWQgUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRlcmF0b3ImIGl0
ZXJhdG9yLCBib29sCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBjb25zdCBVQ2hh
ciBlbGxpcHNpc0FuZFNwYWNlWzJdID0geyBob3Jpem9udGFsRWxsaXBzaXMsICcgJyB9OwotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZWxsaXBzaXNBbmRTcGFjZVN0
cihlbGxpcHNpc0FuZFNwYWNlLCAyKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21TdHJpbmc+IGVsbGlwc2lzU3RyKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpOworICAgICAgICBz
dGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVsbGlwc2lz
QW5kU3BhY2VTdHIoZWxsaXBzaXNBbmRTcGFjZSwgMik7CisgICAgICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250
YWxFbGxpcHNpcywgMSk7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSBu
dW1WaXNpYmxlTGluZXMgPT0gMSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgICAg
ICBjb25zdCBGb250Q2FzY2FkZSYgZm9udCA9IGxpbmVTdHlsZS5mb250Q2FzY2FkZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAx
ZDdmMDMxY2ZlNTFhMjI0YTVhZjhhMDZlMmRiODdlOGQ0OWRlZjI3Li5iZDBiOTBlNWY5MmE0MThi
YjJlYzUwZmQ4NmZmM2EzNzcxMjNkZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE1NjYsOCArMTU2Niw4IEBAIGNvbnN0IEF0b21T
dHJpbmcmIFJlbmRlclN0eWxlOjpoeXBoZW5TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4g
aHlwaGVuYXRpb25TdHJpbmc7CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgZGVwZW5kIG9u
IGxvY2FsZS4KLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gaHlwaGVuTWlu
dXNTdHJpbmcoJmh5cGhlbk1pbnVzLCAxKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRv
bVN0cmluZz4gaHlwaGVuU3RyaW5nKCZoeXBoZW4sIDEpOworICAgIHN0YXRpYyBNYWluVGhyZWFk
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaHlwaGVuTWludXNTdHJpbmcoJmh5cGhl
bk1pbnVzLCAxKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGh5cGhlblN0cmluZygmaHlwaGVuLCAxKTsKICAgICByZXR1cm4gZm9udENhc2Nh
ZGUoKS5wcmltYXJ5Rm9udCgpLmdseXBoRm9yQ2hhcmFjdGVyKGh5cGhlbikgPyBoeXBoZW5TdHJp
bmcgOiBoeXBoZW5NaW51c1N0cmluZzsKIH0KIApAQCAtMTU3OSwyOCArMTU3OSwyOCBAQCBjb25z
dCBBdG9tU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0
CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDdXN0b206CiAgICAgICAgIHJldHVybiB0ZXh0
RW1waGFzaXNDdXN0b21NYXJrKCk7CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpEb3Q6IHsK
LSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZERvdFN0cmlu
ZygmYnVsbGV0LCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+
IG9wZW5Eb3RTdHJpbmcoJndoaXRlQnVsbGV0LCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJl
YWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBmaWxsZWREb3RTdHJpbmcoJmJ1bGxl
dCwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gb3BlbkRvdFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOwogICAgICAgICByZXR1cm4g
dGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGw6OkZpbGxlZCA/IGZpbGxlZERv
dFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
azo6Q2lyY2xlOiB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBm
aWxsZWRDaXJjbGVTdHJpbmcoJmJsYWNrQ2lyY2xlLCAxKTsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5DaXJjbGVTdHJpbmcoJndoaXRlQ2lyY2xlLCAxKTsK
KyAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5n
PiBmaWxsZWRDaXJjbGVTdHJpbmcoJmJsYWNrQ2lyY2xlLCAxKTsKKyAgICAgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuQ2lyY2xlU3RyaW5n
KCZ3aGl0ZUNpcmNsZSwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0g
VGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkQ2lyY2xlU3RyaW5nIDogb3BlbkNpcmNs
ZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpEb3VibGVDaXJjbGU6
IHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IGZpbGxlZERvdWJs
ZUNpcmNsZVN0cmluZygmZmlzaGV5ZSwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nKCZidWxsc2V5ZSwgMSk7CisgICAg
ICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmls
bGVkRG91YmxlQ2lyY2xlU3RyaW5nKCZmaXNoZXllLCAxKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBvcGVuRG91YmxlQ2lyY2xlU3Ry
aW5nKCZidWxsc2V5ZSwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0g
VGV4dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nIDogb3Bl
bkRvdWJsZUNpcmNsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpU
cmlhbmdsZTogewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbVN0cmluZz4gZmls
bGVkVHJpYW5nbGVTdHJpbmcoJmJsYWNrVXBQb2ludGluZ1RyaWFuZ2xlLCAxKTsKLSAgICAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21TdHJpbmc+IG9wZW5UcmlhbmdsZVN0cmluZygmd2hp
dGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGZpbGxlZFRyaWFuZ2xlU3RyaW5nKCZibGFja1Vw
UG9pbnRpbmdUcmlhbmdsZSwgMSk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0
cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gb3BlblRyaWFuZ2xlU3RyaW5nKCZ3aGl0ZVVwUG9pbnRp
bmdUcmlhbmdsZSwgMSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4
dEVtcGhhc2lzRmlsbDo6RmlsbGVkID8gZmlsbGVkVHJpYW5nbGVTdHJpbmcgOiBvcGVuVHJpYW5n
bGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6U2VzYW1lOiB7Ci0g
ICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3RyaW5nPiBmaWxsZWRTZXNhbWVTdHJp
bmcoJnNlc2FtZURvdCwgMSk7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9tU3Ry
aW5nPiBvcGVuU2VzYW1lU3RyaW5nKCZ3aGl0ZVNlc2FtZURvdCwgMSk7CisgICAgICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZmlsbGVkU2VzYW1l
U3RyaW5nKCZzZXNhbWVEb3QsIDEpOworICAgICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG9wZW5TZXNhbWVTdHJpbmcoJndoaXRlU2VzYW1lRG90
LCAxKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNG
aWxsOjpGaWxsZWQgPyBmaWxsZWRTZXNhbWVTdHJpbmcgOiBvcGVuU2VzYW1lU3RyaW5nOwogICAg
IH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkF1dG86CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDIyMWVlNjVkOWI5ODdlZmEzMjJlMzY5YzE0MzBmMWUyODBl
YWY4NjkuLmZjY2YyYmExN2IwMTEyZWQyYjVhZGNhZTc4N2Y4ZWJlOWJhZWVjODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01NDUsMjAgKzU0NSwyMCBAQCB2b2lk
IEFkanVzdGVyOjphZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5bGUmIHN0eWxl
KSBjb25zdAogCiAgICAgaWYgKG1fZG9jdW1lbnQucXVpcmtzKCkubmVlZHNHTWFpbE92ZXJmbG93
U2Nyb2xsUXVpcmsoKSkgewogICAgICAgICAvLyBUaGlzIHR1cm5zIHNpZGViYXIgc2Nyb2xsYWJs
ZSB3aXRob3V0IG1vdXNlIG1vdmUgZXZlbnQuCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9tU3RyaW5nPiByb2xlVmFsdWUoIm5hdmlnYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CisgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gcm9sZVZhbHVlKCJuYXZpZ2F0aW9uIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBpZiAoc3R5bGUub3ZlcmZsb3dZKCkgPT0gT3Zl
cmZsb3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24ocm9sZUF0dHIpID09IHJvbGVWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNldE92ZXJmbG93
WShPdmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1aXJrcygpLm5l
ZWRzWW91VHViZU92ZXJmbG93U2Nyb2xsUXVpcmsoKSkgewogICAgICAgICAvLyBUaGlzIHR1cm5z
IHNpZGViYXIgc2Nyb2xsYWJsZSB3aXRob3V0IGhvdmVyLgotICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8QXRvbVN0cmluZz4gaWRWYWx1ZSgiZ3VpZGUtaW5uZXItY29udGVudCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5UaHJlYWRO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpZFZhbHVlKCJndWlkZS1pbm5lci1jb250
ZW50IiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICBpZiAoc3R5
bGUub3ZlcmZsb3dZKCkgPT0gT3ZlcmZsb3c6OkhpZGRlbiAmJiBtX2VsZW1lbnQtPmlkRm9yU3R5
bGVSZXNvbHV0aW9uKCkgPT0gaWRWYWx1ZSkKICAgICAgICAgICAgIHN0eWxlLnNldE92ZXJmbG93
WShPdmVyZmxvdzo6QXV0byk7CiAgICAgfQogICAgIGlmIChtX2RvY3VtZW50LnF1aXJrcygpLm5l
ZWRzRnVsbHNjcmVlbkRpc3BsYXlOb25lUXVpcmsoKSkgewogICAgICAgICBpZiAoaXM8SFRNTERp
dkVsZW1lbnQ+KG1fZWxlbWVudCkgJiYgc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpO
b25lKSB7Ci0gICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gaW5zdHJlYW1OYXRpdmVWaWRlb0RpdkNsYXNzKCJpbnN0cmVhbS1uYXRpdmUtdmlkZW8tLW1v
YmlsZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICAgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0VsZW1lbnRJRCgidmpz
X3ZpZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwor
ICAgICAgICAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MoImluc3RyZWFtLW5hdGl2ZS12aWRlby0t
bW9iaWxlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgICAgICAgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB2aWRlb0Vs
ZW1lbnRJRCgidmpzX3ZpZGVvXzNfaHRtbDVfYXBpIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogCiAgICAgICAgICAgICBhdXRvJiBkaXYgPSBkb3duY2FzdDxIVE1MRGl2RWxl
bWVudD4oKm1fZWxlbWVudCk7CiAgICAgICAgICAgICBpZiAoZGl2Lmhhc0NsYXNzKCkgJiYgZGl2
LmNsYXNzTmFtZXMoKS5jb250YWlucyhpbnN0cmVhbU5hdGl2ZVZpZGVvRGl2Q2xhc3MpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCA1
ZDA1MjExOWM2NDRjYmVmMjQwMmEyYzM5NmY2Nzc3Njk2MWM4OTE4Li4yNTQ1OGM0ZWE3ZWQyOTIx
YTQ4ZDFiYzdmY2UxY2E1MDliOTM1NWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTEwOSw4ICsxMDksOCBAQCB2b2lkIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdAogICAgIAogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OlJvdGF0ZU1vZGUgU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJvdGF0ZU1vZGUoKSBjb25zdAogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBhdXRvVmFsKCJhdXRvIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBBdG9tU3RyaW5nPiBhdXRvUmV2ZXJzZSgiYXV0by1yZXZlcnNlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbVN0cmluZz4gYXV0b1ZhbCgiYXV0byIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGF1dG9SZXZlcnNlKCJhdXRvLXJldmVyc2UiLCBBdG9tU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYgcm90YXRlID0gZ2V0QXR0cmli
dXRlKFNWR05hbWVzOjpyb3RhdGVBdHRyKTsKICAgICBpZiAocm90YXRlID09IGF1dG9WYWwpCiAg
ICAgICAgIHJldHVybiBSb3RhdGVBdXRvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlv
bkVsZW1lbnQuY3BwCmluZGV4IDFiNDYxYjQ3MzE4NjgwNjQyMGM4YTBlZDdhMzdjMTY4OTY2ZDNi
MzIuLjQ1ZTQ1ZDViY2U0ZjNhNDJhY2Y2ODRiNjJkZGJlYTBhYjIxN2U2YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTI3NiwxMCArMjc2LDEwIEBA
IHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6dXBkYXRlQW5pbWF0aW9uTW9kZSgpCiAKIHZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0Q2FsY01vZGUoY29uc3QgQXRvbVN0cmluZyYgY2FsY01v
ZGUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGRpc2Ny
ZXRlKCJkaXNjcmV0ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gbGluZWFyKCJsaW5lYXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHBhY2VkKCJwYWNlZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmlu
Zz4gc3BsaW5lKCJzcGxpbmUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBkaXNj
cmV0ZSgiZGlzY3JldGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBsaW5lYXIo
ImxpbmVhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHBhY2VkKCJwYWNlZCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHNwbGluZSgic3BsaW5lIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGlmIChjYWxjTW9kZSA9PSBkaXNjcmV0
ZSkKICAgICAgICAgc2V0Q2FsY01vZGUoQ2FsY01vZGU6OkRpc2NyZXRlKTsKICAgICBlbHNlIGlm
IChjYWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0yOTQsOCArMjk0LDggQEAgdm9pZCBTVkdBbmltYXRp
b25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9tU3RyaW5nJiBjYWxjTW9kZSkKIAogdm9p
ZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRBdHRyaWJ1dGVUeXBlKGNvbnN0IEF0b21TdHJpbmcm
IGF0dHJpYnV0ZVR5cGUpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGNzcygiQ1NTIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB4bWwoIlhNTCIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGNzcygiQ1NTIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgQXRvbVN0cmluZz4geG1sKCJYTUwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT0gY3NzKQogICAgICAgICBtX2F0dHJpYnV0ZVR5
cGUgPSBBdHRyaWJ1dGVUeXBlOjpDU1M7CiAgICAgZWxzZSBpZiAoYXR0cmlidXRlVHlwZSA9PSB4
bWwpCkBAIC0zMjEsMTQgKzMyMSwxNCBAQCBTdHJpbmcgU1ZHQW5pbWF0aW9uRWxlbWVudDo6ZnJv
bVZhbHVlKCkgY29uc3QKIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZlKCkg
Y29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3Vt
KCJzdW0iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1h
aW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBzdW0oInN1bSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OmFkZGl0aXZlQXR0
cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSB8fCBhbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0
aW9uTW9kZTo6Qnk7CiB9CiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNBY2N1bXVsYXRl
ZCgpIGNvbnN0CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IHN1bSgic3VtIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gc3VtKCJzdW0iLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjphY2N1bXVs
YXRlQXR0cik7CiAgICAgcmV0dXJuIHZhbHVlID09IHN1bSAmJiBhbmltYXRpb25Nb2RlKCkgIT0g
QW5pbWF0aW9uTW9kZTo6VG87CiB9CkBAIC02MDYsNyArNjA2LDcgQEAgdm9pZCBTVkdBbmltYXRp
b25FbGVtZW50Ojpjb21wdXRlQ1NTUHJvcGVydHlWYWx1ZShTVkdFbGVtZW50KiBlbGVtZW50LCBD
U1NQcm9wZXIKIAogc3RhdGljIGJvb2wgaW5oZXJpdHNGcm9tUHJvcGVydHkoU1ZHRWxlbWVudCog
dGFyZ2V0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0
cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+
IGluaGVyaXQoImluaGVyaXQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgCiAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSB8fCB2YWx1ZSAhPSBpbmhlcml0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4
IDZjZTc1ZWU3NTMzMjRiOGRlNjMxYTMwNjQzZjliZDhlZjgxZDg2OWQuLjI1YjgyYTI5YTY3NDAx
NmE3NjJlZGQ1OWNiNTg4ZWE2OWFkMGUzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXREaXNh
YmxlZChib29sIHNldERpc2FibGVkKQogCiBjb25zdCBBdG9tU3RyaW5nJiBTVkdTdHlsZUVsZW1l
bnQ6OnR5cGUoKSBjb25zdAogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBkZWZhdWx0VmFsdWUoInRleHQvY3NzIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOworICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRv
bVN0cmluZz4gZGVmYXVsdFZhbHVlKCJ0ZXh0L2NzcyIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiBuID0gZ2V0QXR0cmlidXRlKFNWR05h
bWVzOjp0eXBlQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUuZ2V0
KCkgOiBuOwogfQpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6c2V0VHlw
ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlKQogCiBjb25zdCBBdG9tU3RyaW5nJiBTVkdTdHlsZUVs
ZW1lbnQ6Om1lZGlhKCkgY29uc3QKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZGVmYXVsdFZhbHVlKCJhbGwiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9t
U3RyaW5nPiBkZWZhdWx0VmFsdWUoImFsbCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKICAgICBjb25zdCBBdG9tU3RyaW5nJiBuID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihTVkdOYW1lczo6bWVkaWFBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRl
ZmF1bHRWYWx1ZS5nZXQoKSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IDQ0OWIxNGNkNTAxZGYyNTU4NzRlY2NmYzU4NDlj
ODk0ZjI4MTE2ZmQuLjA0MzIxMjhjOTgxMmU5NWI2MGVjNzE3YTZlOGY3OTU5ZTlmYzQyYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBA
IC0zNDAsNyArMzQwLDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQ2xvY2tWYWx1
ZShjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgCiAgICAgU3RyaW5nIHBhcnNlID0gZGF0YS5zdHJp
cFdoaXRlU3BhY2UoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3Ry
aW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBB
dG9tU3RyaW5nPiBpbmRlZmluaXRlVmFsdWUoImluZGVmaW5pdGUiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaWYgKHBhcnNlID09IGluZGVmaW5pdGVWYWx1ZSkKICAg
ICAgICAgcmV0dXJuIFNNSUxUaW1lOjppbmRlZmluaXRlKCk7CiAKQEAgLTY1Miw4ICs2NTIsOCBA
QCBib29sIFNWR1NNSUxFbGVtZW50Ojppc0Zyb3plbigpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxl
bWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiB7ICAgIAotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuZXZlcigibmV2ZXIiLCBB
dG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21TdHJpbmc+IHdoZW5Ob3RBY3RpdmUoIndoZW5Ob3RBY3RpdmUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBuZXZlcigibmV2ZXIiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3ll
ZDxjb25zdCBBdG9tU3RyaW5nPiB3aGVuTm90QWN0aXZlKCJ3aGVuTm90QWN0aXZlIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
ID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1lczo6cmVzdGFydEF0dHIp
OwogICAgIGlmICh2YWx1ZSA9PSBuZXZlcikKICAgICAgICAgcmV0dXJuIFJlc3RhcnROZXZlcjsK
QEAgLTY2NCw3ICs2NjQsNyBAQCBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVu
dDo6cmVzdGFydCgpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6RmlsbE1vZGUgU1ZHU01J
TEVsZW1lbnQ6OmZpbGwoKSBjb25zdAogeyAgIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9tU3RyaW5nPiBmcmVlemUoImZyZWV6ZSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0
b21TdHJpbmc+IGZyZWV6ZSgiZnJlZXplIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihTVkdOYW1lczo6ZmlsbEF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBmcmVl
emUgPyBGaWxsRnJlZXplIDogRmlsbFJlbW92ZTsKIH0KQEAgLTY5Nyw3ICs2OTcsNyBAQCBTTUlM
VGltZSBTVkdTTUlMRWxlbWVudDo6cmVwZWF0Q291bnQoKSBjb25zdAogICAgIGlmICh2YWx1ZS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIFNNSUxUaW1lOjp1bnJlc29sdmVkKCk7CiAKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZhbHVlKCJp
bmRlZmluaXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRp
YyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5kZWZpbml0ZVZh
bHVlKCJpbmRlZmluaXRlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAg
IGlmICh2YWx1ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6
aW5kZWZpbml0ZSgpOwogICAgIGJvb2wgb2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb25JbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVG
dW5jdGlvbkltcGwuY3BwCmluZGV4IDcyYjI1YjViOGNjMmZjMWU3MDFjNzkxOWUzMzkyNzY3YzIz
MTQwNWQuLjQ3NmZiMzRiM2FjYTRiMjFmYjdkMGVkY2VjMWRmMGE5MTI4ZDk4OTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFs
dWVGdW5jdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuY3BwCkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29sb3IgU1ZHQW5pbWF0aW9uQ29sb3JGdW5jdGlvbjo6
Y29sb3JGcm9tU3RyaW5nKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYg
c3RyaW5nKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBj
dXJyZW50Q29sb3IoImN1cnJlbnRDb2xvciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJp
bmc+IGN1cnJlbnRDb2xvcigiY3VycmVudENvbG9yIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwogCiAgICAgaWYgKHN0cmluZyAhPSBjdXJyZW50Q29sb3IuZ2V0KCkpCiAgICAg
ICAgIHJldHVybiBTVkdQcm9wZXJ0eVRyYWl0czxDb2xvcj46OmZyb21TdHJpbmcoc3RyaW5nKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5p
bWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0
b3IuaAppbmRleCAyMWU4ODNmZTI0NDgzOGZmMzc0Njg2OWJmMTFhM2RmNDZmZjRiZTJhLi5kOGU4
ZWMxNzYzYzkyMDI5YTE5Njg5YmU1N2U2NTFlYjhhYjUwZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvci5oCkBAIC03Miw3ICs3
Miw3IEBAIGNsYXNzIFNWR1Byb3BlcnR5QW5pbWF0b3IgOiBwdWJsaWMgU1ZHQXR0cmlidXRlQW5p
bWF0b3IgewogCiAgICAgU3RyaW5nIGFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRh
cmdldEVsZW1lbnQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiAgICAgewotICAgICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gaW5oZXJpdCgiaW5oZXJpdCIs
IEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICAgICAgc3RhdGljIE1haW5U
aHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBpbmhlcml0KCJpbmhlcml0Iiwg
QXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgICAgICByZXR1cm4gdmFsdWUg
PT0gaW5oZXJpdCA/IGNvbXB1dGVJbmhlcml0ZWRDU1NQcm9wZXJ0eVZhbHVlKHRhcmdldEVsZW1l
bnQpIDogdmFsdWU7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>