<?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>129612</bug_id>
          
          <creation_ts>2014-03-03 11:17:28 -0800</creation_ts>
          <short_desc>Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL</short_desc>
          <delta_ts>2014-03-14 01:31:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>130185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>darin</cc>
    
    <cc>dbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986418</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-03 11:17:28 -0800</bug_when>
    <thetext>As suggested by Darin in https://bugs.webkit.org/show_bug.cgi?id=128173#c2. The recommended alternative is static NeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989723</commentid>
    <comment_count>1</comment_count>
      <attachid>226533</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-12 11:01:23 -0700</bug_when>
    <thetext>Created attachment 226533
Patch

I removed the list of changes in the WebCore ChangeLog because it was huge</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989981</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-13 03:31:03 -0700</bug_when>
    <thetext>BTW I opened bug 130185 to start replacing them with static NeverDestroyed&lt;T&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989983</commentid>
    <comment_count>3</comment_count>
      <attachid>226588</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-13 03:37:49 -0700</bug_when>
    <thetext>Created attachment 226588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990045</commentid>
    <comment_count>4</comment_count>
      <attachid>226588</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-13 09:58:59 -0700</bug_when>
    <thetext>Comment on attachment 226588
Patch

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

Did you use the do-webcore-rename script? It’s really good at doing changes like this one automatically.

&gt; Source/WTF/wtf/StdLibExtras.h:38
&gt; -#ifndef DEFINE_STATIC_LOCAL
&gt; +#ifndef DEPRECATED_DEFINE_STATIC_LOCAL

Should update the comment above to talk about using NeverDestroyed instead.

&gt; Tools/DumpRenderTree/JavaScriptThreading.cpp:49
&gt; +    DEPRECATED_DEFINE_STATIC_LOCAL(Mutex, staticMutex, ());

Note for the future: I’m surprised we need this at all in test tools. A plain old static should be OK in all the test tool cases. It’s only the frameworks themselves that have the “no static destructor” constraint.

&gt; Tools/Scripts/check-for-exit-time-destructors:100
&gt; +    print &quot;ERROR: Use DEPRECATED_DEFINE_STATIC_LOCAL from &lt;wtf/StdLibExtras.h&gt;\n&quot;;

This is no longer correct advice. The message should mention NeverDestroyed instead.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/SeccompFilters.cpp:45
&gt; +DEPRECATED_DEFINE_STATIC_LOCAL(String, rootDir, (ASCIILiteral(&quot;/&quot;)));

Same thought here about test tools not needing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990051</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-13 10:19:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 226588 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226588&amp;action=review
&gt; 
&gt; Did you use the do-webcore-rename script? It’s really good at doing changes like this one automatically.

Oh, didn&apos;t know about it, I just cooked my own.

&gt; &gt; Source/WTF/wtf/StdLibExtras.h:38
&gt; &gt; -#ifndef DEFINE_STATIC_LOCAL
&gt; &gt; +#ifndef DEPRECATED_DEFINE_STATIC_LOCAL
&gt; 
&gt; Should update the comment above to talk about using NeverDestroyed instead.

Good point

&gt; &gt; Tools/DumpRenderTree/JavaScriptThreading.cpp:49
&gt; &gt; +    DEPRECATED_DEFINE_STATIC_LOCAL(Mutex, staticMutex, ());
&gt; 
&gt; Note for the future: I’m surprised we need this at all in test tools. A plain old static should be OK in all the test tool cases. It’s only the frameworks themselves that have the “no static destructor” constraint.

Yep, I&apos;ll open a bug for that.

&gt; &gt; Tools/Scripts/check-for-exit-time-destructors:100
&gt; &gt; +    print &quot;ERROR: Use DEPRECATED_DEFINE_STATIC_LOCAL from &lt;wtf/StdLibExtras.h&gt;\n&quot;;
&gt; 
&gt; This is no longer correct advice. The message should mention NeverDestroyed instead.

Indeed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990344</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-14 01:31:37 -0700</bug_when>
    <thetext>Committed r165607: &lt;http://trac.webkit.org/changeset/165607&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226533</attachid>
            <date>2014-03-12 11:01:23 -0700</date>
            <delta_ts>2014-03-13 03:37:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129612-20140312190053.patch</filename>
            <type>text/plain</type>
            <size>445636</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NDhmOTY1OWEzMWQ2NDZhZDZiNGE2MTczODc1YmUzYTRhN2ZmOTIxLi5iMzZmNTliNTQ3Y2QwZDBh
ZGNkYmY1MzljMDdkN2QzNmJjZTdhZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+
IGluc3RlYWQuCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAg
ICAoanNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFn
ZWRWYWx1ZS5tbToKKyAgICAgICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpvYmplY3RHcm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAg
ICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3Rp
Y3NNdXRleCk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0b3JzKToKKwogMjAxNC0w
My0xMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEdldEJ5SWQg
bGlzdCBjYWNoaW5nIHNob3VsZCB1c2Ugc29tZXRoaW5nIG9iamVjdC1vcmllbnRlZCByYXRoZXIg
dGhhbiBQb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMmRlZTljOWI3ZjU1ZGUw
OWI1ZWJjZGYyYTkwY2I1YzNjN2E1ODg0MS4uNzQxMDZhNzMxZjQ5N2UwOTU2MDI3MWI2OGIzMTEz
MGVmYzhlNzA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NU
QVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFQ+IGluc3RlYWQuCisKKyAgICAgICAgKiB3dGYvUnVuTG9vcC5j
cHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN1cnJlbnQpOgorICAgICAgICAqIHd0Zi9TdGRM
aWJFeHRyYXMuaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgorICAgICAg
ICAoV1RGOjp0aHJlYWRNYXBNdXRleCk6CisgICAgICAgIChXVEY6OnRocmVhZE1hcCk6CisgICAg
ICAgICogd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcDoKKyAgICAgICAgKFdURjo6cGlwZU9iamVj
dCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nU3RhdGljcy5jcHA6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OmVtcHR5KToKKwogMjAxNC0wMy0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAzMTNmMzRlZmFiZDMxZmQ5N2JkNDgwMTkwMDlhMjFhY2I1Zjk4NzIxLi4xYTI3
NTNkY2I5MDA1MjFjMmQxYWUzMDMxZTE0MzU4ODFlOGE2OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTQtMDMtMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmVuYW1lIERFRklORV9TVEFUSUNfTE9DQUwgdG8gREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGb3IgbmV3IGNvZGUgdXNlIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBp
bnN0ZWFkLgorCisgICAgICAgIFJlbW92ZWQgdGhlIGxpc3Qgb2YgY2hhbmdlZCBmaWxlcyBhcyBp
dCB3YXMgaHVnZS4KKwogMjAxNC0wMy0xMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCBidWlsZCBhZnRlciByMTY1NDcyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5k
ZXggZWI3YWI5MmUyNjU2OWIwNjMwYjU4NWJlODcyODVjNmI2MzAyN2I4Zi4uMGYxNDhhYzcwOWFh
MjAyNDk2NGUwNDRlOWY5ZjAyNmQ1YzNhNTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDE0LTAzLTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJlbmFtZSBERUZJTkVfU1RBVElDX0xPQ0FMIHRvIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRm9yIG5ldyBjb2RlIHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5z
dGVhZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5j
cHA6CisgICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNFZmw6OmluaXRpYWxpemUpOgorICAgICAg
ICAqIGV3ay9ld2tfbWFpbi5jcHA6CisgICAgICAgICh0cmFja2VyQ2xpZW50KToKKwogMjAxNC0w
My0xMCAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VG
TF0gTW9kaWZ5IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHJlbGF0ZWQgZnVuY3Rpb25zIGluIGV3
a192aWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9pb3MvQ2hhbmdlTG9nCmluZGV4IDBmMmJhYThhZjk5MGI1MDAyODA0ZTZjNmFkMTFj
OGNhN2Q4Y2QwZjQuLmE3ZTMyOWRjZDBkMGIxNmIxZjA0NjJiNjhmZTA4MjkzMjI2Zjg2NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NU
QVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFQ+IGluc3RlYWQuCisKKyAgICAgICAgKiBNaXNjL0Vtb2ppRmFs
bGJhY2tGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rv
cjo6Z2V0RmFsbGJhY2tGb250RGF0YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQubW06CisgICAgICAgIChXZWJGaXhlZFBvc2l0aW9uQ29udGVudERh
dGFMb2NrKToKKwogMjAxNC0wMi0xNyAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8uY29ycmVpYUBv
cGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBQYXNzT3duUHRyL093blB0
ciB3aXRoIHN0ZDo6dW5pcXVlX3B0ciBpbiBXZWJDb3JlL2luc3BlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDFmNWFjNjJmMDkxMzA3Zjk1NGNmY2VmYjc3ODdjMjQzZDk2MWQyNWYuLjBkYjFmYjk2
ZDE4NTA2MGJiNjgyOTY1NWY1ZGZkYmMzZTA0YzNiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+
IGluc3RlYWQuCisKKyAgICAgICAgKiBIaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbToKKyAg
ICAgICAgKGJhY2tGb3J3YXJkTGlzdHMpOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0
ZW0ubW06CisgICAgICAgIChoaXN0b3J5SXRlbVdyYXBwZXJzKToKKyAgICAgICAgKiBNaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKCtbTlNQYXN0ZWJvYXJkIF93ZWJfd3Jp
dGFibGVUeXBlc0ZvclVSTF0pOgorICAgICAgICAoX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhv
dXRBcmNoaXZlKToKKyAgICAgICAgKF93cml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSk6
CisgICAgICAgICogTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW06CisgICAgICAgIChmb250RnJv
bU5TRm9udCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFu
YWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6c2hh
cmVkKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6cGx1Z2luUHJveHlNYXApOgorICAgICAgICAqIFBsdWdpbnMv
SG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6
Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eUlu
c3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm94eUNsYXNzKToKKyAgICAgICAgKiBQbHVn
aW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoc3RyZWFtcyk6CisgICAg
ICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW06CisgICAgICAgICh0cmFuc2FjdGlv
bkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlVzZXJNZWRpYUNsaWVudC5tbToKKyAgICAgICAgKHVzZXJNZWRpYVJlcXVlc3RzTWFwKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbToKKyAgICAgICAgKHJl
Z0V4cEZvckxhYmVscyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
YWVEZXNjRnJvbUpTVmFsdWUpOgorCiAyMDE0LTAzLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dLMV0gQ3Jhc2ggaW4gSFRNTE1lZGlhRWxlbWVu
dDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKCkgLSAiLVtOU1NldCBhZGRPYmplY3Q6XTogb2JqZWN0
IGNhbm5vdCBiZSBuaWwiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggM2U3MDllY2FmM2NiYzczNGNhMmE2
MTBlNTc1ZjMxMmJhYjcxZDJkNi4uNDliMjQ2YWQ4MzlkMjZmOGI2MjMzYzMzOTU1MWI5YTBhY2Mw
ODVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTAzLTEyICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbmFtZSBE
RUZJTkVfU1RBVElDX0xPQ0FMIHRvIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIG5ldyBjb2Rl
IHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYkhpc3RvcnkuY3BwOgorICAg
ICAgICAoc2hhcmVkSGlzdG9yeVN0b3JhZ2UpOgorICAgICAgICAqIFdlYkxvY2FsaXphYmxlU3Ry
aW5ncy5jcHA6CisgICAgICAgIChtYWluQnVuZGxlTG9jU3RyaW5ncyk6CisgICAgICAgIChmcmFt
ZXdvcmtMb2NTdHJpbmdzTXV0ZXgpOgorICAgICAgICAoZnJhbWV3b3JrTG9jU3RyaW5ncyk6Cisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpzdGFuZGFyZFVzZXJBZ2Vu
dFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorCiAyMDE0LTAzLTA2ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRXhwb3NlIHRoZSBj
b25zb2xlIG9iamVjdCBpbiBKU0NvbnRleHRzIHRvIGludGVyYWN0IHdpdGggV2ViIEluc3BlY3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAxZTdlOGFkMmJjMGZlZGRkZDAxY2JhYzk4ODFjOWFl
NmMyOTFmMzE2Li4xZDNlODU4NGRlYTEwZjA4ZWYxNTY4YzNjZDgxMzY3OGIwY2E2MmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAzLTEyICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbmFtZSBERUZJTkVf
U1RBVElDX0xPQ0FMIHRvIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIG5ldyBjb2RlIHVzZSBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEV4cG9zZSB0aGUgY29uc29s
ZSBvYmplY3QgaW4gSlNDb250ZXh0cyB0byBpbnRlcmFjdCB3aXRoIFdlYiBJbnNwZWN0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlYzQxZjkxY2Y2ZWYyMWEyMTZiNTQ5Y2YzNjRjODU2ZTFlNmM3YmQzLi4wMTA2
NjQ2NzMwZTdkZDgwMTFmMWMzNjUzNjEyZWY4YTFlMzY2MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTQtMDMtMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmVuYW1lIERFRklORV9TVEFUSUNfTE9DQUwgdG8gREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGb3IgbmV3IGNvZGUgdXNlIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBp
bnN0ZWFkLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FM
aXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0SW5kZXhTdGF0ZW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpnZXRPYmplY3RTdG9yZVN0YXRlbWVudCk6CisgICAgICAgICogU2hh
cmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0
KToKKwogMjAxNC0wMy0xMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciBzaG91bGQgbm90IGJlIGV4cG9zZWQgb24g
V0tXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3Jh
cHBlck9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tCmluZGV4IGQzOGU2NDA4ODU3ZDQyOTM0ZDJiNGNhYjAzYjBmMTAyMWMxY2FhZTcuLjJl
NWEwZTZhNzAyN2RjZGEwY2IyODM1YzQxZDFjZWU2NzFiYWVkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCkBAIC00NSw3ICs0NSw3IEBA
IHB1YmxpYzoKIAogc3RhdGljIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyKiBqc0FQSVdy
YXBwZXJPYmplY3RIYW5kbGVPd25lcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU0FQ
SVdyYXBwZXJPYmplY3RIYW5kbGVPd25lciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNBUElXcmFwcGVyT2JqZWN0
SGFuZGxlT3duZXIsIGpzV3JhcHBlck9iamVjdEhhbmRsZU93bmVyLCAoKSk7CiAgICAgcmV0dXJu
ICZqc1dyYXBwZXJPYmplY3RIYW5kbGVPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KaW5kZXggY2QzMzRjNGY2MDk0Mjg5M2YwZWE4YTFkNzdl
NDAzNDE4NjIzZDNjMi4uOTUzY2I1ZmJkYWFjMTM2ZTY1MWIyOWNjZjU4ZTdkNzQzOThmYzkwZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCkBAIC00Niw3
ICs0Niw3IEBAIHB1YmxpYzoKIAogc3RhdGljIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIqIG1h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTTWFu
YWdlZFZhbHVlSGFuZGxlT3duZXIsIGpzTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25l
ciwganNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciwgKCkpOwogICAgIHJldHVybiAmanNNYW5hZ2Vk
VmFsdWVIYW5kbGVPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApp
bmRleCBhMzE0ZTE2YWFjZTJkNzU1YTE2NDFlYTE2MTg5YmNjOTdkOTc4ZmQwLi42YzFhMzViMzM4
ZTQ1NzQ1NzRkMTkyYzFlYTUzNjExMDMxYmFlYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcApAQCAtNTIsNyArNTIsNyBAQCBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpiYWNrdHJhY2VPYmplY3RHcm91cCA9ICJiYWNrdHJhY2UiOwogLy8gY3JlYXRlIG9i
amVjdHMgaW4gdGhlIHNhbWUgZ3JvdXAuCiBzdGF0aWMgU3RyaW5nIG9iamVjdEdyb3VwRm9yQnJl
YWtwb2ludEFjdGlvbihjb25zdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uJiBhY3Rpb24pCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9iamVjdEdyb3VwLCAo
ImJyZWFrcG9pbnQtYWN0aW9uLSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBvYmplY3RHcm91cCwgKCJicmVha3BvaW50LWFjdGlvbi0iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcob2JqZWN0R3JvdXAsIFN0
cmluZzo6bnVtYmVyKGFjdGlvbi5pZGVudGlmaWVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
U3RyaW5ncy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQppbmRleCAzY2EzMzQwMGI4MjA0YzdkNWFlNzRl
Zjk4MmUwYzhiYmNkODRmNGY5Li4yNzYzNzQ0MTYwYjg0ZmZkMmMzNzc1OWE0M2RiZDMzZGYwMTQ1
YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5CkBA
IC03Miw3ICs3Miw3IEBAIGJhY2tlbmRfZGlzcGF0Y2hlcl9kaXNwYXRjaF9tZXRob2QgPSAoCiAK
ICAgICB0eXBlZGVmIHZvaWQgKCR7ZGlzcGF0Y2hlck5hbWV9OjoqQ2FsbEhhbmRsZXIpKGxvbmcg
Y2FsbElkLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgbWVzc2FnZSk7CiAgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ2FsbEhhbmRsZXI+IERpc3BhdGNoTWFwOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoRGlzcGF0Y2hNYXAsIGRpc3BhdGNoTWFwLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERpc3BhdGNoTWFwLCBkaXNwYXRjaE1hcCwgKCkp
OwogICAgIGlmIChkaXNwYXRjaE1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0
IHN0cnVjdCBNZXRob2RUYWJsZSB7CiAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCmluZGV4IDllNmJl
ZTkxZTZhODNjYTBiMWUyMTEzM2NmZTJmNzg0YmZlNzUwNWIuLmNkODM0OTE5MjZiZDk1YzIxN2Mx
YmMyMTI1ODZjYTFhNzcyZGI1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9KU1N0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSlNTdGFjay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIHNpemVfdCBjb21taXR0
ZWRCeXRlc0NvdW50ID0gMDsKIAogc3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7
CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfSAgICAKICNlbmRpZiAvLyBFTkFCTEUoTExJTlRf
Q19MT09QKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxl
QWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKaW5kZXggZTI1NmM3N2U5OGY3MDNkZmEzZDcwNmEzMDAzMDc1YmVmYjA3MDFlZS4u
YWNjZjVmY2Y2MGFhN2UwNDVjMTViNTk5N2M0N2EzMmIxMDE2YWM0YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0xMzcsNyAr
MTM3LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UGFnZVJlc2VydmF0aW9uLCAxNj4gcmVzZXJ2
YXRpb25zOwogICAgIHN0YXRpYyBIYXNoU2V0PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqPiYg
YWxsb2NhdG9ycygpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
RGVtYW5kRXhlY3V0YWJsZUFsbG9jYXRvcio+LCBzQWxsb2NhdG9ycywgKCkpOworICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxs
b2NhdG9yKj4sIHNBbGxvY2F0b3JzLCAoKSk7CiAgICAgICAgIHJldHVybiBzQWxsb2NhdG9yczsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwIGIvU291cmNl
L1dURi93dGYvUnVuTG9vcC5jcHAKaW5kZXggMTFhODYwZmQwNjUxOTVkMjdmYjdlOWJmYzA3NzM0
ZTNlN2E0OTA3NC4uZjBmZWI0Nzk3MGNjMDEwZmY0MGFhNjhmZjQ2ZWRlMTlhZmZmYTJlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UnVuTG9vcC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKQogCiBSdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9v
cEhvbGRlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRo
cmVhZFNwZWNpZmljPFJ1bkxvb3A6OkhvbGRlcj4sIHJ1bkxvb3BIb2xkZXIsICgpKTsKICAgICBy
ZXR1cm4gcnVuTG9vcEhvbGRlci0+cnVuTG9vcCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCmlu
ZGV4IDJlMzUwMzFkYTk3NDI0ZTczYTlhODBlZmY1ZTRiZTBlMWFlNWU0YTAuLjY3OWNkNmU4MDg2
OGVmNWVkMmIzMDVjMWEwZmQyNzY4ZWYzMjQ1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCkBAIC0z
NSwxMyArMzUsMTMgQEAKIC8vIFVzZSB0aGVzZSB0byBkZWNsYXJlIGFuZCBkZWZpbmUgYSBzdGF0
aWMgbG9jYWwgdmFyaWFibGUgKHN0YXRpYyBUOykgc28gdGhhdAogLy8gIGl0IGlzIGxlYWtlZCBz
byB0aGF0IGl0cyBkZXN0cnVjdG9ycyBhcmUgbm90IGNhbGxlZCBhdCBleGl0LiBVc2luZyB0aGlz
CiAvLyAgbWFjcm8gYWxzbyBhbGxvd3Mgd29ya2Fyb3VuZHMgYSBjb21waWxlciBidWcgcHJlc2Vu
dCBpbiBBcHBsZSdzIHZlcnNpb24gb2YgR0NDIDQuMC4xLgotI2lmbmRlZiBERUZJTkVfU1RBVElD
X0xPQ0FMCisjaWZuZGVmIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTAogI2lmIENPTVBJ
TEVSKEdDQykgJiYgZGVmaW5lZChfX0FQUExFX0NDX18pICYmIF9fR05VQ19fID09IDQgJiYgX19H
TlVDX01JTk9SX18gPT0gMCAmJiBfX0dOVUNfUEFUQ0hMRVZFTF9fID09IDEKLSNkZWZpbmUgREVG
SU5FX1NUQVRJQ19MT0NBTCh0eXBlLCBuYW1lLCBhcmd1bWVudHMpIFwKKyNkZWZpbmUgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAogICAgIHN0
YXRpYyB0eXBlKiBuYW1lIyNQdHIgPSBuZXcgdHlwZSBhcmd1bWVudHM7IFwKICAgICB0eXBlJiBu
YW1lID0gKm5hbWUjI1B0cgogI2Vsc2UKLSNkZWZpbmUgREVGSU5FX1NUQVRJQ19MT0NBTCh0eXBl
LCBuYW1lLCBhcmd1bWVudHMpIFwKKyNkZWZpbmUgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAogICAgIHN0YXRpYyB0eXBlJiBuYW1lID0gKm5l
dyB0eXBlIGFyZ3VtZW50cwogI2VuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcAppbmRleCA4YzBjNzY4Yjc5Mjk0MjViMmYyOTNjZjdmZWFjNDZjMzVhZDM2MTkxLi4z
ZTBiMmI1NTA1NTQ0NWEzM2Y5MjZkYTAyNjg5ZjM5ZDZlYzg4YzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCB0aHJlYWRXYXNKb2lu
ZWQoVGhyZWFkSWRlbnRpZmllcik7CiAKIHN0YXRpYyBNdXRleCYgdGhyZWFkTWFwTXV0ZXgoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBt
dXRleDsKIH0KIApAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygp
CiAKIHN0YXRpYyBUaHJlYWRNYXAmIHRocmVhZE1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChUaHJlYWRNYXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChUaHJlYWRNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L2VmbC9NYWluVGhyZWFkRWZsLmNwcAppbmRleCA1M2FkY2IyYjFmOWUzNjZiM2M0MTJlOWU4MWQ0
NGI1ODcyNWQyNTMxLi5hMjViMzQ1YjZjZjI5NDEyZTBlN2Y2ZjEyNTRjMTJmOWUxM2FkYzQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVz
cGFjZSBXVEYgewogCiBzdGF0aWMgT3duUHRyPEVjb3JlX1BpcGU+JiBwaXBlT2JqZWN0KCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxFY29yZV9QaXBlPiwgcGlwZU9iamVjdCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPd25QdHI8RWNvcmVfUGlw
ZT4sIHBpcGVPYmplY3QsICgpKTsKICAgICByZXR1cm4gcGlwZU9iamVjdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nU3RhdGljcy5jcHAKaW5kZXggOGYwYzc0Y2MwZDc1YmQ2NmU5NDVjNDFj
M2FjYTdlMTQyZTQ5YmE0Ni4uZjVkYmM1ZGUwYzJkYTAzODRkNTZjZTA0NTY4MmY5YzZlOWMyZTIw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1N0YXRpY3MuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IFN0cmluZ0ltcGwqIFN0cmluZ0ltcGw6OmVtcHR5KCkKICAgICAvLyBSZXBsYWNlIHRoaXMgd2l0
aCAncmVpbnRlcnByZXRfY2FzdDxVQ2hhcio+KHN0YXRpY19jYXN0PGludHB0cl90PigxKSknIG9u
Y2UKICAgICAvLyBQQ1JFIGdvZXMgYXdheS4KICAgICBzdGF0aWMgTENoYXIgZW1wdHlMQ2hhckRh
dGEgPSAwOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nSW1wbCwgZW1wdHlTdHJpbmcs
ICgmZW1wdHlMQ2hhckRhdGEsIDAsIENvbnN0cnVjdFN0YXRpY1N0cmluZykpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdJbXBsLCBlbXB0eVN0cmluZywgKCZlbXB0
eUxDaGFyRGF0YSwgMCwgQ29uc3RydWN0U3RhdGljU3RyaW5nKSk7CiAgICAgV1RGX0FOTk9UQVRF
X0JFTklHTl9SQUNFKCZlbXB0eVN0cmluZywgIkJlbmlnbiByYWNlIG9uIFN0cmluZ0ltcGw6OmVt
cHR5U3RyaW5nIHJlZmVyZW5jZSBjb3VudGVyIik7CiAgICAgcmV0dXJuICZlbXB0eVN0cmluZzsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAppbmRleCBm
NzU1ODYwZDI2MTc3YjlkZDliODU3YzhlZjFiNTFlNjExZmQyOTgyLi5iOGIwMWZkNDAxMzBkNjRm
NjM4M2NjYjEzYTNlMzMxNWNiNjZmNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZh
aWxhYmlsaXR5RXZlbnQuY3BwCkBAIC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5nRm9yUGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHkoYm9vbCBhdmFpbGFibGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGF2YWlsYWJsZVN0cmluZywgKCJhdmFpbGFibGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5vdEF2YWlsYWJsZVN0cmluZywgKCJub3QtYXZhaWxhYmxlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGF2YWlsYWJsZVN0cmluZywgKCJhdmFpbGFibGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbm90QXZhaWxhYmxlU3RyaW5nLCAoIm5vdC1hdmFpbGFibGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICByZXR1cm4gYXZh
aWxhYmxlID8gYXZhaWxhYmxlU3RyaW5nIDogbm90QXZhaWxhYmxlU3RyaW5nOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4IGM0Y2Y0ZWUx
ZGMxNDg1MWFiZDI0ZDcwYzcxOTRlZTgxZWY5YWMxOWMuLmViYmJhMzhjYTRjOWY4YzIxZTYwZTk2
Mzc1MGNkYzcwYmFlMGQ1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogCiBzdGF0aWMgVmVjdG9y
PENETUZhY3RvcnkqPiYgaW5zdGFsbGVkQ0RNRmFjdG9yaWVzKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFZlY3RvcjxDRE1GYWN0b3J5Kj4sIGNkbXMsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPENETUZhY3RvcnkqPiwgY2RtcywgKCkpOwogICAg
IHN0YXRpYyBib29sIHF1ZXJpZWRDRE1zID0gZmFsc2U7CiAgICAgaWYgKCFxdWVyaWVkQ0RNcykg
ewogICAgICAgICBxdWVyaWVkQ0RNcyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBkYzkwN2IzNjNhMjEzMGQzOTdhOTVmZjhk
MDdlZDllMmVmOTRjNTBiLi4yZTg0NmRkN2ZjODljYWNiNTQxNjk4OWNlNzcwYWNjYzBiNDdhZjVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAK
QEAgLTUwLDI1ICs1MCwyNSBAQCBQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29yOjpjcmVh
dGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kPiBiYWNrZW5kLCBJbgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5leHQsICgibmV4dCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuZXh0LCAoIm5leHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG5leHQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vy
c29yOjpkaXJlY3Rpb25OZXh0VW5pcXVlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmV4dHVuaXF1ZSwgKCJuZXh0dW5pcXVlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5leHR1bmlxdWUsICgibmV4dHVuaXF1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmV4dHVuaXF1ZTsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvblByZXYoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2LCAoInByZXYiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgcHJldiwgKCJwcmV2IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBwcmV2OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElE
QkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHByZXZ1bmlxdWUsICgicHJldnVuaXF1ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwcmV2dW5pcXVlLCAoInByZXZ1bmlxdWUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHByZXZ1bmlxdWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXgg
NTg5NzM5YmE3NzIzOWQwMDgyMjE3ODAzMDc4ODIzNzg2NmQ3MTNhMy4uZGM2NjFlMmEwZDU1M2E0
Y2VhZWE2ZTU4MDMyYzA3ZDM2NjMzYzIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTEzMiw4ICsxMzIsOCBAQCBQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uPiBJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbigpIGNvbnN0CiBjb25zdCBT
dHJpbmcmIElEQlJlcXVlc3Q6OnJlYWR5U3RhdGUoKSBjb25zdAogewogICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBlbmRpbmcsICgicGVuZGluZyIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZG9uZSwgKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHBlbmRpbmcsICgicGVuZGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkb25l
LCAoImRvbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBp
ZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAgIHJldHVybiBwZW5kaW5nOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IGFlNTZjODVlZGVhMTk0MDY5NjI3MjgyOTRmMWQyOGQ2OTY1ZGIyMWUuLmM0MmY5NDVj
NDExMzQ3OWZlNzE4M2QxMDg5ODFlMGMxMGQ2NTc4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTYwLDMxICs2MCwz
MSBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRy
YW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCByZWFkb25seSwgKCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCByZWFkb25seSwgKCJyZWFkb25seSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGUoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgicmVhZHdyaXRlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCJyZWFkd3JpdGUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWR3cml0ZTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVZlcnNpb25DaGFuZ2UoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB2ZXJzaW9uY2hhbmdlLCAoInZl
cnNpb25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmVyc2lvbmNoYW5n
ZSwgKCJ2ZXJzaW9uY2hhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiB2ZXJzaW9uY2hhbmdlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElE
QlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHlMZWdhY3koKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCByZWFkb25seSwgKCIwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIHJlYWRvbmx5OwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElE
QlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlTGVnYWN5KCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgcmVhZHdyaXRlLCAoIjEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIHJlYWR3cml0ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
aW5kZXggNTQwODBkMDgzNmM1NTVmMzNiYzRlYmQ4NDY2MjY0Y2NhOGUyY2RhZS4uOGUxMjk3NjVj
ZDAwMjAyODkxNThhYjIyMGM2ZjYxMzRiOTY1MmI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBA
IC00MywxOSArNDMsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbHNIb3N0OjphdXRvbWF0aWNLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b21hdGljLCAoImF1dG9tYXRpYyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvbWF0aWMsICgiYXV0b21h
dGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBh
dXRvbWF0aWM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmZv
cmNlZE9ubHlLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgZm9yY2VkT24sICgiZm9yY2VkLW9ubHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgZm9yY2VkT24sICgiZm9yY2VkLW9ubHkiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGZvcmNlZE9uOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbHNIb3N0OjphbHdheXNPbktleXdvcmQoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhbHdheXNPbiwgKCJhbHdh
eXMtb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx3YXlzT24sICgi
YWx3YXlzLW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBhbHdheXNPbjsKIH0KIApAQCAtMTg0LDEyICsxODQsMTIgQEAgU3RyaW5nIE1lZGlhQ29u
dHJvbHNIb3N0OjpleHRlcm5hbERldmljZURpc3BsYXlOYW1lKCkgY29uc3QKIAogU3RyaW5nIE1l
ZGlhQ29udHJvbHNIb3N0OjpleHRlcm5hbERldmljZVR5cGUoKSBjb25zdAogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRl
cmFsKCJub25lIikpKTsKICAgICBTdHJpbmcgdHlwZSA9IG5vbmU7CiAgICAgCiAjaWYgRU5BQkxF
KElPU19BSVJQTEFZKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhaXJwbGF5LCAo
QVNDSUlMaXRlcmFsKCJhaXJwbGF5IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgdHZvdXQsIChBU0NJSUxpdGVyYWwoInR2b3V0IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhaXJwbGF5LCAoQVNDSUlMaXRlcmFsKCJhaXJwbGF5Iikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0dm91dCwgKEFT
Q0lJTGl0ZXJhbCgidHZvdXQiKSkpOwogICAgIAogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBt
X21lZGlhRWxlbWVudC0+cGxheWVyKCk7CiAgICAgaWYgKCFwbGF5ZXIpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggODA2
ZDIwNmFhMzc4MDU0OWE2ZWI1NzllOTY2ZTYyOTI4MzZiNjU4OC4uNjk3Mzg0OGVmM2RhYzhjNDg2
YjJhNDc1MmRkNjRlZDc4NTIxMjQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTkyLDE5ICs5MiwxOSBAQCBNZWRpYVNv
dXJjZTo6fk1lZGlhU291cmNlKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6
b3BlbktleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBvcGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
b3BlbiwgKCJvcGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBvcGVuOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU291cmNlOjpjbG9z
ZWRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgY2xvc2VkLCAoImNsb3NlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBjbG9zZWQsICgiY2xvc2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBjbG9zZWQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFTb3Vy
Y2U6OmVuZGVkS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGVuZGVkLCAoImVuZGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBlbmRlZDsKIH0KIApAQCAtMzA1LDggKzMwNSw4IEBAIHZvaWQgTWVk
aWFTb3VyY2U6OmVuZE9mU3RyZWFtKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogCiB2b2lkIE1lZGlhU291cmNlOjpzdHJlYW1FbmRlZFdpdGhFcnJvcihjb25z
dCBBdG9taWNTdHJpbmcmIGVycm9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3b3JrIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWNvZGUsICgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG5ldHdvcmssICgibmV0d29yayIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWNvZGUsICgiZGVjb2RlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgLy8gMi40LjcgaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL3RpcC9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmh0
bWwjZW5kLW9mLXN0cmVhbS1hbGdvcml0aG0KICAgICAvLyAxLiBDaGFuZ2UgdGhlIHJlYWR5U3Rh
dGUgYXR0cmlidXRlIHZhbHVlIHRvICJlbmRlZCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcAppbmRleCAy
NDNkYTY4NzlhYmIyNTA2MzRhMmJkZTdiY2JmMzdlZTA4MTc3Y2RmLi4wOTcyMTVhMWQ3MzNlN2Ew
NDYzZTc2ZTdjNzcwOGFjYTFjNzIxNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTWVkaWFTb3VyY2VSZWdpc3RyeSYgTWVkaWFT
b3VyY2VSZWdpc3RyeTo6cmVnaXN0cnkoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNvdXJjZVJlZ2lzdHJ5LCBpbnN0YW5jZSwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNvdXJjZVJlZ2lz
dHJ5LCBpbnN0YW5jZSwgKCkpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdp
c3RyeS5jcHAKaW5kZXggOWEyZWViMThlZjI0ODA0NTlkNWQ5MGI2ZmYwZTdiZDM1NzU3MDFiMS4u
NjU1Y2EyNTExZDM2NTkwMjkxZGIyZGRjZmEzNWQxMWY0ZGE0MGE4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0
cnkuY3BwCkBAIC0zOCw3ICszOCw3IEBAIE1lZGlhU3RyZWFtUmVnaXN0cnkmIE1lZGlhU3RyZWFt
UmVnaXN0cnk6OnJlZ2lzdHJ5KCkKIHsKICAgICAvLyBTaW5jZSBXZWJXb3JrZXJzIGNhbm5vdCBv
YnRhaW4gTWVkaWFTb3VyY2Ugb2JqZWN0cywgd2Ugc2hvdWxkIGJlIG9uIHRoZSBtYWluIHRocmVh
ZC4KICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TWVkaWFTdHJlYW1SZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1SZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsKICAgICBy
ZXR1cm4gaW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRp
bHMuY3BwCmluZGV4IDI3ODk0YWZjZDJiY2U4NzQ5ZGMyZTRhMGY5MzE0YWVjOWRlNjA1MzAuLjli
OWU1MDE2ODM3ZTA4MzliNzdkYmMzNDlhNTg5MGUwYmQ1N2EzNjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRV
dGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRp
bHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcApAQCAtMTU0LDkgKzE1NCw5IEBAIHZvaWQgTmF2
aWdhdG9yQ29udGVudFV0aWxzOjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihOYXZpZ2F0b3IqIG5h
dmlnYXRvciwgY29uc3QKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKQogc3RhdGlj
IFN0cmluZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRV
dGlsc0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNTdGF0ZSBzdGF0ZSkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbmV3SGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgibmV3Iikp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJlZEhhbmRs
ZXIsIChBU0NJSUxpdGVyYWwoInJlZ2lzdGVyZWQiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoImRlY2xpbmVk
IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBu
ZXdIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJuZXciKSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJlZ2lzdGVyZWRIYW5kbGVyLCAoQVNDSUlMaXRl
cmFsKCJyZWdpc3RlcmVkIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBkZWNsaW5lZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoImRlY2xpbmVkIikp
KTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIE5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudDo6Q3VzdG9tSGFuZGxlcnNOZXc6CkBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIFN0
cmluZyBjdXN0b21IYW5kbGVyc1N0YXRlU3RyaW5nKGNvbnN0IE5hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudDo6Q3VzdG8KIAogU3RyaW5nIE5hdmlnYXRvckNvbnRlbnRVdGlsczo6aXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZCwgKCJkZWNsaW5lZCIpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWNsaW5lZCwg
KCJkZWNsaW5lZCIpKTsKIAogICAgIGlmICghbmF2aWdhdG9yLT5mcmFtZSgpKQogICAgICAgICBy
ZXR1cm4gZGVjbGluZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCAyZWRkY2RiYjlm
MDA2Y2E3NjI2NjUwYjQyMDI3ODYyNmI5MjYxNDE3Li44NTljY2IwZmMxODQ4OWJjMDIzYzQyZDMx
MDdhMDczZDE3NmFlZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTUzLDcgKzUz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU3RyaW5nIHF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50U2NyaXB0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
c2NyaXB0LCAoUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0LCBzaXplb2YoUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0KSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdCwgKFF1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50SmF2YVNjcmlwdCwgc2l6ZW9mKFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50SmF2YVNjcmlw
dCkpKTsKICAgICByZXR1cm4gc2NyaXB0OwogfQogCkBAIC03Niw3ICs3Niw3IEBAIGJvb2wgUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6OnN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSkKICAgICAgICAgImF1ZGlvL3gtbTRyIiwgImF1ZGlvL3gtbXAzIiwgImF1ZGlvL3gt
bXBlZyIsICJhdWRpby94LW1wZWczIiwgImF1ZGlvL3gtbXBlZ3VybCIsICJhdWRpby94LXNjcGxz
IiwgImF1ZGlvL3gtd2F2IiwKICAgICAgICAgInZpZGVvLzNncHAiLCAidmlkZW8vM2dwcDIiLCAi
dmlkZW8vbXA0IiwgInZpZGVvL3F1aWNrdGltZSIsICJ2aWRlby94LW00diIKICAgICB9OwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCB0eXBlSGFzaCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHR5cGVIYXNo
LCAoKSk7CiAgICAgaWYgKCF0eXBlSGFzaC5zaXplKCkpIHsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHR5cGVzKTsgKytpKQogICAgICAgICAgICAgdHlw
ZUhhc2guYWRkKHR5cGVzW2ldKTsKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudDo6c3VwcG9ydHNGaWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5z
aW9uKQogICAgICAgICAibTN1OCIsICJtNGEiLCAibTRiIiwgIm00cCIsICJtNHIiLCAibTR2Iiwg
Im1vdiIsICJtcDMiLCAibXAzIiwgIm1wNCIsICJtcGVnIiwgIm1wZyIsICJtcXYiLCAicGxzIiwg
InF0IiwKICAgICAgICAgInNuZCIsICJzd2EiLCAidHMiLCAidWx3IiwgIndhdiIKICAgICB9Owot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBleHRlbnNpb25IYXNoLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwg
ZXh0ZW5zaW9uSGFzaCwgKCkpOwogICAgIGlmICghZXh0ZW5zaW9uSGFzaC5zaXplKCkpIHsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGV4dGVuc2lvbnMp
OyArK2kpCiAgICAgICAgICAgICBleHRlbnNpb25IYXNoLmFkZChleHRlbnNpb25zW2ldKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCmlu
ZGV4IDY0OTVlNTcyYzU4NDMzMzZmNjBmZjdhNjA3ZmQ2ZDVmNDgxYTQ2NWIuLjYzMDU1MjJiZTk5
ZDNjMGQyMTczMzJhNzBmYjliOTM1ODg2YmUwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcApAQCAtMTkyLDggKzE5Miw4IEBAIHZv
aWQgU3BlZWNoU3ludGhlc2lzOjpoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UqIHV0dGVyYW5jCiAgICAgCiB2b2lkIFNwZWVjaFN5bnRoZXNpczo6Ym91bmRh
cnlFdmVudE9jY3VycmVkKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2U+IHV0dGVyYW5jZSwgU3BlZWNoQm91bmRhcnkgYm91bmRhcnksIHVuc2lnbmVkIGNoYXJJbmRl
eCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgd29yZEJvdW5kYXJ5
U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ3b3JkIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgc2VudGVuY2VCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2Vu
dGVuY2UiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHdvcmRCb3VuZGFyeVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgid29yZCIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2VudGVuY2VCb3VuZGFy
eVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2VudGVuY2UiKSkpOwogCiAgICAgc3dpdGNoIChib3Vu
ZGFyeSkgewogICAgIGNhc2UgU3BlZWNoV29yZEJvdW5kYXJ5OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IGFl
OTFiY2NhMzdkMTY4ODUwNTlmMmZkOGRmZDA1NDAzNWQ2MWZkYjguLmJiMWIwZjExYWIwMTZkYWE4
OTU0NjQzMDFlY2FkNDI0ZGUzNDEwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTEyODMsNyArMTI4Myw3
IEBAIGJvb2wgRGF0YWJhc2VUcmFja2VyOjpkZWxldGVEYXRhYmFzZUZpbGVJZkVtcHR5KGNvbnN0
IFN0cmluZyYgcGF0aCkKIAogTXV0ZXgmIERhdGFiYXNlVHJhY2tlcjo6b3BlbkRhdGFiYXNlTXV0
ZXgoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJl
dHVybiBtdXRleDsKIH0KIApAQCAtMTMzNSw3ICsxMzM1LDcgQEAgdm9pZCBEYXRhYmFzZVRyYWNr
ZXI6OnNldENsaWVudChEYXRhYmFzZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKIAogc3RhdGljIE11
dGV4JiBub3RpZmljYXRpb25NdXRleCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMzQzLDcgKzEzNDMsNyBA
QCB0eXBlZGVmIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU3RyaW5n
Pj4gTm90aWZpY2F0aW9uUXVldWU7CiAKIHN0YXRpYyBOb3RpZmljYXRpb25RdWV1ZSYgbm90aWZp
Y2F0aW9uUXVldWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTm90aWZpY2F0aW9uUXVl
dWUsIHF1ZXVlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5vdGlm
aWNhdGlvblF1ZXVlLCBxdWV1ZSwgKCkpOwogICAgIHJldHVybiBxdWV1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250
cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRp
YUNvbnRyb2xzLmNwcAppbmRleCA5MmZlMjIxMDQ5MGE1YjQwNmI3YTZkMzUwYWMxNmNhNTQ1NDNl
NzAxLi40OGMzNzE2NTYxMjMzMjE1MGQwYzZjMGE5MTg0MTBiYmE4YTgyZTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRp
YUNvbnRyb2xzLmNwcApAQCAtODIsMjEgKzgyLDIxIEBAIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBl
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlKCkgY29uc3QKIAogU3RyaW5n
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlTmFtZSgpIGNvbnN0CiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRW50ZXJGdWxsc2NyZWVu
QnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiRW50ZXJGdWxsc2NyZWVuQnV0dG9uIikpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFFeGl0RnVsbHNjcmVlbkJ1
dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIkV4aXRGdWxsc2NyZWVuQnV0dG9uIikpKTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFNdXRlQnV0dG9uTmFtZSwgKEFT
Q0lJTGl0ZXJhbCgiTXV0ZUJ1dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lZGlhUGxheUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlBsYXlCdXR0b24i
KSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVNlZWtCYWNr
QnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU2Vla0JhY2tCdXR0b24iKSkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVNlZWtGb3J3YXJkQnV0dG9uTmFtZSwg
KEFTQ0lJTGl0ZXJhbCgiU2Vla0ZvcndhcmRCdXR0b24iKSkpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVJld2luZEJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwo
IlJld2luZEJ1dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlJldHVyblRv
UmVhbHRpbWVCdXR0b24iKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBtZWRpYVVuTXV0ZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlVuTXV0ZUJ1dHRvbiIpKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGF1c2VCdXR0b25O
YW1lLCAoQVNDSUlMaXRlcmFsKCJQYXVzZUJ1dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU3RhdHVzRGlzcGxheU5hbWUsIChBU0NJSUxpdGVyYWwo
IlN0YXR1c0Rpc3BsYXkiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBtZWRpYUN1cnJlbnRUaW1lRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiQ3VycmVudFRpbWVEaXNw
bGF5IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFUaW1l
UmVtYWluaW5nRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKSkp
OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVNob3dDbG9zZWRD
YXB0aW9uc0J1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRv
biIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhSGlkZUNs
b3NlZENhcHRpb25zQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiSGlkZUNsb3NlZENhcHRpb25z
QnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBtZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIkVudGVy
RnVsbHNjcmVlbkJ1dHRvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgbWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbk5hbWUsIChBU0NJSUxpdGVy
YWwoIkV4aXRGdWxsc2NyZWVuQnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYU11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFs
KCJNdXRlQnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBtZWRpYVBsYXlCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJQbGF5QnV0dG9u
IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYVNlZWtCYWNrQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU2Vla0JhY2tCdXR0b24iKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlh
U2Vla0ZvcndhcmRCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVrRm9yd2FyZEJ1dHRvbiIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVk
aWFSZXdpbmRCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJSZXdpbmRCdXR0b24iKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlJldHVyblRvUmVhbHRpbWVCdXR0
b24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhVW5NdXRlQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiVW5NdXRlQnV0dG9uIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVBh
dXNlQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUGF1c2VCdXR0b24iKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU3RhdHVzRGlzcGxh
eU5hbWUsIChBU0NJSUxpdGVyYWwoIlN0YXR1c0Rpc3BsYXkiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVEaXNwbGF5
LCAoQVNDSUlMaXRlcmFsKCJDdXJyZW50VGltZURpc3BsYXkiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhVGltZVJlbWFpbmluZ0Rpc3Bs
YXksIChBU0NJSUxpdGVyYWwoIlRpbWVSZW1haW5pbmdEaXNwbGF5IikpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVNob3dDbG9zZWRDYXB0
aW9uc0J1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVk
aWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJIaWRlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b24iKSkpOwogCiAgICAgc3dpdGNoIChjb250cm9sVHlwZSgpKSB7CiAgICAg
Y2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjoKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nl
c3NpYmlsaXR5VGV4dD4mIHRleAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6
dGl0bGUoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBj
b250cm9sc1BhbmVsLCAoQVNDSUlMaXRlcmFsKCJDb250cm9sc1BhbmVsIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb250cm9sc1BhbmVsLCAo
QVNDSUlMaXRlcmFsKCJDb250cm9sc1BhbmVsIikpKTsKIAogICAgIGlmIChjb250cm9sVHlwZSgp
ID09IE1lZGlhQ29udHJvbHNQYW5lbCkKICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29u
dHJvbEVsZW1lbnRTdHJpbmcoY29udHJvbHNQYW5lbCk7CkBAIC0yNDQsOCArMjQ0LDggQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6Y29udHJvbGxpbmdWaWRlb0Vs
ZW1lbnQoKSBjb25zdAogCiBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHND
b250YWluZXI6OmVsZW1lbnRUeXBlTmFtZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHZpZGVvRWxlbWVudCwgKEFTQ0lJTGl0ZXJhbCgiVmlkZW9FbGVt
ZW50IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYXVkaW9FbGVt
ZW50LCAoQVNDSUlMaXRlcmFsKCJBdWRpb0VsZW1lbnQiKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpZGVvRWxlbWVudCwgKEFTQ0lJTGl0ZXJh
bCgiVmlkZW9FbGVtZW50IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBhdWRpb0VsZW1lbnQsIChBU0NJSUxpdGVyYWwoIkF1ZGlvRWxlbWVudCIp
KSk7CiAKICAgICBpZiAoY29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IHZpZGVvRWxlbWVudDsKQEAgLTI4Miw3ICsyODIsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1l
ZGlhVGltZWxpbmU6OnZhbHVlRGVzY3JpcHRpb24oKSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eU1lZGlhVGltZWxpbmU6OmhlbHBUZXh0KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgc2xpZGVyLCAoQVNDSUlMaXRlcmFsKCJTbGlkZXIiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHNsaWRlciwg
KEFTQ0lJTGl0ZXJhbCgiU2xpZGVyIikpKTsKICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudEhlbHBUZXh0KHNsaWRlcik7CiB9CiAKQEAgLTMxMyw4ICszMTMsOCBAQCBib29s
IEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVEaXNwbGF5Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lRGlzcGxheTo6YWNj
ZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgY3VycmVudFRpbWVEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJDdXJyZW50
VGltZURpc3BsYXkiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0
aW1lUmVtYWluaW5nRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXki
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGN1
cnJlbnRUaW1lRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiQ3VycmVudFRpbWVEaXNwbGF5IikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lUmVt
YWluaW5nRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3BsYXkiKSkpOwog
CiAgICAgaWYgKGNvbnRyb2xUeXBlKCkgPT0gTWVkaWFDdXJyZW50VGltZURpc3BsYXkpCiAgICAg
ICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGN1cnJlbnRUaW1l
RGlzcGxheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcAppbmRleCA2MzRhZjg2Y2Y3ZTg3ZmJkYTE5OWNlZmQ0MjRiYTFlYWRi
MmU4MThjLi4zOGQwODEwYzllYjNmMjNjNjM1YWFmMjhhZDg1ZTc1M2QwMjdjMjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKQEAgLTE0ODQsMTUgKzE0ODQsMTUgQEAgY29uc3QgU3RyaW5nJiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjphY3Rpb25WZXJiKCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIGFkZCB2ZXJicyBmb3Igc2VsZWN0IGVsZW1lbnRzLgotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBidXR0b25BY3Rpb24sIChBWEJ1dHRvbkFjdGlvblZl
cmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0ZXh0RmllbGRB
Y3Rpb24sIChBWFRleHRGaWVsZEFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCByYWRpb0J1dHRvbkFjdGlvbiwgKEFYUmFkaW9CdXR0b25BY3Rpb25W
ZXJiKCkpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2hlY2tlZENo
ZWNrQm94QWN0aW9uLCAoQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdW5jaGVja2VkQ2hlY2tCb3hBY3Rpb24sIChB
WFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGxpbmtBY3Rpb24sIChBWExpbmtBY3Rpb25WZXJiKCkpKTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVudUxpc3RBY3Rpb24sIChBWE1lbnVM
aXN0QWN0aW9uVmVyYigpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lbnVMaXN0UG9wdXBBY3Rpb24sIChBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGlzdEl0ZW1BY3Rpb24sIChBWExp
c3RJdGVtQWN0aW9uVmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgYnV0dG9uQWN0aW9uLCAoQVhCdXR0b25BY3Rpb25WZXJiKCkpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0ZXh0RmllbGRB
Y3Rpb24sIChBWFRleHRGaWVsZEFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJhZGlvQnV0dG9uQWN0aW9uLCAoQVhSYWRpb0J1
dHRvbkFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGNoZWNrZWRDaGVja0JveEFjdGlvbiwgKEFYQ2hlY2tlZENoZWNrQm94QWN0
aW9uVmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgdW5jaGVja2VkQ2hlY2tCb3hBY3Rpb24sIChBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9u
VmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgbGlua0FjdGlvbiwgKEFYTGlua0FjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lbnVMaXN0QWN0aW9uLCAoQVhNZW51TGlz
dEFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lbnVMaXN0UG9wdXBBY3Rpb24sIChBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJi
KCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBs
aXN0SXRlbUFjdGlvbiwgKEFYTGlzdEl0ZW1BY3Rpb25WZXJiKCkpKTsKIAogICAgIHN3aXRjaCAo
cm9sZVZhbHVlKCkpIHsKICAgICBjYXNlIEJ1dHRvblJvbGU6CkBAIC0xNTMwLDggKzE1MzAsOCBA
QCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFJc011bHRpbGluZSgpIGNvbnN0CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW52YWxpZFN0YXR1cygpIGNv
bnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGludmFs
aWRTdGF0dXNGYWxzZSwgKCJmYWxzZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW52YWxp
ZFN0YXR1c1RydWUsICgidHJ1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBpbnZhbGlkU3RhdHVzRmFsc2UsICgiZmFsc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgaW52YWxpZFN0YXR1c1RydWUsICgidHJ1ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICAvLyBhcmlhLWludmFsaWQgY2FuIHJldHVy
biBmYWxzZSAoZGVmYXVsdCksIGdyYW1tZXIsIHNwZWxsaW5nLCBvciB0cnVlLgogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXJpYUludmFsaWQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9pbnZhbGlkQXR0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBlMjI3Zjk3OWE5ZjE3MTU3ZjE2MDliNDFiMWIx
NjA4Y2EwYmRiM2E2Li4wYzlhMGRhN2U0MjFmZGMwMzE2MjBkM2U4MTYyZDM3M2M1ZmYyMjgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTI2NDQsNyArMjY0NCw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aW5oZXJpdHNQcmVzZW50YXRpb25hbFJvbGUoKSBjb25zdAogICAg
IC8vIEFSSUEgc3BlYyBzYXlzIHRoYXQgd2hlbiBhIHBhcmVudCBvYmplY3QgaXMgcHJlc2VudGF0
aW9uYWwsIGFuZCBpdCBoYXMgcmVxdWlyZWQgY2hpbGQgZWxlbWVudHMsCiAgICAgLy8gdGhvc2Ug
Y2hpbGQgZWxlbWVudHMgYXJlIGFsc28gcHJlc2VudGF0aW9uYWwuIEZvciBleGFtcGxlLCA8bGk+
IGJlY29tZXMgcHJlc2VudGF0aW9uYWwgZnJvbSA8dWw+LgogICAgIC8vIGh0dHA6Ly93d3cudzMu
b3JnL1dBSS9QRi9hcmlhL2NvbXBsZXRlI3ByZXNlbnRhdGlvbgotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgbGlzdEl0ZW1QYXJlbnRzLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGxp
c3RJdGVtUGFyZW50cywgKCkpOwogCiAgICAgSGFzaFNldDxRdWFsaWZpZWROYW1lPiogcG9zc2li
bGVQYXJlbnRUYWdOYW1lcyA9IDA7CiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewpAQCAtMzAy
Nyw5ICszMDI3LDkgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjYW5IYXZlQ2hp
bGRyZW4oKSBjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFyaWFMaXZlUmVnaW9uU3RhdHVzKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGl2ZVJlZ2lvblN0YXR1c0Fzc2VydGl2ZSwgKCJh
c3NlcnRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNQb2xp
dGUsICgicG9saXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3RhdHVz
T2ZmLCAoIm9mZiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVn
aW9uU3RhdHVzQXNzZXJ0aXZlLCAoImFzc2VydGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3RhdHVzUG9saXRlLCAoInBvbGl0ZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9uU3RhdHVzT2ZmLCAoIm9mZiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGxpdmVSZWdpb25TdGF0dXMgPSBnZXRBdHRyaWJ1dGUoYXJpYV9saXZlQXR0
cik7CiAgICAgLy8gVGhlc2Ugcm9sZXMgaGF2ZSBpbXBsaWNpdCBsaXZlIHJlZ2lvbiBzdGF0dXMu
CkBAIC0zMDU0LDcgKzMwNTQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmFyaWFMaXZlUmVnaW9uU3RhdHVzKCkgY29uc3QKIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhTGl2ZVJlZ2lvblJlbGV2YW50
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
ZGVmYXVsdExpdmVSZWdpb25SZWxldmFudCwgKCJhZGRpdGlvbnMgdGV4dCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50LCAoImFk
ZGl0aW9ucyB0ZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgcmVsZXZhbnQgPSBnZXRBdHRyaWJ1dGUoYXJpYV9yZWxldmFu
dEF0dHIpOwogCiAgICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9ucyB0ZXh0
Ii4KQEAgLTMxNjYsMTIgKzMxNjYsMTIgQEAgY29uc3QgU3RyaW5nJiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphY3Rpb25WZXJiKCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IC8vIEZJWE1FOiBOZWVkIHRvIGFkZCB2ZXJicyBmb3Igc2VsZWN0IGVsZW1lbnRzLgotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBidXR0b25BY3Rpb24sIChBWEJ1dHRvbkFj
dGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0ZXh0
RmllbGRBY3Rpb24sIChBWFRleHRGaWVsZEFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCByYWRpb0J1dHRvbkFjdGlvbiwgKEFYUmFkaW9CdXR0b25B
Y3Rpb25WZXJiKCkpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2hl
Y2tlZENoZWNrQm94QWN0aW9uLCAoQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdW5jaGVja2VkQ2hlY2tCb3hBY3Rp
b24sIChBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGxpbmtBY3Rpb24sIChBWExpbmtBY3Rpb25WZXJiKCkpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBidXR0b25B
Y3Rpb24sIChBWEJ1dHRvbkFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRleHRGaWVsZEFjdGlvbiwgKEFYVGV4dEZpZWxkQWN0
aW9uVmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgcmFkaW9CdXR0b25BY3Rpb24sIChBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2hlY2tlZENo
ZWNrQm94QWN0aW9uLCAoQVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1bmNoZWNrZWRDaGVja0Jv
eEFjdGlvbiwgKEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsaW5rQWN0aW9uLCAoQVhMaW5r
QWN0aW9uVmVyYigpKSk7CiAKICAgICBzd2l0Y2ggKHJvbGVWYWx1ZSgpKSB7CiAgICAgY2FzZSBC
dXR0b25Sb2xlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
QVhPYmplY3RDYWNoZUF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9B
WE9iamVjdENhY2hlQXRrLmNwcAppbmRleCAyMTkxZjc3NTE3OWQwN2YyZWZkNmJmZTI3YTQyOTQy
ZmYwZTg2OTkwLi5jNTQ0NDc0ZmUwNmFmNjA5YTAyZTk4MDJkMTQ1ZWE3MDEyNGVhNjIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hl
QXRrLmNwcApAQCAtMTE5LDggKzExOSw4IEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVuU2Vs
ZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKICAgICAvLyBmb2N1c2Vk
IG9iamVjdCBhbmQgaXRzIGFzc29jaWF0ZWQgbGlzdCBvYmplY3QsIGFzIHBlciBwcmV2aW91cwog
ICAgIC8vIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sIGluIG9yZGVyIHRvIHByb3Blcmx5IGRlY2lk
ZSB3aGV0aGVyIHRvCiAgICAgLy8gZW1pdCBzb21lIHNpZ25hbHMgb3Igbm90LgotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBvbGRMaXN0T2JqZWN0
LCAoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIG9sZEZvY3VzZWRPYmplY3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBvbGRMaXN0T2JqZWN0LCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Piwgb2xkRm9jdXNlZE9iamVjdCwgKCkpOwogCiAgICAgLy8gT25seSBsaXN0IGJveGVzIGFu
ZCBtZW51IGxpc3RzIHN1cHBvcnRlZCBzbyBmYXIuCiAgICAgaWYgKCFvYmplY3QgfHwgIShvYmpl
Y3QtPmlzTGlzdEJveCgpIHx8IG9iamVjdC0+aXNNZW51TGlzdCgpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDlkM2M4NDBmMGQ0MTVmOTJjNWI2
OGJiZTRmMGYxNjg4NTZlZGMwNWYuLjU3YjZhMTkyYWRmZTIyODZkMzBjMDUzN2FlYTcyZDI3Yzk4
MzVkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApA
QCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0KHZvaWQqKQogCiBHQ0NvbnRyb2xs
ZXImIGdjQ29udHJvbGxlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChHQ0NvbnRyb2xs
ZXIsIHN0YXRpY0dDQ29udHJvbGxlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChHQ0NvbnRyb2xsZXIsIHN0YXRpY0dDQ29udHJvbGxlciwgKCkpOwogICAgIHJldHVy
biBzdGF0aWNHQ0NvbnRyb2xsZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCmluZGV4IDA3YWY5
MTgzYTI3OTk1MDE1MjE1ZWZlNzY3MTMzMGVmYjM2M2FjOTQuLjlkYjU1ZGQ0ZGFkMmY2NGVmZGJl
ZjM1ZmNjMDRiYWRkYWNiZTcyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcApAQCAtMTg5LDcgKzE4
OSw3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gY3NzUHJvcGVydHlJREZvckpTQ1NTUHJvcGVy
dHlOYW1lKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hCiAKICAgICBTdHJpbmcgc3RyaW5nRm9yQ2Fj
aGUgPSBTdHJpbmcocHJvcGVydHlOYW1lU3RyaW5nKTsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBDU1NQcm9wZXJ0eUluZm8+IENTU1Byb3BlcnR5SW5mb01hcDsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKENTU1Byb3BlcnR5SW5mb01hcCwgcHJvcGVydHlJbmZvQ2FjaGUsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ1NTUHJvcGVydHlJbmZvTWFwLCBwcm9w
ZXJ0eUluZm9DYWNoZSwgKCkpOwogICAgIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0NhY2hl
LmdldChzdHJpbmdGb3JDYWNoZSk7CiAgICAgaWYgKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQog
ICAgICAgICByZXR1cm4gcHJvcGVydHlJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4
IGYxZTQ0NmQ1NTc0OTNiNDU2NzgxNjk4YWU5NDBiYjVmZWU0MTZjMWMuLjBhZmQxMzc2MjMxYTY2
ZGYzYzhkZTZjOGNlODBjZTA1ZGNjNTM4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAg
LTU0LDE5ICs1NCwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU1ZhbHVlIEpTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQTEFU
Rk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIm1hYyIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVy
YWwoIm1hYyIpKSk7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgid2luZG93cyIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChB
U0NJSUxpdGVyYWwoIndpbmRvd3MiKSkpOwogI2VsaWYgT1MoTElOVVgpCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJsaW51eCIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sIChBU0NJSUxpdGVyYWwoImxpbnV4IikpKTsKICNlbGlmIE9TKEZSRUVCU0QpCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFs
KCJmcmVlYnNkIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgiZnJlZWJzZCIpKSk7CiAjZWxpZiBPUyhP
UEVOQlNEKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwg
KEFTQ0lJTGl0ZXJhbCgib3BlbmJzZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2QiKSkp
OwogI2VsaWYgT1MoU09MQVJJUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFyaXMiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFs
KCJzb2xhcmlzIikpKTsKICNlbHNlCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJ1bmtub3duIikpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJh
bCgidW5rbm93biIpKSk7CiAjZW5kaWYKICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhl
Y1N0YXRlLCBwbGF0Zm9ybSk7CiB9CkBAIC03NCwxMSArNzQsMTEgQEAgSlNWYWx1ZSBKU0luc3Bl
Y3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0oRXhlY1N0YXRlKiBleGVjU3RhdGUpCiBKU1ZhbHVl
IEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpwb3J0KEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQogewog
I2lmIFBMQVRGT1JNKEdUSykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cG9ydCwgKEFTQ0lJTGl0ZXJhbCgiZ3RrIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJndGsiKSkpOwogI2Vs
aWYgUExBVEZPUk0oRUZMKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBw
b3J0LCAoQVNDSUlMaXRlcmFsKCJlZmwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImVmbCIpKSk7CiAjZWxz
ZQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRl
cmFsKCJ1bmtub3duIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJ1bmtub3duIikpKTsKICNlbmRpZgogICAg
IHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjU3RhdGUsIHBvcnQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5k
ZXggYTk1MWI4ODA1YmI3OWU4MDY4MmVkY2E4OWVjNDMzNjllZjE1Mzk4Zi4uZmY2MTA0OWJlZjRm
Nzc5MDBlZWZmMmJiZDIyOTU4YjI5N2NhOGMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBQYWdlKiB0b1BhZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogUGFn
ZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChQYWdlU2NyaXB0RGVidWdTZXJ2ZXIsIHNlcnZlciwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYWdlU2NyaXB0RGVidWdTZXJ2
ZXIsIHNlcnZlciwgKCkpOwogICAgIHJldHVybiBzZXJ2ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCmluZGV4IDgxMzI2OThmMTQ0YjcyNDhjZmE5
NDMxODJmN2QzMDBlMmQ1NzA5ZGIuLmE5OTI2ZDQzYjA2OGY4ZWQ2OGQ5MDQxZGY1NzNjZWNjZmJl
NjIzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJu
YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQpA
QCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgTlNNYXBUYWJsZSogRE9NV3JhcHBlckNhY2hlOwogI2lm
ZGVmIE5FRURTX1dSQVBQRVJfQ0FDSEVfTE9DSwogc3RhdGljIE11dGV4JiB3cmFwcGVyQ2FjaGVM
b2NrKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCB3cmFwcGVyQ2FjaGVNdXRl
eCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgd3JhcHBl
ckNhY2hlTXV0ZXgsICgpKTsKICAgICByZXR1cm4gd3JhcHBlckNhY2hlTXV0ZXg7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggNjFhOWE4MTRlOTAwNmY3NDIwZjVkMjI5YTBkY2QwYjdlOGYzYTFmNi4uZTgw
ZDBhZjg1N2Y4MjExNDg2Yzc0Y2JhMzAyOTk0ZTQ2MjFiYmMyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTExNTMsNyAr
MTE1Myw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImlubGluZSBKU0M6OldlYWtI
YW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsICRpbXBsVHlwZSopXG4i
KTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlMke2ludGVyZmFjZU5hbWV9
T3duZXIsIGpzJHtpbnRlcmZhY2VOYW1lfU93bmVyLCAoKSk7XG4iKTsKKyAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlMke2lu
dGVyZmFjZU5hbWV9T3duZXIsIGpzJHtpbnRlcmZhY2VOYW1lfU93bmVyLCAoKSk7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICByZXR1cm4gJmpzJHtpbnRlcmZhY2VOYW1l
fU93bmVyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG4iKTsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
LmgKaW5kZXggYjRiYjg4OGRhOTc0NGJkZTBlYmZiYWVlOWFhZTBkZmNlNjU0MmQzZC4uNzA5NTA2
NDVjNWNkZTA2YTFkODRiZDcxM2FkYzA4M2NjOWQ3ZGMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtI
YW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RBY3RpdmVET01P
YmplY3QqKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0QWN0aXZlRE9NT2JqZWN0
T3duZXIsIGpzVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCBqc1Rlc3RBY3Rp
dmVET01PYmplY3RPd25lciwgKCkpOwogICAgIHJldHVybiAmanNUZXN0QWN0aXZlRE9NT2JqZWN0
T3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggZDQ5MDRi
Njc5MzhlZGJlZGRkNmYwZmMxNzljYzUxNGQ1YTFjZjA1Ni4uOWY1NWZkYTAxODA2MDkwYmJlYTY1
NDc1M2NjMGQyNGJkNjI5OTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgK
QEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIq
IHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciwg
anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyLCBqc1Rlc3RDdXN0b21O
YW1lZEdldHRlck93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RDdXN0b21OYW1lZEdldHRl
ck93bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCAxOTUxMGZk
YjY5MWEwN2M5Y2NkNjcxODA1YjdlNzEyYTIyYTJhNWU3Li41YmU5NThkZjA0NDA4ZjAzYjM1Njhj
Y2FiYjEwMDgwYjc3YzRjMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAg
LTgwLDcgKzgwLDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdy
YXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIsIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChKU1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXIsIGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JPd25lciwgKCkpOwogICAgIHJldHVybiAmanNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IDNjNjAwZGNmYjg5YmJlYmMxODRiZjEwMTMx
Zjk3N2NhOTc4Y2Q3NTguLjZlYjliZGU4NDk2MzVhOWZhMTEzMGZiOGVmNGUxNjY0NGYzNmI1Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKIAogaW5s
aW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwg
VGVzdEV2ZW50VGFyZ2V0KikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV2ZW50
VGFyZ2V0T3duZXIsIGpzVGVzdEV2ZW50VGFyZ2V0T3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0RXZlbnRUYXJnZXRPd25lciwganNUZXN0RXZlbnRU
YXJnZXRPd25lciwgKCkpOwogICAgIHJldHVybiAmanNUZXN0RXZlbnRUYXJnZXRPd25lcjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5oCmluZGV4IDNlOTM4ZGQzYmEwYjJmYWRhYjZlZWJiMzBkNzhkMTc0
MjhhZThkYmQuLmU5ZGZhMDA0ODU0YjYxODhmZjk1ZjlkNWNiZGJjOWUwNmQzYTY0ZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpX
ZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0RXhjZXB0
aW9uKikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV4Y2VwdGlvbk93bmVyLCBq
c1Rlc3RFeGNlcHRpb25Pd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3RFeGNlcHRpb25Pd25lciwganNUZXN0RXhjZXB0aW9uT3duZXIsICgpKTsKICAg
ICByZXR1cm4gJmpzVGVzdEV4Y2VwdGlvbk93bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuaAppbmRleCBjMzg4MWIwNWNkMTJiYzRhYjQ5Mzk0NGYyNmJhZDk2NGEz
NTYzZDA3Li5jZjgzYjNhZGQyOTM0NmYwYjJiMDdiOWE4NDBiYzFiMzk4NDYyZjU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGlj
OgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQmLCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIsIGpzVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIsIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25l
ciwgKCkpOwogICAgIHJldHVybiAmanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggNTMzYTZkYmIyYzBhYzBmMTMyY2MzNWFmNmRkYmZkZDZi
MWI3NTBkNS4uNTIyNzA4MDAwNDE1MDY1NThiNWRlZmU0N2Q2MDBiNjU4YjZkNjM5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEludGVy
ZmFjZSopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RJbnRlcmZhY2VPd25lciwg
anNUZXN0SW50ZXJmYWNlT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSlNUZXN0SW50ZXJmYWNlT3duZXIsIGpzVGVzdEludGVyZmFjZU93bmVyLCAoKSk7CiAg
ICAgcmV0dXJuICZqc1Rlc3RJbnRlcmZhY2VPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggMDUxNmE0YWRmZWQ5ZTQxYzRkZTg5M2NjZmUx
ZTcyZTkwNDYyMzdiNy4uZTc1ODRjZDU5OTg3NjlmYWI0NTk4YmZlY2MwZWE5ZmY1NTQ3YjhiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC03OCw3ICs3
OCw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3du
ZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyLCBq
c1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyLCBqc1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmgKaW5kZXggNWEzZTM0MjVjNjQ4NTQ4ODNkNzIxZTY3ZTFkYjJhOWQzNmNjNWRlMS4uYWU5
ZTRmNWUzNWQ3MjViNWUyYWNmM2ZmMjllZDRmMzZiOGVkOGZkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdE5hbWVk
Q29uc3RydWN0b3IqKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck93bmVyLCBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyLCBq
c1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzVGVzdE5hbWVk
Q29uc3RydWN0b3JPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDkzYjBkYjE2NTI4YjE3MjBjZjBmZDQ0
NmUyM2RhZDQ3NzQ5M2IwMmYuLjYzYmUzZWI4OWUzODA0Mjk5YTFlNjUyOGNkM2U3NzJkNmZhY2Y4
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFr
SGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T2JqKikKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdE9iak93bmVyLCBqc1Rlc3RPYmpPd25lciwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPYmpPd25lciwg
anNUZXN0T2JqT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzVGVzdE9iak93bmVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCAwM2Q4ZDNlMDYx
OGQ0NDdiNTI5OTQ3NTYwNDFiZTM0NjUwNjhkYTY4Li43NTJkMWRkM2RhYTczNWFlYWJhZTY2NTM0
ZmQxOWQ4NzA5MTZkZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxl
T3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzT3duZXIsIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lciwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzT3duZXIsIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lciwgKCkpOwogICAg
IHJldHVybiAmanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXgg
MzU1MGVlNDFmZmNhMDM5NTlhMTY1YzE5ZGU1YmJkNTRjZDRhMTlmMi4uMTQxZjM3ZGVkMDhkOTIx
MTBmZTU1MzczZTg1MDk2ZWUwNDkwNmU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6
CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJX
b3JsZCYsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXIs
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZU93bmVyLCBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25lciwg
KCkpOwogICAgIHJldHVybiAmanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3du
ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKaW5kZXggNDAwN2U4MzIyMmYyNTRiYmE4YmU3NjVmZGNl
NTM3MmEwNmZmMTNmZS4uMTgxNTUzMjMxNTMzNDBmZTc3ZDU2OWFlYzU0ZDhmM2Q0OTVhNDc2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlND
OjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0VHlw
ZWRlZnMqKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0VHlwZWRlZnNPd25lciwg
anNUZXN0VHlwZWRlZnNPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3RUeXBlZGVmc093bmVyLCBqc1Rlc3RUeXBlZGVmc093bmVyLCAoKSk7CiAgICAg
cmV0dXJuICZqc1Rlc3RUeXBlZGVmc093bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmluZGV4IDUzMDJmMTc2
OTgwNTY5NGEzZTUxMTNhNDcyYzhhNDFjMDJkNTIxZDQuLjJlODFmNTdkYmY3MzE5YmQyOWYyMWRl
ZjI5NWI5OTQwYzQ5YThhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldv
cmxkJiwgYXR0cmlidXRlKikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTYXR0cmlidXRl
T3duZXIsIGpzYXR0cmlidXRlT3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSlNhdHRyaWJ1dGVPd25lciwganNhdHRyaWJ1dGVPd25lciwgKCkpOwogICAgIHJl
dHVybiAmanNhdHRyaWJ1dGVPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggYmY1NmUzZTMwODkyOGRk
NDI5MTgyYTI0NmEwYjljZWU5NDAyOTY0My4uNDgyNzg5NTg0YjM2NjUzYzFhNWRlZTY0OWMwMTEz
ZmFhMjk3NWY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIAogaW5saW5l
IEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgcmVh
ZG9ubHkqKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNyZWFkb25seU93bmVyLCBqc3Jl
YWRvbmx5T3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNy
ZWFkb25seU93bmVyLCBqc3JlYWRvbmx5T3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzcmVhZG9u
bHlPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL0lkZW50aWZp
ZXJSZXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmluZGV4
IDNhZjdhMzdmYTA0YjBlYmY0YTE5M2NjMmNhYWM4NzAyYzdiOGZmYzUuLmE0Nzk5NTI1M2Y3ZTFi
ZjcyY2UwOTk4NzIwNjZlN2Q2OGE5ZGI5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9JZGVudGlmaWVyUmVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvSWRlbnRp
ZmllclJlcC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdHlwZWRlZiBIYXNoU2V0PElkZW50aWZpZXJS
ZXAqPiBJZGVudGlmaWVyU2V0OwogCiBzdGF0aWMgSWRlbnRpZmllclNldCYgaWRlbnRpZmllclNl
dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChJZGVudGlmaWVyU2V0LCBpZGVudGlmaWVy
U2V0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKElkZW50aWZpZXJT
ZXQsIGlkZW50aWZpZXJTZXQsICgpKTsKICAgICByZXR1cm4gaWRlbnRpZmllclNldDsKIH0KICAg
ICAKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRlZiBIYXNoTWFwPGludCwgSWRlbnRpZmllclJlcCo+
IEludElkZW50aWZpZXJNYXA7CiAKIHN0YXRpYyBJbnRJZGVudGlmaWVyTWFwJiBpbnRJZGVudGlm
aWVyTWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEludElkZW50aWZpZXJNYXAsIGlu
dElkZW50aWZpZXJNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SW50SWRlbnRpZmllck1hcCwgaW50SWRlbnRpZmllck1hcCwgKCkpOwogICAgIHJldHVybiBpbnRJ
ZGVudGlmaWVyTWFwOwogfQogCkBAIC04MSw3ICs4MSw3IEBAIHR5cGVkZWYgSGFzaE1hcDxSZWZQ
dHI8U3RyaW5nSW1wbD4sIElkZW50aWZpZXJSZXAqPiBTdHJpbmdJZGVudGlmaWVyTWFwOwogCiBz
dGF0aWMgU3RyaW5nSWRlbnRpZmllck1hcCYgc3RyaW5nSWRlbnRpZmllck1hcCgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdJZGVudGlmaWVyTWFwLCBzdHJpbmdJZGVudGlmaWVy
TWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0lkZW50
aWZpZXJNYXAsIHN0cmluZ0lkZW50aWZpZXJNYXAsICgpKTsKICAgICByZXR1cm4gc3RyaW5nSWRl
bnRpZmllck1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pz
b2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5kZXgg
MzRkZDE0Njk2NTYyZDQxY2QxOTc1OTZhNjA5ZDY5MzA1NTc1N2Q1Ni4uZjdkNmJiNGNmYTQ5ZmY1
MzZjZTg1ZDJhZmIxNzkyMGE2NmE5Yjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmpl
Y3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAKIHN0YXRpYyBPYmplY3RNYXAmIG9i
amVjdE1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChPYmplY3RNYXAsIG1hcCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPYmplY3RNYXAsIG1hcCwgKCkp
OwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5j
cHAKaW5kZXggNDQxYzIwZWQ3MzU2NzMzMzBiZDZmZTkwM2M1YjE5MWU0MWFiYmQwMi4uMDk4N2Jl
MjIwNGY5N2QyNWM4YmI1OGU1ZTQxN2E3M2NiMGEzYzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvY19pbnN0YW5jZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsK
IAogc3RhdGljIFN0cmluZyYgZ2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3RyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3RyLCAoKSk7CiAgICAgcmV0dXJu
IGV4Y2VwdGlvblN0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfcm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcApp
bmRleCBiYTAzZDVkMjk5MmI0OGJkODBiZTQ2N2JmMWUyZmM5ZDBmZDI2YTJjLi5mZjY2ZDMzZmM1
MDRmOGNlMzJiZmU4YmQxMTE5MzI0NjBiYzQ3NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9yb290LmNwcApAQCAtNDgsNyArNDgsNyBAQCB0eXBlZGVmIEhhc2hTZXQ8Um9vdE9iamVj
dCo+IFJvb3RPYmplY3RTZXQ7CiAKIHN0YXRpYyBSb290T2JqZWN0U2V0KiByb290T2JqZWN0U2V0
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJvb3RPYmplY3RTZXQsIHN0YXRpY1Jvb3RP
YmplY3RTZXQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUm9vdE9i
amVjdFNldCwgc3RhdGljUm9vdE9iamVjdFNldCwgKCkpOwogICAgIHJldHVybiAmc3RhdGljUm9v
dE9iamVjdFNldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBlOWViNTA1YTQyYjBlYmEzNmM3YjMzMjVjNzg5MTA2
OGYwZmM2N2QwLi4wYzU4NjYxOTc4NmFiODhmOGQ4NGY1YWQ3MTI3NGRjNGQ3OWIxOWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNvdW50
ZXJUb0NTU1ZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTUHJvcGUKIAogc3RhdGlj
IHZvaWQgbG9nVW5pbXBsZW1lbnRlZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiwgcHJv
cGVydHlJRFNldCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PENTU1Byb3BlcnR5SUQ+LCBwcm9wZXJ0eUlEU2V0LCAoKSk7CiAgICAgaWYgKCFwcm9wZXJ0
eUlEU2V0LmFkZChwcm9wZXJ0eUlEKS5pc05ld0VudHJ5KQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAKaW5kZXggODQ4OThh
YzdiMDc1ZDcwNmUxMTIzNzIzMTMzZmJjYjI0MTA1YWJlNS4uN2NlZDA0ZDViYTEzODRjNjA5YTg0
ZDU4Nzc3MDNmZDA4ZDBlMGU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Rl
ZmF1bHRTdHlsZVNoZWV0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRT
dHlsZVNoZWV0cy5jcHAKQEAgLTY4LDEzICs2OCwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZWxl
bWVudENhblVzZVNpbXBsZURlZmF1bHRTdHlsZShFbGVtZW50KiBlKQogCiBzdGF0aWMgY29uc3Qg
TWVkaWFRdWVyeUV2YWx1YXRvciYgc2NyZWVuRXZhbCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yLCBzdGF0aWNTY3JlZW5FdmFsLCAoInNjcmVl
biIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgTWVkaWFRdWVy
eUV2YWx1YXRvciwgc3RhdGljU2NyZWVuRXZhbCwgKCJzY3JlZW4iKSk7CiAgICAgcmV0dXJuIHN0
YXRpY1NjcmVlbkV2YWw7CiB9CiAKIHN0YXRpYyBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBw
cmludEV2YWwoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciwgc3RhdGljUHJpbnRFdmFsLCAoInByaW50IikpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yLCBzdGF0aWNQcmludEV2
YWwsICgicHJpbnQiKSk7CiAgICAgcmV0dXJuIHN0YXRpY1ByaW50RXZhbDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCAzYjhhNjhjYzI1NmQ4NTljYzBkZTE5
M2MzZWFiNzhkMjg5M2EwOTZkLi5hMDE0N2ZkY2UwMmY5YTBhZjllMGI1M2VjOGRmYWQ4ZWNjOWFk
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtNjE5LDcgKzYx
OSw3IEBAIGJvb2wgQ1NTRm9udFNlbGVjdG9yOjpyZXNvbHZlc0ZhbWlseUZvcihjb25zdCBGb250
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKSBjb25zCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKG1fZm9udEZhY2VzLmNvbnRhaW5zKGZhbWlseU5hbWUpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJraXRQ
cmVmaXgsICgiLXdlYmtpdC0iKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHdlYmtpdFByZWZpeCwgKCItd2Via2l0LSIpKTsKICAgICAgICAgaWYgKGZh
bWlseU5hbWUuc3RhcnRzV2l0aCh3ZWJraXRQcmVmaXgpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMjVjODExNDVh
MDM0YTllNDE0NjE0NTEyNWUzZGEwOGZlNGUzZDRiYS4uYWUwYWI5ZjViNTNkNGI0ZTNjYWI3ZTU0
OTI1YmNlZmFiMjNjNWFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTIzNyw3ICsy
MzcsNyBAQCBwcml2YXRlOgogCiBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBzdHJpY3RDU1NQYXJz
ZXJDb250ZXh0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1BhcnNlckNvbnRleHQs
IHN0cmljdENvbnRleHQsIChDU1NTdHJpY3RNb2RlKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKENTU1BhcnNlckNvbnRleHQsIHN0cmljdENvbnRleHQsIChDU1NTdHJpY3RN
b2RlKSk7CiAgICAgcmV0dXJuIHN0cmljdENvbnRleHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDJlMDliZDExMDg5YWQyNzk3NzczYzc3MGY0NzFm
NDNmMzgzZGZjMjkuLjg4MmIxZjhlMDc1YzFhNzU1OTYxOGVkMTEyMWEwYjg0ZWMxYWNmNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTc2LDcgKzE3Niw3
IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0Q2F0ZWdvcnkgQ1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRDYXRlZ29yeShDU1NQcmltaXRpdmVWYWx1CiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgQ1NTUHJp
bWl0aXZlVmFsdWUqLCBTdHJpbmc+IENTU1RleHRDYWNoZTsKIHN0YXRpYyBDU1NUZXh0Q2FjaGUm
IGNzc1RleHRDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDU1NUZXh0Q2FjaGUs
IGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENTU1RleHRD
YWNoZSwgY2FjaGUsICgpKTsKICAgICByZXR1cm4gY2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwCmluZGV4IDBkZDI3YzEwMjYzYjUyNzE3MTZmMDVjNDM4Mjc4NWI5YzJhNzc1
MGIuLjI2YWMzNjM1MDMxZDVjZTlkYjI4MjIwZjBiYjMxMzc4MDcxODg5MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBDU1NQcm9wZXJ0
eUlEIHJlc29sdmVUb1BoeXNpY2FsUHJvcGVydHkoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExv
Z2ljYWxFCiBzdGF0aWMgY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgYm9yZGVyRGlyZWN0
aW9ucygpCiB7CiAgICAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgcHJvcGVydGllc1s0XSA9
IHsgQ1NTUHJvcGVydHlCb3JkZXJUb3AsIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHQsIENTU1Byb3Bl
cnR5Qm9yZGVyQm90dG9tLCBDU1NQcm9wZXJ0eUJvcmRlckxlZnQgfTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0eWxlUHJvcGVydHlTaG9ydGhhbmQsIGJvcmRlckRpcmVjdGlvbnMsIChDU1NQ
cm9wZXJ0eUJvcmRlciwgcHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZVByb3BlcnR5U2hvcnRo
YW5kLCBib3JkZXJEaXJlY3Rpb25zLCAoQ1NTUHJvcGVydHlCb3JkZXIsIHByb3BlcnRpZXMsIFdU
Rl9BUlJBWV9MRU5HVEgocHJvcGVydGllcykpKTsKICAgICByZXR1cm4gYm9yZGVyRGlyZWN0aW9u
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAppbmRleCBhNzUyYThmYjliNTI2
MTFhMzgwZDI4NWZmZjY3NmM5N2YxZjg4OGIwLi40YmM5ZDk4YWQ1OGU3NjZiMzJiNTU1OTBhZjIx
ZmFjNGY3YjQ5NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgQ1NTU3R5
bGVSdWxlKiwgU3RyaW5nPiBTZWxlY3RvclRleHRDYWNoZTsKIHN0YXRpYyBTZWxlY3RvclRleHRD
YWNoZSYgc2VsZWN0b3JUZXh0Q2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2Vs
ZWN0b3JUZXh0Q2FjaGUsIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFNlbGVjdG9yVGV4dENhY2hlLCBjYWNoZSwgKCkpOwogICAgIHJldHVybiBjYWNoZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAppbmRleCAxMTViZDliYTJhMTU3ZWUx
NzA1NWE5NDVkMzg3MTQxOGI3ZDJiMjQxLi4yOTgwMDNkNmI0OTBmYjIzNzA0ZTk4ODZiZjg1YWYx
YzRkMjg1YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcApAQCAtMzUsNyArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENTU1ZhbHVlUG9vbCYgY3NzVmFsdWVQb29sKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENTU1ZhbHVlUG9vbCwgcG9vbCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDU1NWYWx1ZVBvb2wsIHBvb2wsICgpKTsK
ICAgICByZXR1cm4gcG9vbDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRT
dHlsZUJ1aWxkZXIuY3BwCmluZGV4IGMwNjI3MzZiM2NjOGM5MDBlNTY2Mjg0ODVlODA3YmZlOWZm
M2Y4ZTAuLjZkY2I5MTliYjNkNjAwZTAwN2E3YTM1Yjc0MTczZGZkYjE2YjA5YjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTE1ODMsMjIg
KzE1ODMsMjIgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgc3RhdGljIGJvb2wgZ2V0UGFnZVNpemVG
cm9tTmFtZShDU1NQcmltaXRpdmVWYWx1ZSogcGFnZVNpemVOYW1lLCBDU1NQcmltaXRpdmVWYWx1
ZSogcGFnZU9yaWVudGF0aW9uLCBMZW5ndGgmIHdpZHRoLCBMZW5ndGgmIGhlaWdodCkKICAgICB7
Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhNVdpZHRoLCAobW1MZW5ndGgo
MTQ4KSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYTVIZWlnaHQsICht
bUxlbmd0aCgyMTApKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhNFdp
ZHRoLCAobW1MZW5ndGgoMjEwKSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0
aCwgYTRIZWlnaHQsIChtbUxlbmd0aCgyOTcpKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoTGVuZ3RoLCBhM1dpZHRoLCAobW1MZW5ndGgoMjk3KSkpOwotICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKExlbmd0aCwgYTNIZWlnaHQsIChtbUxlbmd0aCg0MjApKSk7Ci0gICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBiNVdpZHRoLCAobW1MZW5ndGgoMTc2KSkpOwotICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYjVIZWlnaHQsIChtbUxlbmd0aCgyNTAp
KSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBiNFdpZHRoLCAobW1MZW5n
dGgoMjUwKSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYjRIZWlnaHQs
IChtbUxlbmd0aCgzNTMpKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBs
ZXR0ZXJXaWR0aCwgKGluY2hMZW5ndGgoOC41KSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKExlbmd0aCwgbGV0dGVySGVpZ2h0LCAoaW5jaExlbmd0aCgxMSkpKTsKLSAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGxlZ2FsV2lkdGgsIChpbmNoTGVuZ3RoKDguNSkpKTsK
LSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGxlZ2FsSGVpZ2h0LCAoaW5jaExl
bmd0aCgxNCkpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGxlZGdlcldp
ZHRoLCAoaW5jaExlbmd0aCgxMSkpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5n
dGgsIGxlZGdlckhlaWdodCwgKGluY2hMZW5ndGgoMTcpKSk7CisgICAgICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGE1V2lkdGgsIChtbUxlbmd0aCgxNDgpKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGE1SGVpZ2h0LCAo
bW1MZW5ndGgoMjEwKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoLCBhNFdpZHRoLCAobW1MZW5ndGgoMjEwKSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhNEhlaWdodCwgKG1tTGVuZ3RoKDI5NykpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYTNXaWR0aCwgKG1t
TGVuZ3RoKDI5NykpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExl
bmd0aCwgYTNIZWlnaHQsIChtbUxlbmd0aCg0MjApKSk7CisgICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGI1V2lkdGgsIChtbUxlbmd0aCgxNzYpKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGI1SGVpZ2h0LCAobW1M
ZW5ndGgoMjUwKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGVu
Z3RoLCBiNFdpZHRoLCAobW1MZW5ndGgoMjUwKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBiNEhlaWdodCwgKG1tTGVuZ3RoKDM1MykpKTsKKyAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGV0dGVyV2lkdGgsIChp
bmNoTGVuZ3RoKDguNSkpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KExlbmd0aCwgbGV0dGVySGVpZ2h0LCAoaW5jaExlbmd0aCgxMSkpKTsKKyAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGVnYWxXaWR0aCwgKGluY2hMZW5ndGgo
OC41KSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBs
ZWdhbEhlaWdodCwgKGluY2hMZW5ndGgoMTQpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChMZW5ndGgsIGxlZGdlcldpZHRoLCAoaW5jaExlbmd0aCgxMSkpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGVkZ2VySGVpZ2h0
LCAoaW5jaExlbmd0aCgxNykpKTsKIAogICAgICAgICBpZiAoIXBhZ2VTaXplTmFtZSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIzMzksNyArMjMzOSw3IEBAIHB1YmxpYzoKIAogY29u
c3QgRGVwcmVjYXRlZFN0eWxlQnVpbGRlciYgRGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6c2hhcmVk
U3R5bGVCdWlsZGVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIsIHN0eWxlQnVpbGRlckluc3RhbmNlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKERlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIsIHN0eWxlQnVpbGRlckluc3Rh
bmNlLCAoKSk7CiAgICAgcmV0dXJuIHN0eWxlQnVpbGRlckluc3RhbmNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuY3BwCmluZGV4IGFmZWMyOWQ4ZTRjMzU5N2YyZDMyOTNhZWExYWI4OWNjNTc5
M2FlNTMuLjdkNDk0YmM0NDYyZmE2M2UyY2Q1NzBiZGU0N2VlMDAwMDYxMDUzYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC0yOTMsMTEgKzI5MywxMSBAQCBzdGF0aWMgdm9pZCBhZGRS
ZXNvbHV0aW9uV2FybmluZ01lc3NhZ2VUb0NvbnNvbGUoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBTdHJpbgogICAgIEFTU0VSVChkb2N1bWVudCk7CiAgICAgQVNTRVJUKHZhbHVlKTsKIAotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVF1ZXJ5TWVzc2FnZSwgKEFTQ0lJTGl0
ZXJhbCgiQ29uc2lkZXIgdXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJyVyZXBsYWNlbWVu
dFVuaXRzJScsIGFzIGluIENTUyAnJXJlcGxhY2VtZW50VW5pdHMlJyBtZWFucyBkb3RzLXBlci1D
U1MtJWxlbmd0aFVuaXQlLCBub3QgZG90cy1wZXItcGh5c2ljYWwtJWxlbmd0aFVuaXQlLCBzbyBk
b2VzIG5vdCBjb3JyZXNwb25kIHRvIHRoZSBhY3R1YWwgJyVyZXBsYWNlbWVudFVuaXRzJScgb2Yg
YSBzY3JlZW4uIEluIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb246ICIpKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIG1lZGlhVmFsdWVEUEksIChBU0NJSUxpdGVyYWwoImRwaSIpKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1lZGlhVmFsdWVEUENNLCAoQVNDSUlM
aXRlcmFsKCJkcGNtIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVuZ3Ro
VW5pdEluY2gsIChBU0NJSUxpdGVyYWwoImluY2giKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBsZW5ndGhVbml0Q2VudGltZXRlciwgKEFTQ0lJTGl0ZXJhbCgiY2VudGltZXRl
ciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFR
dWVyeU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNvbnNpZGVyIHVzaW5nICdkcHB4JyB1bml0cyBp
bnN0ZWFkIG9mICclcmVwbGFjZW1lbnRVbml0cyUnLCBhcyBpbiBDU1MgJyVyZXBsYWNlbWVudFVu
aXRzJScgbWVhbnMgZG90cy1wZXItQ1NTLSVsZW5ndGhVbml0JSwgbm90IGRvdHMtcGVyLXBoeXNp
Y2FsLSVsZW5ndGhVbml0JSwgc28gZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgYWN0dWFsICcl
cmVwbGFjZW1lbnRVbml0cyUnIG9mIGEgc2NyZWVuLiBJbiBtZWRpYSBxdWVyeSBleHByZXNzaW9u
OiAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1lZGlh
VmFsdWVEUEksIChBU0NJSUxpdGVyYWwoImRwaSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQQ00sIChBU0NJSUxpdGVyYWwoImRwY20i
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVu
aXRJbmNoLCAoQVNDSUlMaXRlcmFsKCJpbmNoIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBsZW5ndGhVbml0Q2VudGltZXRlciwgKEFTQ0lJTGl0ZXJhbCgi
Y2VudGltZXRlciIpKSk7CiAKICAgICBTdHJpbmcgbWVzc2FnZTsKICAgICBpZiAodmFsdWUtPmlz
RG90c1BlckluY2goKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXgg
MDJlZDIyOWM5YzE3NzBhMzZjMmQ4NDEyZTMyOWQ4ZDRlMGNjZjBjYy4uOWRmYzgzN2ZjYTRlYjI1
MzE4ZmVkMzE3N2JiNzcwYzRlMDA0Y2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKQEAgLTUwLDggKzUwLDggQEAgc3RhdGljIHNpemVfdCBzaXplRm9ySW1tdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzV2l0aFByb3BlcnR5Q291bnQodW5zaWduZWQgY291bnQpCiAKIHN0YXRp
YyBib29sIGlzSW5pdGlhbE9ySW5oZXJpdChjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0aWFsLCAoImluaXRpYWwiKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaGVyaXQsICgiaW5oZXJpdCIpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0aWFsLCAoImluaXRpYWwiKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW5oZXJpdCwgKCJp
bmhlcml0IikpOwogICAgIHJldHVybiB2YWx1ZS5sZW5ndGgoKSA9PSA3ICYmICh2YWx1ZSA9PSBp
bml0aWFsIHx8IHZhbHVlID09IGluaGVyaXQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCmluZGV4IGFhZWYxYzEzOTEwY2JiZWY1M2Y0ZWZiNjliNThhNzkz
Y2U5YjQyNzguLmQwNThlNmRlYTQwN2I3Yzk3ZDRjM2VjNzgyYjAzNDMxZTNkNmYzNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC0zMDYsNyArMzA2LDcg
QEAgdm9pZCBTdHlsZVNoZWV0Q29udGVudHM6OnBhcnNlQXV0aG9yU3R5bGVTaGVldChjb25zdCBD
YWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWQKICAgICB9CiAgICAgaWYgKG1fcGFyc2VyQ29udGV4
dC5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyAmJiBpc1N0cmljdFBhcnNlck1vZGUobV9wYXJzZXJD
b250ZXh0Lm1vZGUpKSB7CiAgICAgICAgIC8vIFdvcmsgYXJvdW5kIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgzNTA+LgotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hlZXQsIChBU0NJSUxp
dGVyYWwoIi8qIEtIVE1MIGZpeCBzdHlsZXNoZWV0ICovXG4vKiB3b3JrIGFyb3VuZCB0aGUgaG9y
aXpvbnRhbCBzY3JvbGxiYXJzICovXG4jY29sdW1uLWNvbnRlbnQgeyBtYXJnaW4tbGVmdDogMDsg
fVxuXG4iKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldCwgKEFTQ0lJTGl0ZXJhbCgiLyog
S0hUTUwgZml4IHN0eWxlc2hlZXQgKi9cbi8qIHdvcmsgYXJvdW5kIHRoZSBob3Jpem9udGFsIHNj
cm9sbGJhcnMgKi9cbiNjb2x1bW4tY29udGVudCB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiIpKSk7
CiAgICAgICAgIC8vIFRoZXJlIGFyZSB0d28gdmFyaWFudHMgb2YgS0hUTUxGaXhlcy5jc3MuIE9u
ZSBpcyBlcXVhbCB0byBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldCwKICAgICAgICAgLy8g
d2hpbGUgdGhlIG90aGVyIGxhY2tzIHRoZSBzZWNvbmQgdHJhaWxpbmcgbmV3bGluZS4KICAgICAg
ICAgaWYgKGJhc2VVUkwoKS5zdHJpbmcoKS5lbmRzV2l0aCgiL0tIVE1MRml4ZXMuY3NzIikgJiYg
IXNoZWV0VGV4dC5pc051bGwoKSAmJiBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldC5zdGFy
dHNXaXRoKHNoZWV0VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExp
c3RNdXRhdGlvblNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlv
blNjb3BlLmNwcAppbmRleCBkOGMyMDJjZTQyMTFkYzY3YTdlMzRhYzZjY2U4MjgwZmI5OTExN2I1
Li40YjgwOGQ0ZmI1ZTAyM2QxZTcxYTAyYTcyYmZjYTE0ZGMzNTFkYTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCkBAIC00Myw3ICs0Myw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxDb250YWluZXJOb2RlKiwgQ2hp
bGRMaXN0TXV0YXRpb25BY2N1bXVsYXRvcio+IEFjY3VtdWxhdG9yTWFwOwogc3RhdGljIEFjY3Vt
dWxhdG9yTWFwJiBhY2N1bXVsYXRvck1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
Y2N1bXVsYXRvck1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEFjY3VtdWxhdG9yTWFwLCBtYXAsICgpKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCA2NjI1NWQ2Yjk4Y2Y2ODc3
N2UwMDAxYTJjNjk2NjZlMjBhYTM4ODJlLi43NmExZWU5NmI0NjBiMzI2ZTRjMTM1YmRhZjYzZTdi
Nzk5NGJkZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAg
LTg2LDcgKzg2LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRTVkcxMEZlYXR1cmUoY29uc3Qg
U3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEZlYXR1cmVTZXQsIHN2Z0ZlYXR1cmVzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZlYXR1cmVTZXQsIHN2Z0ZlYXR1cmVzLCAoKSk7CiAgICAg
aWYgKCFpbml0aWFsaXplZCkgewogI2lmIEVOQUJMRShGSUxURVJTKSAmJiBFTkFCTEUoU1ZHX0ZP
TlRTKQogICAgICAgICBhZGRTdHJpbmcoc3ZnRmVhdHVyZXMsICJzdmciKTsKQEAgLTExNSw3ICsx
MTUsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFNWRzExRmVhdHVyZShjb25zdCBTdHJpbmcm
IGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoRmVhdHVyZVNldCwgc3ZnRmVhdHVyZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3ZnRmVhdHVyZXMsICgpKTsKICAgICBpZiAoIWlu
aXRpYWxpemVkKSB7CiAgICAgICAgIC8vIFNhZGx5LCB3ZSBjYW5ub3QgY2xhaW0gdG8gaW1wbGVt
ZW50IGFueSBvZiB0aGUgU1ZHIDEuMSBnZW5lcmljIGZlYXR1cmUgc2V0cwogICAgICAgICAvLyBs
YWNrIG9mIEZvbnQgYW5kIEZpbHRlciBzdXBwb3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggOTQxNDYyZTE2YjNhOWJiNTJjNTE5YWQ3NGIzN2RlYmFiNjk1ODU2YS4uYmNmYTUwMTdlNDhh
NGUzMDg1MTIyNDcyYzEzMTdmMjUxMTYyMWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMTY5LDkgKzExNjksOSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IERvY3VtZW50OjpjcmVhdGVF
bGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0CiAKIFN0cmluZyBEb2N1
bWVudDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGxvYWRpbmcsIChBU0NJSUxpdGVyYWwoImxvYWRpbmciKSkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBpbnRlcmFjdGl2ZSwgKEFTQ0lJTGl0ZXJhbCgi
aW50ZXJhY3RpdmUiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBj
b21wbGV0ZSwgKEFTQ0lJTGl0ZXJhbCgiY29tcGxldGUiKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxvYWRpbmcsIChBU0NJSUxpdGVyYWwoImxv
YWRpbmciKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGludGVyYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY29tcGxldGUsIChBU0NJ
SUxpdGVyYWwoImNvbXBsZXRlIikpKTsKIAogICAgIHN3aXRjaCAobV9yZWFkeVN0YXRlKSB7CiAg
ICAgY2FzZSBMb2FkaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDdiNzViYjRmZmYyNThj
Y2NiYzJkYjc2M2I2YTIyZjI0MDU2ODhkMmUuLjZiOWRhYTlmMzZiNTdmYzRjZThjOGRmYTc4MDVl
NmJkYzVmMTNjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdHlw
ZWRlZiBIYXNoTWFwPEVsZW1lbnQqLCBPd25QdHI8QXR0ck5vZGVMaXN0Pj4gQXR0ck5vZGVMaXN0
TWFwOwogCiBzdGF0aWMgQXR0ck5vZGVMaXN0TWFwJiBhdHRyTm9kZUxpc3RNYXAoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXR0ck5vZGVMaXN0TWFwLCBtYXAsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXR0ck5vZGVMaXN0TWFwLCBtYXAsICgpKTsKICAg
ICByZXR1cm4gbWFwOwogfQogCkBAIC0yNTIwLDIxICsyNTIwLDIxIEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgRWxlbWVudDo6d2Via2l0UmVnaW9uT3ZlcnNldCgpIGNvbnN0CiB7CiAgICAgZG9jdW1l
bnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB1bmRlZmluZWRTdGF0ZSwgKCJ1bmRlZmluZWQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdW5kZWZpbmVkU3RhdGUsICgidW5kZWZp
bmVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmICghZG9j
dW1lbnQoKS5jc3NSZWdpb25zRW5hYmxlZCgpIHx8ICFyZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgp
KQogICAgICAgICByZXR1cm4gdW5kZWZpbmVkU3RhdGU7CiAKICAgICBzd2l0Y2ggKHJlZ2lvbk92
ZXJzZXRTdGF0ZSgpKSB7CiAgICAgY2FzZSBSZWdpb25GaXQ6IHsKLSAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpdFN0YXRlLCAoImZpdCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZml0U3RhdGUsICgiZml0IiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZml0U3RhdGU7CiAgICAgfQogICAg
IGNhc2UgUmVnaW9uRW1wdHk6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGVtcHR5U3RhdGUsICgiZW1wdHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBlbXB0eVN0YXRlOwogICAgIH0KICAgICBjYXNlIFJl
Z2lvbk92ZXJzZXQ6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG92ZXJmbG93U3RhdGUsICgib3ZlcnNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gb3ZlcmZsb3dTdGF0ZTsKICAgICB9CiAgICAg
Y2FzZSBSZWdpb25VbmRlZmluZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3Bw
CmluZGV4IDhjODZlNjJmM2Y4NjA4NzBjNzNhOWQzYTU4ZmViYTIzYjU4MmNjZDMuLjVlYmMzOGY0
MWVlYzhiMjY4NmZiZGE5NTg2NmMxYjZjZDM1YWNjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dERpc3BhdGNoZXIuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRWxlbWVudCogZWxlbWVudCwgRXZlbnQqIHVuZGVybHlp
bmcKICAgICBpZiAoZWxlbWVudC0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxFbGVtZW50Kj4sIGVsZW1l
bnRzRGlzcGF0Y2hpbmdTaW11bGF0ZWRDbGlja3MsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxFbGVtZW50Kj4sIGVsZW1lbnRzRGlzcGF0Y2hpbmdTaW11
bGF0ZWRDbGlja3MsICgpKTsKICAgICBpZiAoIWVsZW1lbnRzRGlzcGF0Y2hpbmdTaW11bGF0ZWRD
bGlja3MuYWRkKGVsZW1lbnQpLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50TGlzdGVuZXJNYXAuY3BwCmluZGV4IGMwNDFiZWQ1ZTlkOTcwOWVhMDhm
ODk0MzVmNjg3NDJiOGEwODYyOTguLjM2ODc0M2RlZDAyYWRiMzhkZjhhMWVmMzIzNWJmZDJiMjIz
YTRhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyTWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKQEAgLTUxLDcg
KzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmbmRlZiBOREVCVUcKIHN0YXRpYyBNdXRl
eCYgYWN0aXZlSXRlcmF0b3JDb3VudE11dGV4KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuY3BwCmluZGV4IDczNzVlYWJlZDQ3YWUxOGVmMTEwMzNlN2ZjYmExMDA4OGRiNjZh
MTMuLmNmNzRjMjU0NzllZmZlN2E3YTcxZGI5MzIxMTJlNzVjNTA1ZTJhMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6
OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQsIEV2ZW50VGFyZ2V0RGF0YSogZCwgRXZl
bnRMaXN0CiAKIGNvbnN0IEV2ZW50TGlzdGVuZXJWZWN0b3ImIEV2ZW50VGFyZ2V0OjpnZXRFdmVu
dExpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEV2ZW50TGlzdGVuZXJWZWN0b3IsIGVtcHR5VmVjdG9yLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEV2ZW50TGlzdGVuZXJWZWN0b3IsIGVtcHR5
VmVjdG9yLCAoKSk7CiAKICAgICBFdmVudFRhcmdldERhdGEqIGQgPSBldmVudFRhcmdldERhdGEo
KTsKICAgICBpZiAoIWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5saW5lU3R5
bGVTaGVldE93bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3du
ZXIuY3BwCmluZGV4IGRlZjcyNmY1ODYyYzQxZTQyOGIxZTY1ODIzZDRhNTQyNzQ2MDljNGUuLjVj
MzYzODQyYjY5MTQ2NTllMTM0MGEzODE2N2FlN2NjY2M2Y2ZmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9p
ZCBJbmxpbmVTdHlsZVNoZWV0T3duZXI6OmNsZWFyU2hlZXQoKQogCiBpbmxpbmUgYm9vbCBpc1Zh
bGlkQ1NTQ29udGVudFR5cGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjc3ND
b250ZW50VHlwZSwgKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBjc3NDb250ZW50VHlwZSwgKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICBpZiAodHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIHJldHVybiBlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSA/IGVxdWFsSWdub3JpbmdD
YXNlKHR5cGUsIGNzc0NvbnRlbnRUeXBlKSA6IHR5cGUgPT0gY3NzQ29udGVudFR5cGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggYmYwMGZhYzQwOTEyNmQ1MzE4
NGQyYTJmYmU3N2ZjYzYxM2ZkMGExZS4uNzc0NThmOGU2OTY1MzU0NzZlYmJkODQ3ODE1ZTc3YWNm
MzQ0MDUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApAQCAtMTM4
LDEzICsxMzgsMTMgQEAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxNdXRhdGlvbk9ic2VydmVyPj4g
TXV0YXRpb25PYnNlcnZlclNldDsKIAogc3RhdGljIE11dGF0aW9uT2JzZXJ2ZXJTZXQmIGFjdGl2
ZU11dGF0aW9uT2JzZXJ2ZXJzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9u
T2JzZXJ2ZXJTZXQsIGFjdGl2ZU9ic2VydmVycywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBhY3RpdmVPYnNlcnZlcnMsICgpKTsK
ICAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzOwogfQogCiBzdGF0aWMgTXV0YXRpb25PYnNlcnZl
clNldCYgc3VzcGVuZGVkTXV0YXRpb25PYnNlcnZlcnMoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoTXV0YXRpb25PYnNlcnZlclNldCwgc3VzcGVuZGVkT2JzZXJ2ZXJzLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIHN1c3Bl
bmRlZE9ic2VydmVycywgKCkpOwogICAgIHJldHVybiBzdXNwZW5kZWRPYnNlcnZlcnM7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuY3BwCmluZGV4IGFkYmYwYWJiMjg0MzQ5Zjk4
MDYyYjFmMThkZDUwMjBkOTNmMWY3YjMuLjVhNDdmYzAwMWMxNWEyOGU5NThkZTZmMjQ1Y2IxZTkz
YTcyMzgwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmNwcApAQCAtMTQ1LDE5
ICsxNDUsMTkgQEAgcHJpdmF0ZToKIAogY29uc3QgQXRvbWljU3RyaW5nJiBDaGlsZExpc3RSZWNv
cmQ6OnR5cGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjaGls
ZExpc3QsICgiY2hpbGRMaXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNoaWxk
TGlzdCwgKCJjaGlsZExpc3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIGNoaWxkTGlzdDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdHRyaWJ1
dGVzUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1dGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGF0dHJpYnV0ZXMsICgiYXR0cmlidXRlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICByZXR1cm4gYXR0cmlidXRlczsKIH0KIAogY29uc3QgQXRvbWljU3Ry
aW5nJiBDaGFyYWN0ZXJEYXRhUmVjb3JkOjp0eXBlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgY2hhcmFjdGVyRGF0YSwgKCJjaGFyYWN0ZXJEYXRhIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGNoYXJhY3RlckRhdGEsICgiY2hhcmFjdGVyRGF0YSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2hhcmFj
dGVyRGF0YTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQzZDNmY2ZjYWZkNGE4ZmRlMTU5NTk3
Mjg2YTkxODc3MGM3NzU4NzYuLjYzZDE3NzUwZWE5NzkxMWM4NTE0YjEwMWVkODQ1MTQxMmE0YTgz
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE4NjMsNyArMTg2Myw3IEBAIHR5cGVkZWYgSGFzaE1h
cDxOb2RlKiwgT3duUHRyPEV2ZW50VGFyZ2V0RGF0YT4+IEV2ZW50VGFyZ2V0RGF0YU1hcDsKIAog
c3RhdGljIEV2ZW50VGFyZ2V0RGF0YU1hcCYgZXZlbnRUYXJnZXREYXRhTWFwKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEV2ZW50VGFyZ2V0RGF0YU1hcCwgbWFwLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEV2ZW50VGFyZ2V0RGF0YU1hcCwgbWFwLCAoKSk7
CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bz
ZXVkb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCmlu
ZGV4IGNlNWJmMmNmZTUyNGRjMDVjNGJmNjZmOWNmMGU0NWQyZDQ1Zjg2OWUuLjk4MjFhMDQ3YzZk
YzhmZjQ1YWQzNzQ3MmZmMTEzOTIzMTkyYzAzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxl
bWVudC5jcHAKQEAgLTM3LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IFF1YWxpZmllZE5hbWUmIHBzZXVkb0VsZW1lbnRUYWdOYW1lKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIG5hbWUsIChudWxsQXRvbSwgIjxwc2V1ZG8+IiwgbnVs
bEF0b20pKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFt
ZSwgbmFtZSwgKG51bGxBdG9tLCAiPHBzZXVkbz4iLCBudWxsQXRvbSkpOwogICAgIHJldHVybiBu
YW1lOwogfQogCiBTdHJpbmcgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVu
dHMoUHNldWRvSWQgcHNldWRvSWQpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGFmdGVyLCAoQVNDSUlMaXRlcmFsKCI6OmFmdGVyIikpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYmVmb3JlLCAoQVNDSUlMaXRlcmFsKCI6OmJlZm9yZSIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYWZ0
ZXIsIChBU0NJSUxpdGVyYWwoIjo6YWZ0ZXIiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJlZm9yZSwgKEFTQ0lJTGl0ZXJhbCgiOjpiZWZvcmUi
KSkpOwogICAgIHN3aXRjaCAocHNldWRvSWQpIHsKICAgICBjYXNlIEFGVEVSOgogICAgICAgICBy
ZXR1cm4gYWZ0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggYjE3ZDhh
YTNkMDRjOTJiOWVmODYzYjk4MDdlMjIxMjg4OWE0ZTZjZi4uMzY4MWExNGY0N2NiZTExNDIwYmQ1
Y2VjYzAxNTkwOTRlZDAyNzZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApA
QCAtNzQsNyArNzQsNyBAQCBzdHJ1Y3QgUU5hbWVDb21wb25lbnRzVHJhbnNsYXRvciB7CiAKIHN0
YXRpYyBpbmxpbmUgUU5hbWVTZXQmIHF1YWxpZmllZE5hbWVDYWNoZSgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChRTmFtZVNldCwgbmFtZUNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFFOYW1lU2V0LCBuYW1lQ2FjaGUsICgpKTsKICAgICByZXR1cm4g
bmFtZUNhY2hlOwogfQogCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBRdWFsaWZpZWROYW1lOjpp
bml0KCkKIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgbnVsbFFOYW1lKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIG51bGxOYW1lLCAobnVsbEF0b20sIG51bGxBdG9t
LCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZp
ZWROYW1lLCBudWxsTmFtZSwgKG51bGxBdG9tLCBudWxsQXRvbSwgbnVsbEF0b20pKTsKICAgICBy
ZXR1cm4gbnVsbE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCBmY2U0ZjUwY2IzOWZhMDFlNzI1ODIxNjk2NTczNTk4Yjk0NWRlMWQwLi5iYjVmNDY4ZWUyZWFh
NzE0NGI5ZmY0NTI2OTQwMzQ0ZWM2Zjc1YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIGJvb2wgaXNMZWdhY3lTdXBwb3J0ZWRK
YXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogICAgIC8vIEZJWE1F
OiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBIVE1MNSBjb21wbGlhbnQuIFRoZXNlIGJlbG9uZyBpbiB0
aGUgTUlNRSByZWdpc3RyeSBhcyAidGV4dC9qYXZhc2NyaXB0PHZlcnNpb24+IiBlbnRyaWVzLgog
ICAgIHR5cGVkZWYgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gTGFuZ3VhZ2VTZXQ7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChMYW5ndWFnZVNldCwgbGFuZ3VhZ2VzLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExhbmd1YWdlU2V0LCBsYW5ndWFnZXMs
ICgpKTsKICAgICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBsYW5ndWFnZXMu
YWRkKCJqYXZhc2NyaXB0Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQiKTsK
QEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAgICAgJiYgIW1fY2FjaGVkU2NyaXB0LT5wYXNz
ZXNBY2Nlc3NDb250cm9sQ2hlY2sobV9lbGVtZW50LT5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2lu
KCkpKSB7CiAKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50KCk7Ci0gICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mt
b3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBzY3JpcHQg
bG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIpKSk7
CiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3NhZ2UpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCmlu
ZGV4IGIxMWM3ZDIyNGUyMGExNDk4NDliMzdhMzU5NDExM2FiMTk0NmRlMWYuLmQ5OGJjYTgzMWYz
ZWRmNDY2YzAyNTZiZjcyYWM5NzEyM2FlMzFiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB0eXBlZGVmIEhhc2hNYXA8QXRvbWlj
U3RyaW5nLCBTcGFjZVNwbGl0U3RyaW5nRGF0YSosIERlZmF1bHRIYXNoPEF0b21pY1N0cmluZz46
OgogCiBzdGF0aWMgU3BhY2VTcGxpdFN0cmluZ0RhdGFNYXAmIHNoYXJlZERhdGFNYXAoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3BhY2VTcGxpdFN0cmluZ0RhdGFNYXAsIG1hcCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTcGFjZVNwbGl0U3RyaW5nRGF0
YU1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwCmluZGV4IDQ5YjM5NjU4NmE3YWEyY2VlYWNmOGUzZTRiMWFiOWFiYmExOTJm
MjguLmExZjA2ZmIxYmEyZmMwMDYyNzU1YmZhZjg1MWQ0NWIyMjgzZmNiODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleSYgYSwgY29uc3QgUHJl
c2VudGF0aW8KIAogc3RhdGljIFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlJiBwcmVzZW50YXRp
b25BdHRyaWJ1dGVDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQcmVzZW50YXRp
b25BdHRyaWJ1dGVDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGUsIGNhY2hlLCAoKSk7CiAgICAgcmV0
dXJuIGNhY2hlOwogfQogCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIFBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lciYgcHJlc2VudGF0aW9uQXR0cmlidXRlQ2Fj
aGVDbGVhbmVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJp
YnV0ZUNhY2hlQ2xlYW5lciwgY2xlYW5lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIsIGNsZWFuZXIsICgp
KTsKICAgICByZXR1cm4gY2xlYW5lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggNTAyMTYyMzFkOTZiNDcx
ODEwZGZhMmNkNWRjOTU2NGU0MzZkMTA2Mi4uNzIxZGI3NzVjZTJhZDQ2ZTY1YTc5MjllOWZmMjY4
YThkMGY2ZWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAKIHN0YXRp
YyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0Zv
ckF1dG9jb3JyZWN0aW9uKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24sICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPERvY3VtZW50TWFy
a2VyOjpNYXJrZXJUeXBlPiwgbWFya2VyVHlwZXNGb3JBdXRvQ29ycmVjdGlvbiwgKCkpOwogICAg
IGlmIChtYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLmlzRW1wdHkoKSkgewogICAgICAgICBt
YXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLmFwcGVuZChEb2N1bWVudE1hcmtlcjo6UmVwbGFj
ZW1lbnQpOwogICAgICAgICBtYXJrZXJUeXBlc0ZvckF1dG9Db3JyZWN0aW9uLmFwcGVuZChEb2N1
bWVudE1hcmtlcjo6Q29ycmVjdGlvbkluZGljYXRvcik7CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRp
YyBjb25zdCBWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0Zv
ckF1dG9jb3JyZWN0aW9uKCkKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPiwgbWFya2VyVHlw
ZXNGb3JSZXBsYWNlbWVudCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvclJlcGxh
Y2VtZW50LCAoKSk7CiAgICAgaWYgKG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQuaXNFbXB0eSgp
KSB7CiAgICAgICAgIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQuYXBwZW5kKERvY3VtZW50TWFy
a2VyOjpSZXBsYWNlbWVudCk7CiAgICAgICAgIG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQuYXBw
ZW5kKERvY3VtZW50TWFya2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uKTsKQEAgLTEwNyw3ICsx
MDcsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPiYg
bWFya2VyVHlwZXNGb3JSZXBsYWNlbWVudCgpCiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvckFwcGxpZWREaWN0YXRpb25BbHRl
cm5hdGl2ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8RG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvckFwcGxpZWREaWN0YXRpb25BbHRlcm5hdGl2
ZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8RG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvckFwcGxpZWREaWN0YXRpb25BbHRl
cm5hdGl2ZSwgKCkpOwogICAgIGlmIChtYXJrZXJUeXBlc0ZvckFwcGxpZWREaWN0YXRpb25BbHRl
cm5hdGl2ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1hcmtlclR5cGVzRm9yQXBwbGllZERpY3RhdGlv
bkFsdGVybmF0aXZlLmFwcGVuZChEb2N1bWVudE1hcmtlcjo6U3BlbGxDaGVja2luZ0V4ZW1wdGlv
bik7CiAgICAgcmV0dXJuIG1hcmtlclR5cGVzRm9yQXBwbGllZERpY3RhdGlvbkFsdGVybmF0aXZl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCBh
YWM5MGY3ODdjZDUyYjZmZWU0ODk4MjNiNDI2M2VhNWRlMjA5NjU4Li5iMDhlZTZhM2EzMDdlMDg2
YWE0NTI5NTAzOGFiNjE3ZDQwOWQ2YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcApAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgaW50IHRvSWRlbnRp
ZmllcihQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKIAogc3RhdGljIFN0cmluZyYgc3R5bGVT
cGFuQ2xhc3NTdHJpbmcoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzdHls
ZVNwYW5DbGFzc1N0cmluZywgKChBcHBsZVN0eWxlU3BhbkNsYXNzKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHN0eWxlU3BhbkNsYXNzU3RyaW5nLCAoKEFw
cGxlU3R5bGVTcGFuQ2xhc3MpKSk7CiAgICAgcmV0dXJuIHN0eWxlU3BhbkNsYXNzU3RyaW5nOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXggZjM3OTJhYzlk
YmY2NzBlNWJhZjgxMzhhOGMxNWZjNDRiZmZhODkzMi4uOTJmMjc2NDYxNTM1OWQzZmE1MDhiNDZl
OWI0N2MyYWQ0MTQ0YjBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cApAQCAtNzQwLDcgKzc0MCw3IEBAIGJvb2wgRWRpdGluZ1N0eWxlOjpjb25mbGljdHNXaXRoSW5s
aW5lU3R5bGVPZkVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCwgRWRpCiAKIHN0YXRpYyBj
b25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEhUTUxFbGVtZW50RXF1aXZhbGVudD4+JiBodG1s
RWxlbWVudEVxdWl2YWxlbnRzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8SFRNTEVsZW1lbnRFcXVpdmFsZW50Pj4sIEhUTUxFbGVtZW50RXF1aXZh
bGVudHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+PiwgSFRNTEVsZW1lbnRFcXVpdmFs
ZW50cywgKCkpOwogCiAgICAgaWYgKCFIVE1MRWxlbWVudEVxdWl2YWxlbnRzLnNpemUoKSkgewog
ICAgICAgICBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEhU
TUxFbGVtZW50RXF1aXZhbGVudD4oQ1NTUHJvcGVydHlGb250V2VpZ2h0LCBDU1NWYWx1ZUJvbGQs
IEhUTUxOYW1lczo6YlRhZykpOwpAQCAtNzc5LDcgKzc3OSw3IEBAIGJvb2wgRWRpdGluZ1N0eWxl
Ojpjb25mbGljdHNXaXRoSW1wbGljaXRTdHlsZU9mRWxlbWVudChIVE1MRWxlbWVudCogZWxlbWVu
dCwgRWRpCiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEhUTUxBdHRyaWJ1
dGVFcXVpdmFsZW50Pj4mIGh0bWxBdHRyaWJ1dGVFcXVpdmFsZW50cygpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEhUTUxBdHRyaWJ1dGVFcXVpdmFs
ZW50Pj4sIEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEhUTUxBdHRyaWJ1dGVFcXVp
dmFsZW50Pj4sIEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50cywgKCkpOwogCiAgICAgaWYgKCFIVE1M
QXR0cmlidXRlRXF1aXZhbGVudHMuc2l6ZSgpKSB7CiAgICAgICAgIC8vIGVsZW1lbnRJc1N0eWxl
ZFNwYW5PckhUTUxFcXVpdmFsZW50IGRlcGVuZHMgb24gdGhlIGZhY3QgZWFjaCBIVE1MQXR0cml1
dGVFcXVpdmFsZW50IG1hdGNoZXMgZXhhY3RseSBvbmUgYXR0cmlidXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5jcHAKaW5kZXggZTk0YTRlZTU5MjZiNTEz
YzdiN2NkNDI0MzJkMzQ1OWViNDI0ZGM3ZS4uY2RiZmIyZDE0NzUwZjViNWNkYzJjNjllNmFhYmMz
OTFjYjQ2YmY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Gb3JtYXRCbG9j
a0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEVsZW1lbnQqIEZvcm1hdEJsb2NrQ29tbWFuZDo6
ZWxlbWVudEZvckZvcm1hdEJsb2NrQ29tbWFuZChSYW5nZSogcmFuZ2UpCiAKIGJvb2wgaXNFbGVt
ZW50Rm9yRm9ybWF0QmxvY2soY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGJsb2NrVGFncywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBibG9ja1RhZ3MsICgpKTsKICAgICBpZiAoYmxvY2tUYWdzLmlzRW1wdHkoKSkgewogICAg
ICAgICBibG9ja1RhZ3MuYWRkKGFkZHJlc3NUYWcpOwogICAgICAgICBibG9ja1RhZ3MuYWRkKGFy
dGljbGVUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cAppbmRleCA3MDVlMjQ2NTFlYWZiNDBkNTFiYzdiNjhhZDdiMjI5NjYyNmE3ZjM4Li45ZWU4YWMx
NzBhOWRhMmZiZjc5N2MxNDA1OWNiYTU3MGRlYTQyODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIGJvb2wgTWFy
a3VwQWNjdW11bGF0b3I6OnNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCkKICAgICBpZiAocHJlZml4LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuICFlbGVt
ZW50Lmhhc0F0dHJpYnV0ZSh4bWxuc0F0b20pOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHhtbG5zV2l0aENvbG9uLCAoQVNDSUlMaXRlcmFsKCJ4bWxuczoiKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHhtbG5zV2l0aENvbG9uLCAoQVND
SUlMaXRlcmFsKCJ4bWxuczoiKSkpOwogICAgIHJldHVybiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUo
eG1sbnNXaXRoQ29sb24gKyBwcmVmaXgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAppbmRleCAyMjVkMjZjZjVlMDZhYWY5MWRkMTI4NTVj
YWRmY2YzZjJmNjE3YzgwLi4zOWU3OTA5ZjRkMWY1NTNiMmYzM2U5NWJmN2QxZDg5YTU1MGUwZGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAK
QEAgLTQ1LDcgKzQ1LDcgQEAgUmVtb3ZlRm9ybWF0Q29tbWFuZDo6UmVtb3ZlRm9ybWF0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHN0YXRpYyBib29sIGlzRWxlbWVudEZvclJlbW92ZUZv
cm1hdENvbW1hbmQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGVsZW1lbnRzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGVsZW1lbnRz
LCAoKSk7CiAgICAgaWYgKGVsZW1lbnRzLmlzRW1wdHkoKSkgewogICAgICAgICBlbGVtZW50cy5h
ZGQoYWNyb255bVRhZyk7CiAgICAgICAgIGVsZW1lbnRzLmFkZChiVGFnKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZDNk
Nzg4MmY5NzZhNTQyY2ExNzA3OTFlNDBhMTliMmUxODgzMDcwMS4uYmYyNDE3NWM1M2JmZjkxZjAy
YTZiMTFlMTc0OTNkNzAxYjA2MzNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTEwMSwxNCArMTAxLDE0IEBAIHByaXZh
dGU6CiAKIHN0YXRpYyBib29sIGlzSW50ZXJjaGFuZ2VOZXdsaW5lTm9kZShjb25zdCBOb2RlICpu
b2RlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbnRlcmNoYW5nZU5ld2xp
bmVDbGFzc1N0cmluZywgKEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lQ2xhc3NTdHJp
bmcsIChBcHBsZUludGVyY2hhbmdlTmV3bGluZSkpOwogICAgIHJldHVybiBub2RlICYmIG5vZGUt
Pmhhc1RhZ05hbWUoYnJUYWcpICYmIAogICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBFbGVt
ZW50ICo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSA9PSBpbnRlcmNoYW5nZU5ld2xp
bmVDbGFzc1N0cmluZzsKIH0KIAogc3RhdGljIGJvb2wgaXNJbnRlcmNoYW5nZUNvbnZlcnRlZFNw
YWNlU3Bhbihjb25zdCBOb2RlICpub2RlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBjb252ZXJ0ZWRTcGFjZVNwYW5DbGFzc1N0cmluZywgKEFwcGxlQ29udmVydGVkU3BhY2Up
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb252ZXJ0ZWRT
cGFjZVNwYW5DbGFzc1N0cmluZywgKEFwcGxlQ29udmVydGVkU3BhY2UpKTsKICAgICByZXR1cm4g
bm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIAogICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBI
VE1MRWxlbWVudCAqPihub2RlKS0+Z2V0QXR0cmlidXRlKGNsYXNzQXR0cikgPT0gY29udmVydGVk
U3BhY2VTcGFuQ2xhc3NTdHJpbmc7CiB9CkBAIC01NjMsNyArNTYzLDcgQEAgdm9pZCBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5bGVzQW5kS2VlcFN0eWxlU3Bhbklu
bGluZShJbnNlcnQKIHN0YXRpYyBib29sIGlzUHJvaGliaXRlZFBhcmFncmFwaENoaWxkKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKICAgICAvLyBodHRwczovL2R2Y3MudzMub3JnL2hnL2Vk
aXRpbmcvcmF3LWZpbGUvNTdhYmU2ZDNjYjYwL2VkaXRpbmcuaHRtbCNwcm9oaWJpdGVkLXBhcmFn
cmFwaC1jaGlsZAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+
LCBlbGVtZW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PEF0b21pY1N0cmluZz4sIGVsZW1lbnRzLCAoKSk7CiAgICAgaWYgKGVsZW1lbnRzLmlzRW1w
dHkoKSkgewogICAgICAgICBlbGVtZW50cy5hZGQoYWRkcmVzc1RhZy5sb2NhbE5hbWUoKSk7CiAg
ICAgICAgIGVsZW1lbnRzLmFkZChhcnRpY2xlVGFnLmxvY2FsTmFtZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCAwM2EyM2E3
ZTQ1ODc0OGNkMzk3ZWYwNjMwZGRiNThkZDI3YzMxZDRlLi4wNjg3YzcyYTE0NDMxODg5MGQxMmQx
NzIxMDJmMWYwY2Y3OWRiNDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsv
RnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIG1heWJl
RW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9i
amVjdCkKICAgICAvLyBUaGlzIHN0YXRpYyB2YXJpYWJsZSBpcyBuZWVkZWQgdG8ga2VlcCB0cmFj
ayBvZiB0aGUgb2xkIG9iamVjdAogICAgIC8vIGFzIHBlciBwcmV2aW91cyBjYWxscyB0byB0aGlz
IGZ1bmN0aW9uLCBpbiBvcmRlciB0byBwcm9wZXJseQogICAgIC8vIGRlY2lkZSB3aGV0aGVyIHRv
IGVtaXQgc29tZSBzaWduYWxzIG9yIG5vdC4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xkT2JqZWN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xkT2JqZWN0
LCAoKSk7CiAKICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2JqZWN0ID0gcHJwT2Jq
ZWN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCmluZGV4IGYwZTJiMDNi
Y2JlNmFhM2ZkODRmYTNhYmY4NDIxZTZmNTI2OTBlM2MuLjE3ZmZiY2Q3YWY2ZmRkZTVhM2MzZjkx
Y2M3ZWI1OGNhOWVjNWJlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
CkBAIC0zODUsNyArMzg1LDcgQEAgYm9vbCBpc1RhYmxlU3RydWN0dXJlTm9kZShjb25zdCBOb2Rl
ICpub2RlKQogCiBjb25zdCBTdHJpbmcmIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBub25CcmVha2luZ1NwYWNlU3RyaW5nLCAoJm5v
QnJlYWtTcGFjZSwgMSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcsICgmbm9CcmVha1NwYWNlLCAxKSk7CiAgICAgcmV0
dXJuIG5vbkJyZWFraW5nU3BhY2VTdHJpbmc7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNw
cAppbmRleCBkMDAwZTZiYjk1Y2VhMmY1ODQ2MmU1ZDAzMDU4ZDdhOTg2MGQ0MmNlLi4wM2FlYmEz
MzI1MTM1OGFmZjdjY2FjMGMwNTI2ZDYwMzgzMWQ1OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuY3BwCkBAIC0yMTIsOCArMjEyLDggQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6
YXBwZW5kU3R5bGVOb2RlT3BlblRhZyhTdHJpbmdCdWlsZGVyJiBvdXQsIFN0eWxlUHIKIAogY29u
c3QgU3RyaW5nJiBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6c3R5bGVOb2RlQ2xvc2VUYWcoYm9v
bCBpc0Jsb2NrKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkaXZD
bG9zZSwgKEFTQ0lJTGl0ZXJhbCgiPC9kaXY+IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgc3R5bGVTcGFuQ2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRpdkNs
b3NlLCAoQVNDSUlMaXRlcmFsKCI8L2Rpdj4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlU3BhbkNsb3NlLCAoQVNDSUlMaXRlcmFsKCI8
L3NwYW4+IikpKTsKICAgICByZXR1cm4gaXNCbG9jayA/IGRpdkNsb3NlIDogc3R5bGVTcGFuQ2xv
c2U7CiB9CiAKQEAgLTU1OCw3ICs1NTgsNyBAQCBzdGF0aWMgTm9kZSogaGlnaGVzdEFuY2VzdG9y
VG9XcmFwTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgRUFubm90YXRlRm9ySW50ZXJjaAogc3Rh
dGljIFN0cmluZyBjcmVhdGVNYXJrdXBJbnRlcm5hbChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFJhbmdlJiByYW5nZSwgY29uc3QgUmFuZ2UmIHVwZGF0ZWRSYW5nZSwgVmVjdG9yPE5vZGUqPiog
bm9kZXMsCiAgICAgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUsIGJvb2wg
Y29udmVydEJsb2Nrc1RvSW5saW5lcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJMcykK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW50ZXJjaGFuZ2VOZXds
aW5lU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCI8YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VO
ZXdsaW5lICJcIj4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGludGVyY2hhbmdlTmV3bGluZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiPGJyIGNs
YXNzPVwiIiBBcHBsZUludGVyY2hhbmdlTmV3bGluZSAiXCI+IikpKTsKIAogICAgIGJvb2wgY29s
bGFwc2VkID0gdXBkYXRlZFJhbmdlLmNvbGxhcHNlZChBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICBpZiAoY29sbGFwc2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9i
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKaW5kZXggNjM0MWQxMzYwNWQx
MGEzN2JkMDMyOGFiNjNhZjVjMzYzMWQxMjk1Ni4uMzU2NGZlMjI3YWJkMjRiNGQ1YTU4MGI0MjM3
NTY1NGVhZWIyNzM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IHZvaWQgQmxvYlVSTFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyVVJMKGNvbnN0IFVSTCYgdXJsKQogCiBV
UkxSZWdpc3RyeSYgQmxvYlVSTFJlZ2lzdHJ5OjpyZWdpc3RyeSgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChCbG9iVVJMUmVnaXN0cnksIGluc3RhbmNlLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJsb2JVUkxSZWdpc3RyeSwgaW5zdGFuY2UsICgpKTsKICAg
ICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNzMyZTgz
ZTc0YjA2MDljZDRmODc2OGE0NGFmMTllMDdiYzM4YmNhNS4uYzczZDliMDQ2MWNiNmY3ODg4YjQ4
NzEyZTRlNDYyYTQwN2IwYmUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTYyLDcgKzYy
LDcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9N
QWN0aXZhdGVFdmVudChFdmVudCopCiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5k
LXRpbWUtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgdmFsdWVDb250YWlu
ZXJQc2V1ZG8sICgiLXdlYmtpdC1kYXRlLWFuZC10aW1lLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB2YWx1
ZUNvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkp
OwogICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQc2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKaW5kZXggOWRlNzg1YTdlOWVjY2QzMjQz
ODZhNGEwZjI1OWZkMDhmMzcxYzAzZS4uYjFlODI5ZGZjY2IwYjBiMDI1ZDJjOTU4M2RkZGQwZDdh
MmU0NDZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC02MSw3ICs2
MSw3IEBAIERhdGVDb21wb25lbnRzOjpUeXBlIERhdGVJbnB1dFR5cGU6OmRhdGVUeXBlKCkgY29u
c3QKIAogU3RlcFJhbmdlIERhdGVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFu
ZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKGRhdGVE
ZWZhdWx0U3RlcCwgZGF0ZURlZmF1bHRTdGVwQmFzZSwgZGF0ZVN0ZXBTY2FsZUZhY3RvciwgU3Rl
cFJhbmdlOjpQYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0
ZXBEZXNjcmlwdGlvbiwgKGRhdGVEZWZhdWx0U3RlcCwgZGF0ZURlZmF1bHRTdGVwQmFzZSwgZGF0
ZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpQYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVn
ZXIpKTsKIAogICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVyKGVsZW1l
bnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKICAgICBjb25zdCBEZWNpbWFsIG1p
bmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIp
LCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25lbnRzOjptaW5pbXVtRGF0ZSgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGRjMTBmODkzOTE1
NGIwMDNlMmRiODQwNzBlNWMzYmVmYzBhMjAzMTQuLmIyZWZlODU3ODQ0NmY3ZjkxMWVlOTg5NWEw
NGU5MzNhNGM1Nzc2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUu
Y3BwCkBAIC02Miw3ICs2Miw3IEBAIERlY2ltYWwgRGF0ZVRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAKIFN0ZXBSYW5nZSBEYXRlVGltZUlucHV0VHlwZTo6Y3Jl
YXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwg
c3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRpbWVEZWZhdWx0U3RlcCwgZGF0ZVRpbWVEZWZhdWx0U3Rl
cEJhc2UsIGRhdGVUaW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1
ZVNob3VsZEJlSW50ZWdlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRp
bWVEZWZhdWx0U3RlcCwgZGF0ZVRpbWVEZWZhdWx0U3RlcEJhc2UsIGRhdGVUaW1lU3RlcFNjYWxl
RmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAg
ICAgY29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RH
ZXRBdHRyaWJ1dGUobWluQXR0ciksIDApOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBh
cnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6
OmZyb21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBlYmRhM2Qz
ZjQyZTRlNmZhOGE5NGMwYTcxYzNmODBmNzU0YmZiYWU3Li40YTQzOGYzN2QyZWUzOWUwYmQ4ODU5
NDU1NGI0MjA0ZGJlYWE2OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBEYXRlVGltZUxvY2FsSW5w
dXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b24KIAogU3RlcFJhbmdlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShB
bnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlv
biwgKGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCwgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFz
ZSwgZGF0ZVRpbWVMb2NhbFN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFs
dWVTaG91bGRCZUludGVnZXIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKGRhdGVU
aW1lTG9jYWxEZWZhdWx0U3RlcCwgZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwQmFzZSwgZGF0ZVRp
bWVMb2NhbFN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRC
ZUludGVnZXIpKTsKIAogICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVy
KGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKICAgICBjb25zdCBEZWNp
bWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1p
bkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25lbnRzOjptaW5pbXVtRGF0ZVRp
bWUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCBhNWY2ODI3
YjVlMTkzNTY2YWM2YTIyNGRiZDc0MDViNjMwZjIyODQ0Li5iMDEyMDlhZWZjZjM4NzU4NjU0NzU4
MDNiNDJiMDBmZGU0MDJjMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWls
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNw
cApAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRW1haWxBZGRyZXNzKGNvbnN0
IFN0cmluZyYgYWRkcmVzcykKICAgICBpZiAoIWFkZHJlc3NMZW5ndGgpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgSlNDOjpZYXJyOjpSZWd1
bGFyRXhwcmVzc2lvbiwgcmVnRXhwLCAoZW1haWxQYXR0ZXJuLCBUZXh0Q2FzZUluc2Vuc2l0aXZl
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEpTQzo6WWFycjo6
UmVndWxhckV4cHJlc3Npb24sIHJlZ0V4cCwgKGVtYWlsUGF0dGVybiwgVGV4dENhc2VJbnNlbnNp
dGl2ZSkpOwogCiAgICAgaW50IG1hdGNoTGVuZ3RoOwogICAgIGludCBtYXRjaE9mZnNldCA9IHJl
Z0V4cC5tYXRjaChhZGRyZXNzLCAwLCAmbWF0Y2hMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAKaW5kZXggMTY3Yzg3MWJmMjM5MWZkYTJhYmI4M2IxZjkxOTE0MWViZjhk
YzJkZC4uNzZkNWJlMjhhYjllY2FlMWM5ZWVhZDkwM2I3MzFmZTg4YjNkOGU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC03OSw3ICs3OSw3IEBAIFVwbG9hZEJ1dHRv
bkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgi
LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgcHNldWRvSWQsICgiLXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCmluZGV4IDk3NTJkMzQ3NWU2MGY4MjA5MjU1
MzI2MDMzZjVhZDRhYmJhZWQ3YjYuLjU0Njc4NTgwZGEzZTQzYTg4YjU3YjAxZjAxOTMzYTgzZGIy
MTk5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwCkBAIC0zNDIsNyAr
MzQyLDcgQEAgQXRvbWljU3RyaW5nIEZvcm1LZXlHZW5lcmF0b3I6OmZvcm1LZXkoY29uc3QgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSYgY28KIHsKICAgICBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0gPSBvd25lckZvcm1Gb3JTdGF0ZShjb250cm9sKTsKICAgICBpZiAoIWZvcm0pIHsKLSAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZvcm1LZXlGb3JOb093bmVy
LCAoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmb3JtS2V5
Rm9yTm9Pd25lciwgKCJObyBvd25lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAgICAgcmV0dXJuIGZvcm1LZXlGb3JOb093bmVyOwogICAgIH0KICAgICBGb3Jt
VG9LZXlNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9mb3JtVG9LZXlNYXAuZmluZChmb3JtKTsK
QEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgU3RyaW5nIGZvcm1TdGF0ZVNpZ25hdHVyZSgpCiAg
ICAgLy8gSW4gdGhlIGxlZ2FjeSB2ZXJzaW9uIG9mIHNlcmlhbGl6ZWQgc3RhdGUsIHRoZSBmaXJz
dCBpdGVtIHdhcyBhIG5hbWUKICAgICAvLyBhdHRyaWJ1dGUgdmFsdWUgb2YgYSBmb3JtIGNvbnRy
b2wuIFRoZSBmb2xsb3dpbmcgc3RyaW5nIGxpdGVyYWwgc2hvdWxkCiAgICAgLy8gY29udGFpbiBz
b21lIGNoYXJhY3RlcnMgd2hpY2ggYXJlIHJhcmVseSB1c2VkIGZvciBuYW1lIGF0dHJpYnV0ZSB2
YWx1ZXMuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNpZ25hdHVyZSwgKEFTQ0lJ
TGl0ZXJhbCgiXG5ccj8lIFdlYktpdCBzZXJpYWxpemVkIGZvcm0gc3RhdGUgdmVyc2lvbiA4IFxu
XHI9JiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2ln
bmF0dXJlLCAoQVNDSUlMaXRlcmFsKCJcblxyPyUgV2ViS2l0IHNlcmlhbGl6ZWQgZm9ybSBzdGF0
ZSB2ZXJzaW9uIDggXG5ccj0mIikpKTsKICAgICByZXR1cm4gc2lnbmF0dXJlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDA0MTIyNjc1MWZhOWQ1
NzE3OTRjM2FjMDZlZjllMWE5ZmZkN2RkOWIuLjdjYTczN2EwM2RiODBhYjFhZTcxZDVmMWUwMDk3
OTdjYTgwZWI4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CkBAIC02MTMsNyArNjEzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEhUTUxBbmNob3JFbGVt
ZW50KiwgUmVmUHRyPEVsZW1lbnQ+PiBSb290RWRpdGFibGVFbGVtZW50TWEKIAogc3RhdGljIFJv
b3RFZGl0YWJsZUVsZW1lbnRNYXAmIHJvb3RFZGl0YWJsZUVsZW1lbnRNYXAoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoUm9vdEVkaXRhYmxlRWxlbWVudE1hcCwgbWFwLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJvb3RFZGl0YWJsZUVsZW1lbnRNYXAsIG1h
cCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5jcHAKaW5kZXggYmUxY2U2NmM5MDBjZGRiZTgwOTMzZjk5YzQyZWUzNDU3NDdm
ZGQ2OS4uZjk4MWQzNmY5MGFhZWU4OGQ1NGQxODU2OGFiYjk2YzkyODNkZTFiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKQEAgLTY2LDE1ICs2NiwxNSBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIEhUTUxCdXR0b25FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAogewogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgICAgIGNhc2UgU1VCTUlUOiB7Ci0g
ICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VibWl0
LCAoInN1Ym1pdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHN1Ym1pdCwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgICAgICAgICByZXR1cm4gc3VibWl0OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQlVU
VE9OOiB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgYnV0dG9uLCAoImJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGJ1dHRvbiwgKCJidXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgICAgICAgICByZXR1cm4gYnV0dG9uOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgUkVTRVQ6IHsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCByZXNldCwgKCJyZXNldCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICAgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHJlc2V0LCAoInJlc2V0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgICAgICAgICAgcmV0dXJuIHJlc2V0OwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGM3YmY3
Yzk3NzU0YmE2YjZhYjY1NTBkNGUzYmJkYmY2OGQzZGFjYWUuLmRiZDc3NTU1NDBlYzRjZTZmNTNi
NzAwYWMwMGY2OWQxMTI5NmJiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VtbWFyeVF1ZXJ5U2VsZWN0b3IoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzZWxlY3RvciwgKCJzdW1tYXJ5
OmZpcnN0LW9mLXR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3Is
ICgic3VtbWFyeTpmaXJzdC1vZi10eXBlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBzZWxlY3RvcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IGJjMGY4ZDM4M2RlZWZmODQyMWY3NjkyZTc4
NzFlYjA4ZGMwZGI3YTkuLmQ5NGMwOGUyODQ5YzVjZjViNDcxM2FjNWUyNjE3OWFjNThlNmNlNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMTM1
LDcgKzEzNSw3IEBAIGJvb2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNv
bnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEZpZWxkU2V0RWxlbWVudDo6Zm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgZmllbGRzZXQsICgiZmllbGRzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgZmllbGRzZXQsICgiZmllbGRzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGZpZWxkc2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaAppbmRleCA4NWM4NDgzNGExMjY5YThjMWYxNDBj
NmI0ZDRlNThhMDViYWNlOTgzLi5kZGJmNGRmOWIwMGY1OWY4OTYyOTNkOTkwYmI3NjI4NmJhODdk
Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmgKQEAg
LTkxLDcgKzkxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgSGFzaENvdW50ZWRT
ZXQ8Q29udGFpbmVyTm9kZSo+JiBkaXNhYmxlZFN1YnRyZWVSb290cygpCiAgICAgewotICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hDb3VudGVkU2V0PENvbnRhaW5lck5vZGUqPiwgbm9k
ZXMsICgpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hDb3Vu
dGVkU2V0PENvbnRhaW5lck5vZGUqPiwgbm9kZXMsICgpKTsKICAgICAgICAgcmV0dXJuIG5vZGVz
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRl
eCA0MDFkZTFjOTVhY2JiOTg5NTgxNTFjNzRjYjYxNGI0OGVkZGQwZWI5Li43MTRiZGIyZTFiZDhj
YWIzYThmNWJlMWJjYzcxY2QxNDMyNDdiZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgS2V5Z2Vu
U2VsZWN0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogSFRNTFNlbGVjdEVs
ZW1lbnQoc2VsZWN0VGFnLCBkb2N1bWVudCwgMCkKICAgICB7Ci0gICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWtleWdlbi1zZWxlY3Qi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQt
a2V5Z2VuLXNlbGVjdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBi
b29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29k
ZWRfdmFsdWVzLCBib29sKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxLZXlnZW5FbGVtZW50
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBrZXlnZW4sICgia2V5Z2VuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGtleWdlbiwgKCJrZXlnZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGtleWdlbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDk1Y2ZjZGE0ZDRkN2FlNDQ4Zjg0OTU1YzFmZGE2
OTY1OTg3Y2RhYTUuLmI4NTExNDVmMDhmNzE4MjI4NDVhMzhiNTQxNjAzNmE5ZDM2N2E1NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIExpbmtFdmVudFNlbmRlciYgbGlu
a0xvYWRFdmVudFNlbmRlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChMaW5rRXZlbnRT
ZW5kZXIsIHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGlua0V2ZW50U2VuZGVyLCBzaGFy
ZWRMb2FkRXZlbnRTZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50KSk7CiAgICAgcmV0dXJu
IHNoYXJlZExvYWRFdmVudFNlbmRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggNjFiNmY4YTA3MmVmOGM5OGExYjYzZGJjYWQ0MWQ4NjMwY2NhOWQ1
My4uNzAxYmI3MWNhMmFjNDA2ZmEyNGVjYzEyMDI1OTI5MjMwZGJlZDAyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIHR5cGVkZWYgSGFzaE1hcDxEb2N1bWVudCosIEhhc2hTZXQ8
SFRNTE1lZGlhRWxlbWVudCo+PiBEb2N1bWVudEVsZW1lbnRTZXRNYXA7CiBzdGF0aWMgRG9jdW1l
bnRFbGVtZW50U2V0TWFwJiBkb2N1bWVudFRvRWxlbWVudFNldE1hcCgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChEb2N1bWVudEVsZW1lbnRTZXRNYXAsIG1hcCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChEb2N1bWVudEVsZW1lbnRTZXRNYXAsIG1hcCwgKCkp
OwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKaW5kZXggMGI0MmQ1MjI5NGE1OTFmMmQzZjViY2ZhNDc0NDUwMmJmNGVhMzBmOC4u
NDdkMGQyOTNmZDVjZDI5NDlkNDMyNjFhMmNlOTVlYzg5MGNjMTEyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIEhU
TUxPYmplY3RFbGVtZW50OjpyZW5kZXJGYWxsYmFja0NvbnRlbnQoKQogLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHJlbW92ZWQsIGFsbCBjYWxsZXJzIGFyZSBhbG1vc3QgY2VydGFpbmx5IHdyb25n
Lgogc3RhdGljIGJvb2wgaXNSZWNvZ25pemVkVGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmdJ
bXBsKj4sIHRhZ0xpc3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4sIHRhZ0xpc3QsICgpKTsKICAgICBpZiAodGFnTGlz
dC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSogY29uc3QgKiB0YWdz
ID0gSFRNTE5hbWVzOjpnZXRIVE1MVGFncygpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IEhUTUxOYW1lczo6SFRNTFRhZ3NDb3VudDsgaSsrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCAyOTI3YWRhYzVhOWVmYzI3MTI4OWMyODcx
MTFhMGZhNzMyMzM1MDM5Li44NzQxN2RiYmRiZjhlNmRkMGM3NGIyMjhlMjdiYmM1NTE3NGE1MGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgYm9vbCBIVE1MT3B0R3JvdXBFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9wdEdyb3VwRWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
Zywgb3B0Z3JvdXAsICgib3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgb3B0Z3JvdXAsICgib3B0Z3JvdXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIG9wdGdyb3VwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IGM4YTgwYmIwM2VjNjNhMTY1MTlmMWVkZmIwMmQy
N2I2MmJiNjc3MDguLmNlMzgxYjYwODQzNWFiZGE5M2ZlZmViZmIwMjIzOWQ2NjE5MjJjY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIFBhc3NSZWZQdHI8SFRNTE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE91
dHB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG91dHB1dCwgKCJvdXRwdXQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3V0cHV0LCAoIm91dHB1dCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gb3V0cHV0OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDE2YTkwMWFkNDY2YjA3
NzczZDJhZWUxZDY3OGFjYzJlNDQ2N2M0ODYuLmIzZWM1ZGM4MTFmYjdhOTY1MmNmZDA3NWE4YjY0
YzRhOWRkNjhkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
CkBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0cmFyKGNvbnN0IFJlcGxhY2Vt
ZW50UGx1Z2luJik7CiAKIHN0YXRpYyBWZWN0b3I8UmVwbGFjZW1lbnRQbHVnaW4qPiYgcmVnaXN0
ZXJlZFBsdWdpblJlcGxhY2VtZW50cygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0
b3I8UmVwbGFjZW1lbnRQbHVnaW4qPiwgcmVnaXN0ZXJlZFJlcGxhY2VtZW50cywgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8UmVwbGFjZW1lbnRQbHVnaW4q
PiwgcmVnaXN0ZXJlZFJlcGxhY2VtZW50cywgKCkpOwogICAgIHN0YXRpYyBib29sIGVuZ2luZXNR
dWVyaWVkID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKGVuZ2luZXNRdWVyaWVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggMzFmYjc5Njkx
OGMyM2I5ZjVmZmEyOTRmZGNlNjIxZThmZDg1MTk0Zi4uZDZiMDYxNTUwNzgyZTM5NWVjNmZkY2Ez
ZjBhOGI0MzZiMzg2NTgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBjb25zdCBkb3VibGUgcmVt
b3ZlU25hcHNob3RUaW1lckRlbGF5ID0gMS41OwogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHRpdGxl
VGV4dChQYWdlKiBwYWdlLCBTdHJpbmcgbWltZVR5cGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChNaW1lVHlwZVRvTG9jYWxpemVkU3RyaW5nTWFwLCBtaW1lVHlwZVRvTGFiZWxUaXRsZU1h
cCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNaW1lVHlwZVRvTG9j
YWxpemVkU3RyaW5nTWFwLCBtaW1lVHlwZVRvTGFiZWxUaXRsZU1hcCwgKCkpOwogICAgIFN0cmlu
ZyB0aXRsZVRleHQgPSBtaW1lVHlwZVRvTGFiZWxUaXRsZU1hcC5nZXQobWltZVR5cGUpOwogICAg
IGlmICghdGl0bGVUZXh0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRpdGxlVGV4dDsKQEAg
LTkyLDcgKzkyLDcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyB0aXRsZVRleHQoUGFnZSogcGFnZSwg
U3RyaW5nIG1pbWVUeXBlKQogCiBzdGF0aWMgY29uc3QgU3RyaW5nIHN1YnRpdGxlVGV4dChQYWdl
KiBwYWdlLCBTdHJpbmcgbWltZVR5cGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNaW1l
VHlwZVRvTG9jYWxpemVkU3RyaW5nTWFwLCBtaW1lVHlwZVRvTGFiZWxTdWJ0aXRsZU1hcCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNaW1lVHlwZVRvTG9jYWxpemVk
U3RyaW5nTWFwLCBtaW1lVHlwZVRvTGFiZWxTdWJ0aXRsZU1hcCwgKCkpOwogICAgIFN0cmluZyBz
dWJ0aXRsZVRleHQgPSBtaW1lVHlwZVRvTGFiZWxTdWJ0aXRsZU1hcC5nZXQobWltZVR5cGUpOwog
ICAgIGlmICghc3VidGl0bGVUZXh0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN1YnRpdGxl
VGV4dDsKQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRp
ZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIAogYm9vbCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpwYXJ0T2ZTbmFwc2hvdE92ZXJsYXkoTm9kZSogbm9kZSkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgiLnNuYXBzaG90
LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0b3IsICgiLnNu
YXBzaG90LW92ZXJsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IHNuYXBzaG90TGFiZWwgPSBlbnN1cmVVc2VyQWdlbnRTaGFkb3dS
b290KCkucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAg
cmV0dXJuIG5vZGUgJiYgc25hcHNob3RMYWJlbCAmJiAobm9kZSA9PSBzbmFwc2hvdExhYmVsLmdl
dCgpIHx8IG5vZGUtPmlzRGVzY2VuZGFudE9mKHNuYXBzaG90TGFiZWwuZ2V0KCkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMmM4MTIxN2Y5NjIy
YzE4ZTM4OWQxODNlMWZjMWRkZDc1Y2FmN2IwZi4uZDcyYzc2NDIyMGVlN2Q4NWUxYjE1YjA5MGM2
Yzc2YWVmNjdlZDczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKQEAgLTk2LDggKzk2LDggQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlkUmVjYWxjU3R5
bGUoU3R5bGU6OkNoYW5nZSBzdHlsZUNoYW5nZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1M
U2VsZWN0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2VsZWN0TXVsdGlwbGUsICgic2VsZWN0LW11
bHRpcGxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RPbmUsICgic2VsZWN0LW9u
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RNdWx0aXBsZSwg
KCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
c2VsZWN0T25lLCAoInNlbGVjdC1vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG1fbXVsdGlwbGUgPyBzZWxlY3RNdWx0aXBsZSA6IHNlbGVjdE9u
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggYjBi
NjY3Mjg2Y2IyNWUzZjdhNDU1ZjU2MTViMmU4ZTgzOTI1OTBmNC4uYzU5ZWYxNjg1ZDZiYmM2ZTVj
OTdlYjdjYjFhNzg1MWUyNzcxN2E2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVs
ZW1lbnQuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
IHN0YXRpYyBTdHlsZUV2ZW50U2VuZGVyJiBzdHlsZUxvYWRFdmVudFNlbmRlcigpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUV2ZW50U2VuZGVyLCBzaGFyZWRMb2FkRXZlbnRTZW5k
ZXIsIChldmVudE5hbWVzKCkubG9hZEV2ZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0eWxlRXZlbnRTZW5kZXIsIHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50
TmFtZXMoKS5sb2FkRXZlbnQpKTsKICAgICByZXR1cm4gc2hhcmVkTG9hZEV2ZW50U2VuZGVyOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBk
MGI2ZDA2NDUxNDQ1MzZlNWM5NWI3MzM0N2UyYmQ3MDU0MTdmOWEzLi4wMWVkYTE2ODdmZDJiZWQ1
YzhjMmNhNTU4MjU3MjAxYWIyYjA1ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBIVE1MVGV4dEFyZWFFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0ZXh0
YXJlYSwgKCJ0ZXh0YXJlYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0
ZXh0YXJlYSwgKCJ0ZXh0YXJlYSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gdGV4dGFyZWE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggY2FmOWJkMDg4Y2Y2NzMzZjBm
ZmQ1MzdkM2Y3OWYwMmU4MzZjYTgzYi4uNWVlYTIxZGFlOTdkOTBiZjY1MGI1YWQ2MWMyMGU4NzI4
MjQ2YjNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTM3NSw5ICszNzUsOSBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OmNvbXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdAogCiBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcoVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bm9uZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3J3YXJkLCAoImZvcndh
cmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGJhY2t3YXJkLCAoImJhY2t3YXJkIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3J3YXJkLCAoImZvcndhcmQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dhcmQsICgiYmFja3dhcmQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBzd2l0Y2ggKGRpcmVjdGlv
bikgewogICAgIGNhc2UgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb246CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDgwMzM1OGVmZTA4OThjYmM0YTZjNzQzNDYxNWIzNWRm
ZWQ5NjI1MTguLjAxYmQ0NWEwZGQxNzliYzFlMTMwYTlmNGFlZDJmNTA1MmM3NGE1OWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC02NCw4ICs2NCw4IEBAIGJvb2wg
SW1hZ2VJbnB1dFR5cGU6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RpbmcsIGJv
b2wpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBkb3RYU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCIueCIpKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvdFlTdHJpbmcsIChBU0NJSUxpdGVyYWwoIi55
IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3RYU3Ry
aW5nLCAoQVNDSUlMaXRlcmFsKCIueCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgZG90WVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiLnkiKSkpOwogICAgIGVu
Y29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRvdFhTdHJpbmcsIG1fY2xpY2tMb2NhdGlvbi54KCkp
OwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSArIGRvdFlTdHJpbmcsIG1fY2xpY2tMb2Nh
dGlvbi55KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZU5h
bWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwCmluZGV4IDhl
YWM3MjA1ZDliOWU4MjhjYzE4NGI1NWY1NzQ2MThlNjcwNzI5MDUuLmFjMDg5NmEwNmE0N2UxYTg4
MDhjZDg5ZmRmNmEzYzQzMzYwMDNkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlTmFtZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlTmFt
ZXMuY3BwCkBAIC0zMSwxMzkgKzMxLDEzOSBAQCBuYW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewog
CiBjb25zdCBBdG9taWNTdHJpbmcmIGJ1dHRvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG5hbWUsICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGNoZWNrYm94
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJjaGVj
a2JveCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImNoZWNrYm94Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGNvbG9yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJjb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoImNvbG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGUoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRhdGUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJkYXRlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIGRhdGV0aW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJkYXRldGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuYW1lLCAoImRhdGV0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBuYW1lOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGV0aW1lbG9j
YWwoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRh
dGV0aW1lLWxvY2FsIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0
ZXRpbWUtbG9jYWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZW1haWwoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImVtYWlsIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgZmlsZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgiZmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImZpbGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgaGlkZGVuKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJoaWRkZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgaW1h
Z2UoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImlt
YWdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiaW1hZ2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgbW9udGgoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBuYW1lLCAoIm1vbnRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgibW9udGgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgbnVtYmVyKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJudW1iZXIiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJudW1iZXIiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgcGFzc3dvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoInBhc3N3b3JkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgicGFzc3dvcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgcmFkaW8oKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJhZGlvIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmFkaW8iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgcmFuZ2UoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoInJhbmdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5h
bWUsICgicmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
cmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgcmVzZXQoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInJlc2V0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0
cmluZyYgc2VhcmNoKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJzZWFyY2giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJz
ZWFyY2giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgc3VibWl0KCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJzdWJtaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGVsZXBob25lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJ0ZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ0ZWwi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgidGV4dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoInRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgdGltZSgpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgidGltZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRpbWUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgdXJsKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgbmFtZSwgKCJ1cmwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ1
cmwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5h
bWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgd2VlaygpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgid2VlayIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoIndlZWsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250
cm9sbGVyLmNwcAppbmRleCBlNTQyNjgzNzljM2NkNWJlMWIzOGY5ODM0OTY4Y2QxMDc4MjA3YWRl
Li40MmI4NTgwYzdlOTVjYmM0M2NlZGQwNjI3NzQ1YzNiYTA0ZGNhZjZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCkBAIC0yODksMTkgKzI4OSwxOSBAQCB2b2lkIE1l
ZGlhQ29udHJvbGxlcjo6c2V0TXV0ZWQoYm9vbCBmbGFnKQogCiBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBwbGF5YmFja1N0YXRlV2FpdGluZygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHdhaXRpbmcsICgid2FpdGluZyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCB3YWl0aW5nLCAoIndhaXRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHdhaXRpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHBsYXliYWNrU3RhdGVQbGF5aW5nKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcGxheWluZywgKCJwbGF5aW5nIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHBsYXlpbmcsICgicGxheWluZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcGxheWluZzsKIH0KIAogc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZUVuZGVkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCmluZGV4IDYyZjFhNWIzYmEyNDM5YjZiMWVlYjVkY2FkNzZjNzhkZDBkZDc0OWUu
LjQ3Mjk4NzI3NGQwMDQ0MzIzNDEzYzRjNWMzMjY1NTJiYWVmOTkxYmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC05MCw3ICs5MCw3IEBAIERlY2ltYWwgTW9udGhJ
bnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiAKIFN0ZXBSYW5nZSBNb250
aElucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxp
bmcpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0
ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAobW9udGhEZWZhdWx0U3RlcCwgbW9udGhE
ZWZhdWx0U3RlcEJhc2UsIG1vbnRoU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0
ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAo
bW9udGhEZWZhdWx0U3RlcCwgbW9udGhEZWZhdWx0U3RlcEJhc2UsIG1vbnRoU3RlcFNjYWxlRmFj
dG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAg
Y29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRB
dHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUobW9udGhEZWZhdWx0U3RlcEJh
c2UpKTsKICAgICBjb25zdCBEZWNpbWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQo
KS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21w
b25lbnRzOjptaW5pbXVtTW9udGgoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5
cGUuY3BwCmluZGV4IDg0YjNjY2JkNzNlZWRhMDUxZWQwN2YwYzg4NTYzMzI1ZjRjZGU1YTMuLjRm
ZmUzYjFiZjdkZTk4M2JlYWU5MGFmNTBjNTM1ZTNiNmQ0NjZjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBib29sIE51bWJlcklu
cHV0VHlwZTo6dHlwZU1pc21hdGNoKCkgY29uc3QKIAogU3RlcFJhbmdlIE51bWJlcklucHV0VHlw
ZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlw
dGlvbiwgc3RlcERlc2NyaXB0aW9uLCAobnVtYmVyRGVmYXVsdFN0ZXAsIG51bWJlckRlZmF1bHRT
dGVwQmFzZSwgbnVtYmVyU3RlcFNjYWxlRmFjdG9yKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3Jp
cHRpb24sIChudW1iZXJEZWZhdWx0U3RlcCwgbnVtYmVyRGVmYXVsdFN0ZXBCYXNlLCBudW1iZXJT
dGVwU2NhbGVGYWN0b3IpKTsKICAgICBjb25zdCBEZWNpbWFsIHN0ZXBCYXNlID0gcGFyc2VUb0Rl
Y2ltYWxGb3JOdW1iZXJUeXBlKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBu
dW1iZXJEZWZhdWx0U3RlcEJhc2UpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIG51bWVy
aWNfbGltaXRzPGRvdWJsZT46Om1heCBmb3IgbnVtYmVyIGlucHV0IHR5cGUuCiAgICAgY29uc3Qg
RGVjaW1hbCBmbG9hdE1heCA9IERlY2ltYWw6OmZyb21Eb3VibGUoc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46Om1heCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5k
ZXggODA5NmE4Mzk2YTc2NDY1Zjk3M2E2MGQ4ZGI5OWM2M2QyMDVmMDVlZi4uODY2MTU1NWJiNWNh
NjljY2U4MzgxMDlkZWNkZjhlNmE2ZDkzZTc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBib29sIFJhbmdlSW5wdXRUeXBlOjpzdXBw
b3J0c1JlcXVpcmVkKCkgY29uc3QKIAogU3RlcFJhbmdlIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVT
dGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29uc3QKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVw
RGVzY3JpcHRpb24sIChyYW5nZURlZmF1bHRTdGVwLCByYW5nZURlZmF1bHRTdGVwQmFzZSwgcmFu
Z2VTdGVwU2NhbGVGYWN0b3IpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKHJhbmdl
RGVmYXVsdFN0ZXAsIHJhbmdlRGVmYXVsdFN0ZXBCYXNlLCByYW5nZVN0ZXBTY2FsZUZhY3Rvcikp
OwogCiAgICAgY29uc3QgRGVjaW1hbCBtaW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCku
ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgcmFuZ2VEZWZhdWx0TWluaW11bSk7CiAgICAgY29u
c3QgRGVjaW1hbCBtYXhpbXVtID0gZW5zdXJlTWF4aW11bShwYXJzZVRvTnVtYmVyKGVsZW1lbnQo
KS5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCByYW5nZURlZmF1bHRNYXhpbXVtKSwgbWluaW11
bSwgcmFuZ2VEZWZhdWx0TWF4aW11bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1N0ZXBSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKaW5kZXgg
ZTdlNTQ4NDQ1Y2Y0MTE1OWE0MGVjNTI1OGQ4NTQ4MGI0ZGE3NTVhNi4uYzQ3NzE4YTBjMWYzM2I5
NWUzYmYzYTZiMjM1YjUyY2NjNDc4NDhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9TdGVwUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcApA
QCAtNjUsMTMgKzY1LDEzIEBAIFN0ZXBSYW5nZTo6U3RlcFJhbmdlKGNvbnN0IERlY2ltYWwmIHN0
ZXBCYXNlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXVtLCBjb25zdCBEZWNpCiBEZWNpbWFsIFN0ZXBS
YW5nZTo6YWNjZXB0YWJsZUVycm9yKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHVzZSBEQkxfTUFOVF9ESUcgaW5zdGVhZCBvZiBGTFRfTUFOVF9ESUcgcmVnYXJkaW5nIHRvIEhU
TUw1IHNwZWNpZmljYXRpb24uCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFs
LCB0d29Qb3dlck9mRmxvYXRNYW50aXNzYUJpdHMsIChEZWNpbWFsOjpQb3NpdGl2ZSwgMCwgVUlO
VDY0X0MoMSkgPDwgRkxUX01BTlRfRElHKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZGbG9hdE1hbnRpc3NhQml0cywgKERlY2lt
YWw6OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBGTFRfTUFOVF9ESUcpKTsKICAgICByZXR1
cm4gbV9zdGVwRGVzY3JpcHRpb24uc3RlcFZhbHVlU2hvdWxkQmUgPT0gU3RlcFZhbHVlU2hvdWxk
QmVSZWFsID8gbV9zdGVwIC8gdHdvUG93ZXJPZkZsb2F0TWFudGlzc2FCaXRzIDogRGVjaW1hbCgw
KTsKIH0KIAogRGVjaW1hbCBTdGVwUmFuZ2U6OmFsaWduVmFsdWVGb3JTdGVwKGNvbnN0IERlY2lt
YWwmIGN1cnJlbnRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbmV3VmFsdWUpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFsLCB0ZW5Qb3dlck9mMjEsIChEZWNpbWFs
OjpQb3NpdGl2ZSwgMjEsIDEpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgRGVjaW1hbCwgdGVuUG93ZXJPZjIxLCAoRGVjaW1hbDo6UG9zaXRpdmUsIDIxLCAxKSk7
CiAgICAgaWYgKG5ld1ZhbHVlID49IHRlblBvd2VyT2YyMSkKICAgICAgICAgcmV0dXJuIG5ld1Zh
bHVlOwogCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9vbCBTdGVwUmFuZ2U6OnN0ZXBNaXNtYXRjaChj
b25zdCBEZWNpbWFsJiB2YWx1ZUZvckNoZWNrKSBjb25zdAogICAgIC8vIERlY2ltYWwncyBmcmFj
dGlvbmFsIHBhcnQgc2l6ZSBpcyBEQkxfTUFOX0RJRy1iaXQuIElmIHRoZSBjdXJyZW50IHZhbHVl
CiAgICAgLy8gaXMgZ3JlYXRlciB0aGFuIHN0ZXAqMl5EQkxfTUFOVF9ESUcsIHRoZSBmb2xsb3dp
bmcgY29tcHV0YXRpb24gZm9yCiAgICAgLy8gcmVtYWluZGVyIG1ha2VzIG5vIHNlbnNlLgotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwgdHdvUG93ZXJPZkRvdWJsZU1hbnRp
c3NhQml0cywgKERlY2ltYWw6OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBEQkxfTUFOVF9E
SUcpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwg
dHdvUG93ZXJPZkRvdWJsZU1hbnRpc3NhQml0cywgKERlY2ltYWw6OlBvc2l0aXZlLCAwLCBVSU5U
NjRfQygxKSA8PCBEQkxfTUFOVF9ESUcpKTsKICAgICBpZiAodmFsdWUgLyB0d29Qb3dlck9mRG91
YmxlTWFudGlzc2FCaXRzID4gbV9zdGVwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8g
VGhlIGNvbXB1dGF0aW9uIGZvbGxvd3MgSFRNTDUgNC4xMC43LjIuMTAgYFRoZSBzdGVwIGF0dHJp
YnV0ZScgOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMDhkNmIzMDky
ZjlkMmJkYjJmZjgwMDQ5ZDJkZTUzM2JlMDJlYTFlNS4uYzA5MDQxOTAxNDhjNDYzNDJmYzhlN2Ey
ZTljMWM5ZDE2M2VlODM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBA
IC03Nyw3ICs3Nyw3IEBAIERlY2ltYWwgVGltZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3Rl
cFVwKCkgY29uc3QKIAogU3RlcFJhbmdlIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShB
bnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlv
biwgKHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1bHRTdGVwQmFzZSwgdGltZVN0ZXBTY2FsZUZh
Y3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3Jp
cHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1bHRTdGVw
QmFzZSwgdGltZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91
bGRCZUludGVnZXIpKTsKIAogICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2UgPSBwYXJzZVRvTnVt
YmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKICAgICBjb25zdCBE
ZWNpbWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRl
KG1pbkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25lbnRzOjptaW5pbXVtVGlt
ZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCAxNDllZDEzNzEw
MmRiOTIyMTcyZTJjZWM1MTdlZmNiYzVlMjg4ZGUyLi44NGNhOTg4ZmJhYmI3OGI2OTAyMjdmMTk2
YzM5Nzc3MzJiZmZhNjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAg
LTU2LDcgKzU2LDcgQEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgV2Vla0lucHV0VHlwZTo6ZGF0ZVR5
cGUoKSBjb25zdAogCiBTdGVwUmFuZ2UgV2Vla0lucHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFu
eVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9u
LCAod2Vla0RlZmF1bHRTdGVwLCB3ZWVrRGVmYXVsdFN0ZXBCYXNlLCB3ZWVrU3RlcFNjYWxlRmFj
dG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlw
dGlvbiwgc3RlcERlc2NyaXB0aW9uLCAod2Vla0RlZmF1bHRTdGVwLCB3ZWVrRGVmYXVsdFN0ZXBC
YXNlLCB3ZWVrU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3Vs
ZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9IHBhcnNlVG9OdW1i
ZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIHdlZWtEZWZhdWx0U3RlcEJh
c2UpOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgp
LmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBv
bmVudHM6Om1pbmltdW1XZWVrKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDE2NTVhN2JjYjkwMmZk
N2Y0N2UyMGQyMWVhMWU3MjE0NTRjY2VjZjkuLjU1M2NhM2NmY2ExNGEzN2VmOWEzZDY0Yjk3NjM3
ZWEzMTk3M2Y1ZjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTg1OCw3ICsxODU4LDcgQEAgUGFzc1Jl
ZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6d2Via2l0R2V0SW1hZ2VE
YXRhSEQoZmxvYXQgc3gsIGYKIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmdldEltYWdlRGF0YShJbWFnZUJ1ZmZlcjo6Q29vcmRpbmF0ZVN5c3RlbSBjb29y
ZGluYXRlU3lzdGVtLCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFjYW52YXMoKS0+b3JpZ2luQ2xlYW4o
KSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2Us
IChBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBnZXQgaW1hZ2UgZGF0YSBmcm9tIGNhbnZhcyBiZWNh
dXNlIHRoZSBjYW52YXMgaGFzIGJlZW4gdGFpbnRlZCBieSBjcm9zcy1vcmlnaW4gZGF0YS4iKSkp
OworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xl
TWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVW5hYmxlIHRvIGdldCBpbWFnZSBkYXRhIGZyb20gY2Fu
dmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNyb3NzLW9yaWdpbiBk
YXRhLiIpKSk7CiAgICAgICAgIGNhbnZhcygpLT5kb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25zb2xlTWVz
c2FnZSk7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKaW5kZXggYzg4ZWMy
MzE3MGYzMzBkZjc1NzU4ZmY1YmE2ZmY4Njk4NWJiNTc4OC4uZmYxZjk4NjJjOTU5MDY0NmI1ZjQ2
YmRhMDZmYzM2MDRmYzU3MTBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRva2VuaXplci5jcHAKQEAgLTEwNTAsOSArMTA1MCw5IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
IEVORF9TVEFURSgpCiAKICAgICBIVE1MX0JFR0lOX1NUQVRFKE1hcmt1cERlY2xhcmF0aW9uT3Bl
blN0YXRlKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXNoRGFzaFN0
cmluZywgKEFTQ0lJTGl0ZXJhbCgiLS0iKSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZG9jdHlwZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZG9jdHlwZSIpKSk7Ci0gICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjZGF0YVN0cmluZywgKEFTQ0lJTGl0ZXJh
bCgiW0NEQVRBWyIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGRhc2hEYXNoU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCItLSIpKSk7CisgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvY3R5cGVTdHJpbmcsIChBU0NJ
SUxpdGVyYWwoImRvY3R5cGUiKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBjZGF0YVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiW0NEQVRBWyIpKSk7CiAg
ICAgICAgIGlmIChjYyA9PSAnLScpIHsKICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6TG9v
a0FoZWFkUmVzdWx0IHJlc3VsdCA9IHNvdXJjZS5sb29rQWhlYWQoZGFzaERhc2hTdHJpbmcpOwog
ICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBTZWdtZW50ZWRTdHJpbmc6OkRpZE1hdGNoKSB7CkBA
IC0xMjUzLDggKzEyNTMsOCBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fdG9rZW4t
PnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwdWJsaWNTdHJpbmcsIChBU0NJ
SUxpdGVyYWwoInB1YmxpYyIpKSk7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgc3lzdGVtU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzeXN0ZW0iKSkpOworICAgICAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcHVibGljU3RyaW5nLCAo
QVNDSUlMaXRlcmFsKCJwdWJsaWMiKSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgc3lzdGVtU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzeXN0ZW0i
KSkpOwogICAgICAgICAgICAgaWYgKGNjID09ICdQJyB8fCBjYyA9PSAncCcpIHsKICAgICAgICAg
ICAgICAgICBTZWdtZW50ZWRTdHJpbmc6Okxvb2tBaGVhZFJlc3VsdCByZXN1bHQgPSBzb3VyY2Uu
bG9va0FoZWFkSWdub3JpbmdDYXNlKHB1YmxpY1N0cmluZyk7CiAgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdCA9PSBTZWdtZW50ZWRTdHJpbmc6OkRpZE1hdGNoKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGIzNjM1YjllMjZhZTU3NjM2MTY3YmZmOTNj
YTMyZGY1NGUxMDE4YTQuLjc4NGE0ZDFlZDk2ZDNhZDMzNjA2YmMyN2U2ZjdiMzVkNmYyODBkYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCkBAIC0yNjEsNyAr
MjYxLDcgQEAgdm9pZCBYU1NBdWRpdG9yOjppbml0KERvY3VtZW50KiBkb2N1bWVudCwgWFNTQXVk
aXRvckRlbGVnYXRlKiBhdWRpdG9yRGVsZWdhdGUpCiAKICAgICBTdHJpbmcgaHR0cEJvZHlBc1N0
cmluZzsKICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQt
PmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIFhTU1Byb3RlY3Rpb25IZWFkZXIsIChBU0NJSUxpdGVyYWwoIlgt
WFNTLVByb3RlY3Rpb24iKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBYU1NQcm90ZWN0aW9uSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJYLVhTUy1Qcm90
ZWN0aW9uIikpKTsKICAgICAgICAgU3RyaW5nIGhlYWRlclZhbHVlID0gZG9jdW1lbnRMb2FkZXIt
PnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKFhTU1Byb3RlY3Rpb25IZWFkZXIpOwogICAgICAg
ICBTdHJpbmcgZXJyb3JEZXRhaWxzOwogICAgICAgICB1bnNpZ25lZCBlcnJvclBvc2l0aW9uID0g
MDsKQEAgLTUxMCw3ICs1MTAsNyBAQCBib29sIFhTU0F1ZGl0b3I6OmZpbHRlckJ1dHRvblRva2Vu
KGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVxdWVzdCkKIAogYm9vbCBYU1NBdWRpdG9yOjpl
cmFzZURhbmdlcm91c0F0dHJpYnV0ZXNJZkluamVjdGVkKGNvbnN0IEZpbHRlclRva2VuUmVxdWVz
dCYgcmVxdWVzdCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2FmZUphdmFT
Y3JpcHRVUkwsIChBU0NJSUxpdGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2FmZUphdmFTY3JpcHRVUkwsIChB
U0NJSUxpdGVyYWwoImphdmFzY3JpcHQ6dm9pZCgwKSIpKSk7CiAKICAgICBib29sIGRpZEJsb2Nr
U2NyaXB0ID0gZmFsc2U7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1ZXN0LnRva2Vu
LmF0dHJpYnV0ZXMoKS5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCmluZGV4IGE0OGUyOWY0OThjMWEzMDMz
OTFmOGYxOGU1NDg0NzkzMDkwZjQ2ZWEuLmM3NWNmOWRiMGRhOGNkY2RiMTZiN2EzNjdlMGJlZmM5
Yjk3NjA1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNN
YXJrZXJDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxz
TWFya2VyQ29udHJvbC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBEZXRhaWxzTWFya2VyQ29u
dHJvbDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgRGV0YWlsc01hcmtlckNvbnRyb2w6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCIt
d2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBz
ZXVkSWQsICgiLXdlYmtpdC1kZXRhaWxzLW1hcmtlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRJZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDE3N2Yw
Zjg0MDFlMGRkNDE3MTFjODVmMGNlYzBhOWUxYTliYjg1M2UuLjQ3ODJiZWQxZTg0ZjY1YjE0YjJl
YWFkYmY5Y2UxZTMyOWQ4OTRhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50JgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFu
ZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlk
OwogfQogCkBAIC0yNzAsNyArMjcwLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVu
Y2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDoKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwog
fQogCkBAIC0yODksNyArMjg5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5j
bG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zl
cmxheS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIGlkOwogfQogCkBAIC0zMDksNyArMzA5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5l
ckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1j
b250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0zNzUsNyArMzc1LDcgQEAg
dm9pZCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKQEAgLTQyOSw3ICs0MjksNyBAQCB2b2lkIE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50Ojp1cGRhdGUoKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtc3RhdHVzLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTQ2Miw3ICs0NjIs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250
cm9scy1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNDgzLDcgKzQ4Myw3IEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci1tdXRlLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gaWQ7CiB9CiAKQEAgLTUyMiw3ICs1MjIsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNTYxLDcg
KzU2MSw3IEBAIHZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojp1cGRh
dGVEaXNwbGF5VHlwZSgpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
b3ZlcmxheS1wbGF5LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC01ODMs
NyArNTgzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWwKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtc2Vlay1mb3J3YXJk
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKQEAgLTYwNCw3ICs2MDQsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50Ogog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1zZWVrLWJhY2stYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNjM0LDcgKzYzNCw3IEBAIHZvaWQgTWVkaWFDb250
cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1y
ZXdpbmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApAQCAtNjY1LDcgKzY2NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
ZW50CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1
dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4t
dG8tcmVhbHRpbWUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAo
Ii13ZWJraXQtbWVkaWEtY29udHJvbHMtcmV0dXJuLXRvLXJlYWx0aW1lLWJ1dHRvbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAg
LTcyMiw3ICs3MjIsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMt
YnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC03NDMsNyAr
NzQzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVs
ZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb24KIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xv
c2VkLWNhcHRpb25zLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTgwNiwxNCArODA2LDE0IEBAIHZvaWQgTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldmVuCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY2xvc2VkLWNhcHRpb25zLXRyYWNrLWxpc3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJh
Y2stbGlzdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVt
ZW50Ojp1cGRhdGVEaXNwbGF5KCkKIHsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNlbGVjdGVkQ2xhc3NWYWx1ZSwgKCJzZWxl
Y3RlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzZWxlY3RlZENsYXNzVmFsdWUs
ICgic2VsZWN0ZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAg
ICBpZiAoIW1lZGlhQ29udHJvbGxlcigpLT5oYXNDbG9zZWRDYXB0aW9ucygpKQogICAgICAgICBy
ZXR1cm47CkBAIC05ODgsNyArOTg4LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1l
bnQ6OnNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtMTAxMSw3ICsxMDExLDcgQEAg
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFBhbmVsVm9sdW1lU2xpZGVyRWwKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy12b2x1bWUtc2xpZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwMzQsNyAr
MTAzNCw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxs
c2NyZWVuLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMDc4LDcgKzEwNzgsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3Jl
ZW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTE0LDcgKzExMTQsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxz
Y3JlZW4tdm9sdW1lLW1pbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTQ1LDcgKzExNDUsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9s
dW1lLW1heC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMTYzLDcgKzExNjMsNyBAQCBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0RpcwogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0x
MTg2LDcgKzExODYsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheQogCiBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBnZXRNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50U2hh
ZG93UHNldWRvSWQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3Vy
cmVudC10aW1lLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC0xMjIxLDcgKzEyMjEsNyBAQCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
RWxlbWVudFJlbgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ6OnRleHRUcmFja0NvbnRhaW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCmluZGV4IGRlZGI1MDZi
OWQzZTUzOTQzMjE5ZTA3YmQxY2NmMTBjMDE5OWQ5NzQuLjAzMjM2MmFhMTY1MmNiZWIwYzJjMjdk
YmEzN2IxZWVkZmEwMDgyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHMuY3BwCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzOjpzdG9w
SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xzOjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMiKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scyIpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDU1MTE1MDRm
NGIwM2Y2MGZkNTMzOTEwODQ2NmJiMWQ0Njk4YmJjMjYuLjA5NjYzYzkyN2RkNTU4NzJlMGMzODk0
NzYyNDM4MWI2ZGFiYjlkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIE1ldGVyU2hhZG93
RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiBNZXRl
cklubmVyRWxlbWVudDo6TWV0ZXJJbm5lckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1tZXRl
ci1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiB9CiAKQEAgLTgwLDkgKzgwLDkgQEAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXIKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZXRlclZhbHVlRWxlbWVudDo6
dmFsdWVQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG9wdGltdW1Qc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHN1Ym9wdGltdW1Qc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLXN1
Ym9wdGltdW0tdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGV2ZW5MZXNzR29vZFBzZXVkb0lk
LCAoIi13ZWJraXQtbWV0ZXItZXZlbi1sZXNzLWdvb2QtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3B0aW11bVBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItb3B0aW11bS12
YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzdWJvcHRpbXVtUHNldWRvSWQs
ICgiLXdlYmtpdC1tZXRlci1zdWJvcHRpbXVtLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGV2ZW5MZXNzR29vZFBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXItZXZlbi1sZXNz
LWdvb2QtdmFsdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAg
ICBIVE1MTWV0ZXJFbGVtZW50KiBtZXRlciA9IG1ldGVyRWxlbWVudCgpOwogICAgIGlmICghbWV0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5o
CmluZGV4IGEzY2YxNjJkOTE1NmJjYjJkOTNjMWU0OGMyOTE3OTE0MDU4MWJkYTQuLmQxYjBlNzhk
MTUxMTlkYmYyZWM2NGJhZWI1MjVkMDRiNzhiM2VlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZh
dGU6CiAgICAgTWV0ZXJCYXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBN
ZXRlclNoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1iYXIiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtbWV0ZXIt
YmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBzZXRQ
c2V1ZG8ocHNldWRvSWQpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCBiZmJiNGQ5MmI5MjJkMGEyMjlmODJm
OWIxZmM2ZTgwZmY2ZjAwM2I4Li4xOTc5MzI1ZWNiYWI3MmVhMzhhNzM3MDU0YTIyNzRjODcxY2Jj
MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKQEAgLTU2NCwxMyArNTY0LDEzIEBAIEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRo
dW1iRWxlbWVudDo6aG9zdElucHV0KCkgY29uc3QKIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1i
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13
ZWJraXQtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJUaHVtYiwgKCItd2Via2l0LW1l
ZGlhLXNsaWRlci10aHVtYiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBt
ZWRpYVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1i
OwogfQogCkBAIC02MjAsOCArNjIwLDggQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFIKIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1l
ZGlhU2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtc2xpZGVy
LWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNs
aWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQt
c2xpZGVyLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
IAogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hhZG93SG9zdCgpLT50b0lucHV0RWxl
bWVudCgpOwogICAgIGlmICghaW5wdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggYzI5M2I1YjgyNjdkYjYwYWE3NWM4NDcyM2Y2
OWMwMTk0YjEyMWIwMS4uYjcyZjMxOTU2MTIyMDQxZWQ3MWQ4YjIzZTQwNGFlNjlkMzRlNWFmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNw
cApAQCAtNjEsNyArNjEsNyBAQCBQYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgU3BpbgogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIFNwaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdl
YmtpdC1pbm5lci1zcGluLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
bm5lclBzZXVkb0lkLCAoIi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlubmVyUHNldWRvSWQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwCmluZGV4IDE5YjViYzg2ODg1NzI5ZTBmZjA3ODY4ZTI2OTU1NjU5NWYwNDY2
MDQuLjQ4MGVjMzg3NzYyY2YzNmIwYjc1OWY4MzAwMzcxMTEyOGRlOThkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcApAQCAtMTQyLDkgKzE0Miw5IEBAIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0
dG9uRWxlbWVudD4gU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6Y3JlCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBy
ZXN1bHRzSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHJlc3VsdHNEZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNv
cmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFy
Y2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzSWQs
ICgiLXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgcmVzdWx0c0RlY29yYXRpb25JZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRl
Y29yYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZGVjb3JhdGlvbklkLCAo
Ii13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgRWxlbWVudCogaG9zdCA9IHNoYWRvd0hvc3QoKTsKICAgICBpZiAoIWhv
c3QpCiAgICAgICAgIHJldHVybiByZXN1bHRzSWQ7CkBAIC0yMDIsNyArMjAyLDcgQEAgUGFzc1Jl
ZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IFNlYXJjaEZpZWxkQ2FuY2VsQnV0
dG9uRWxlbWVudDo6Y3JlYXQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1zZWFyY2gtY2FuY2Vs
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Vi
a2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApAQCAtNDYxLDcgKzQ2MSw3IEBAIHZv
aWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnN0b3BTcGVlY2hJbnB1dCgpCiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1pbnB1dC1zcGVlY2gtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtaW5wdXQtc3BlZWNoLWJ1dHRvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcHNldWRv
SWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVF
bWJlZFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudC5jcHAKaW5kZXggZGEzZmFiNTY5OThhYzQ1MGFmZDQ2Nzg2MGU5
YmUwYTkwM2I5YmZmOC4uNTFiMjcyOWFmMzI2YzM1NWU5YjZkNTU5NDEzMDhlNDMyMzUxY2YzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVk
U2hhZG93RWxlbWVudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6cGx1Z2luRWxlbWVudCgpIGNvbnN0CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1
ZG9JZCwgKCItYXBwbGUteW91dHViZS1zaGFkb3ctaWZyYW1lIikpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi1hcHBsZS15b3V0
dWJlLXNoYWRvdy1pZnJhbWUiKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCBjODA3OTY1MTkxZWMwZmFmOWFm
N2RlZmI2NGM0N2E2OTQ2ODllMTNhLi40ZjJkZDg0YjQ5ODc3ODQ3MDMzZWE1Y2FlMThlYjAyMGRk
MTgzYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTQz
LDM3ICs0MywzNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
QXVkaW9UcmFjazo6YWx0ZXJuYXRpdmVLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRp
dmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGFs
dGVybmF0aXZlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmRlc2NyaXB0
aW9uS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGRlc2NyaXB0aW9uLCAoImRlc2NyaXB0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGRlc2NyaXB0aW9uLCAoImRlc2NyaXB0aW9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluS2V5d29yZCgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1haW4sICgibWFpbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtYWluLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG1haW47CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgQXVkaW9UcmFjazo6bWFpbkRlc2NLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWFpbkRlc2MsICgibWFpbi1kZXNjIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1haW5EZXNjLCAoIm1haW4tZGVz
YyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbWFp
bkRlc2M7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6dHJhbnNsYXRpb25L
ZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
dHJhbnNsYXRpb24sICgidHJhbnNsYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgdHJhbnNsYXRpb24sICgidHJhbnNsYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHRyYW5zbGF0aW9uOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY29tbWVudGFyeSwgKCJjb21tZW50
YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNvbW1lbnRhcnksICgi
Y29tbWVudGFyeSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gY29tbWVudGFyeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwCmluZGV4IDNhMzg3ODYxOWMwYzdjMTE3ZjAzZDM2YWM2NTJkNjY3ODY3NDhmMTUuLjU0YWVi
ZTY1OWQ4NDA5M2RhZjg3ODRlNDYwODcwYzBlNjQ5YzhkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTQ4LDU1ICs0OCw1NSBAQCBzdGF0aWMgY29uc3QgaW50
IGludmFsaWRUcmFja0luZGV4ID0gLTE7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
OjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc3VidGl0bGVzLCAoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpjYXB0aW9uc0tleXdvcmQoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJjYXB0aW9ucyIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJjYXB0aW9u
cyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2Fw
dGlvbnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkZXNjcmlwdGlvbnNL
ZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
ZGVzY3JpcHRpb25zLCAoImRlc2NyaXB0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBkZXNjcmlwdGlvbnMsICgiZGVzY3JpcHRpb25zIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBkZXNjcmlwdGlvbnM7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpjaGFwdGVyc0tleXdvcmQoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjaGFwdGVycywgKCJjaGFwdGVy
cyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjaGFwdGVycywgKCJjaGFw
dGVycyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
Y2hhcHRlcnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjptZXRhZGF0YUtl
eXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBt
ZXRhZGF0YSwgKCJtZXRhZGF0YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBtZXRhZGF0YSwgKCJtZXRhZGF0YSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAgICAgCiBjb25zdCBBdG9taWNTdHJpbmcm
IFRleHRUcmFjazo6Zm9yY2VkS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGZvcmNlZCwgKCJmb3JjZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgZm9yY2VkLCAoImZvcmNlZCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZm9yY2VkOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIFRleHRUcmFjazo6ZGlzYWJsZWRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3BlbiwgKCJkaXNhYmxlZCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoImRpc2FibGVkIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBvcGVuOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFRleHRUcmFjazo6aGlkZGVuS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJoaWRkZW4iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2xvc2VkLCAoImhpZGRlbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2xvc2VkOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFjazo6c2hvd2luZ0tleXdvcmQoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJzaG93aW5nIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVuZGVkLCAoInNob3dpbmciLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGVuZGVkOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA4NTNmYmMx
NjBiM2QyNDMxZjc1NGRkN2U3YTljOTMwMTM1NTBjNjk4Li4wMzM5NzBmZDlhNDliMWJiNzIwNjlj
NmJjNWNjZDAwNGM4ZDI3YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgY3VlU2hhZG93UHNldWRvSWQoKQogICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGN1ZSwgKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBjdWU7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja1JlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja1JlZ2lvbi5jcHAKaW5kZXggZDIzNzBhYzI1
NmNmZGNkZTJjNmI1MTY0NDY4NDFmOTlmZjQ3Y2RmOS4uMmMzY2Y3ODg2NzQ0NGVkNThhZTQzNTE3
OGRjOTFiZGZmOGYwNDI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrUmVnaW9uLmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgVGV4dFRyYWNrUmVnaW9uOjpz
ZXRWaWV3cG9ydEFuY2hvclkoZG91YmxlIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIAogY29u
c3QgQXRvbWljU3RyaW5nIFRleHRUcmFja1JlZ2lvbjo6c2Nyb2xsKCkgY29uc3QKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdXBTY3JvbGxWYWx1ZUtleXdv
cmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdXBTY3JvbGxW
YWx1ZUtleXdvcmQsICgidXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAKICAgICBpZiAobV9zY3JvbGwpCiAgICAgICAgIHJldHVybiB1cFNjcm9sbFZhbHVlS2V5d29y
ZDsKQEAgLTE3Niw3ICsxNzYsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcgVGV4dFRyYWNrUmVnaW9u
OjpzY3JvbGwoKSBjb25zdAogCiB2b2lkIFRleHRUcmFja1JlZ2lvbjo6c2V0U2Nyb2xsKGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB1cFNjcm9sbFZhbHVlS2V5
d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAg
IGlmICh2YWx1ZSAhPSBlbXB0eVN0cmluZygpICYmIHZhbHVlICE9IHVwU2Nyb2xsVmFsdWVLZXl3
b3JkKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTIxNSwxMiArMjE1LDEyIEBAIHZv
aWQgVGV4dFRyYWNrUmVnaW9uOjpzZXRSZWdpb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmIGlucHV0
KQogCiBUZXh0VHJhY2tSZWdpb246OlJlZ2lvblNldHRpbmcgVGV4dFRyYWNrUmVnaW9uOjpnZXRT
ZXR0aW5nRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHNldHRpbmcpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGlkS2V5d29yZCwgKCJpZCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgaGVpZ2h0S2V5d29yZCwgKCJoZWlnaHQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHdpZHRoS2V5d29yZCwgKCJ3aWR0aCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgcmVnaW9uQW5jaG9yS2V5d29yZCwgKCJyZWdpb25hbmNob3IiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHZpZXdwb3J0QW5jaG9yS2V5d29yZCwgKCJ2aWV3cG9ydGFuY2hvciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2Nyb2xsS2V5d29yZCwgKCJzY3JvbGwiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaWRLZXl3b3JkLCAoImlkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlaWdodEtleXdvcmQsICgiaGVpZ2h0IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHdpZHRoS2V5d29yZCwgKCJ3aWR0aCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCByZWdpb25BbmNob3JLZXl3b3Jk
LCAoInJlZ2lvbmFuY2hvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB2
aWV3cG9ydEFuY2hvcktleXdvcmQsICgidmlld3BvcnRhbmNob3IiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc2Nyb2xsS2V5d29yZCwgKCJzY3JvbGwiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBpZiAoc2V0dGluZyA9PSBpZEtleXdv
cmQpCiAgICAgICAgIHJldHVybiBJZDsKQEAgLTI0MCw3ICsyNDAsNyBAQCBUZXh0VHJhY2tSZWdp
b246OlJlZ2lvblNldHRpbmcgVGV4dFRyYWNrUmVnaW9uOjpnZXRTZXR0aW5nRnJvbVN0cmluZyhj
b25zdCBTdHJpbgogCiB2b2lkIFRleHRUcmFja1JlZ2lvbjo6cGFyc2VTZXR0aW5nVmFsdWUoUmVn
aW9uU2V0dGluZyBzZXR0aW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzY3JvbGxVcFZhbHVlS2V5d29yZCwgKCJ1
cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzY3JvbGxVcFZhbHVlS2V5
d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAg
IGJvb2wgaXNWYWxpZFNldHRpbmc7CiAgICAgU3RyaW5nIG51bWJlckFzU3RyaW5nOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCmluZGV4IDM0MTZmYTYyNGI5MzdiMWFhMmZkZDVlMzRk
ZjlhMGMwYTA3OGJiMzguLjk3ZTcyODM5Zjg4NzBlYTdkZmQyY2FhNDJiMDhjOWU5YjZkNzM1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTU3LDE5ICs1NywxOSBAQCBz
dGF0aWMgY29uc3QgaW50IHVuZGVmaW5lZFBvc2l0aW9uID0gLTE7CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcmIHN0YXJ0S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHN0YXJ0LCAoQVNDSUlMaXRlcmFsKCJzdGFydCIpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhcnQsIChBU0NJSUxpdGVyYWwoInN0
YXJ0IikpKTsKICAgICByZXR1cm4gc3RhcnQ7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIG1p
ZGRsZUtleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
aWRkbGUsIChBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWlkZGxlLCAoQVNDSUlMaXRlcmFsKCJtaWRkbGUi
KSkpOwogICAgIHJldHVybiBtaWRkbGU7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIGVuZEtl
eXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlbmQsIChB
U0NJSUxpdGVyYWwoImVuZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgZW5kLCAoQVNDSUlMaXRlcmFsKCJlbmQiKSkpOwogICAgIHJldHVybiBl
bmQ7CiB9CiAKQEAgLTgwLDEzICs4MCwxMyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nJiBob3Jpem9u
dGFsS2V5d29yZCgpCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHZlcnRpY2FsR3Jvd2luZ0xlZnRL
ZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGlj
YWxybCwgKEFTQ0lJTGl0ZXJhbCgicmwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FscmwsIChBU0NJSUxpdGVyYWwoInJsIikpKTsK
ICAgICByZXR1cm4gdmVydGljYWxybDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdmVydGlj
YWxHcm93aW5nUmlnaHRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgdmVydGljYWxsciwgKEFTQ0lJTGl0ZXJhbCgibHIiKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FsbHIsIChBU0NJSUxp
dGVyYWwoImxyIikpKTsKICAgICByZXR1cm4gdmVydGljYWxscjsKIH0KIApAQCAtMTcwLDcgKzE3
MCw3IEBAIHZvaWQgVlRUQ3VlQm94OjphcHBseUNTU1Byb3BlcnRpZXMoY29uc3QgSW50U2l6ZSYp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVlRUQ3VlQm94Ojp2dHRDdWVCb3hTaGFkb3dQc2V1ZG9J
ZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNr
RGlzcGxheUJveFNoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNw
bGF5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNrRGlzcGxheUJv
eFNoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0cmFja0Rpc3Bs
YXlCb3hTaGFkb3dQc2V1ZG9JZDsKIH0KIApAQCAtNTA2LDcgKzUwNiw3IEBAIHN0YXRpYyBib29s
IGlzQ3VlUGFyYWdyYXBoU2VwYXJhdG9yKFVDaGFyIGNoYXJhY3RlcikKIAogdm9pZCBWVFRDdWU6
OmRldGVybWluZVRleHREaXJlY3Rpb24oKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBydFRhZywgKEFTQ0lJTGl0ZXJhbCgicnQiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJ0VGFnLCAoQVNDSUlMaXRlcmFsKCJy
dCIpKSk7CiAgICAgY3JlYXRlV2ViVlRUTm9kZVRyZWUoKTsKICAgICBpZiAoIW1fd2ViVlRUTm9k
ZVRyZWUpCiAgICAgICAgIHJldHVybjsKQEAgLTYzOSw3ICs2MzksNyBAQCB2b2lkIFZUVEN1ZTo6
Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIAogdm9pZCBWVFRDdWU6Om1hcmtGdXR1
cmVBbmRQYXN0Tm9kZXMoQ29udGFpbmVyTm9kZSogcm9vdCwgZG91YmxlIHByZXZpb3VzVGltZXN0
YW1wLCBkb3VibGUgbW92aWVUaW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFn
LCAoQVNDSUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSkpOwogICAgIAogICAgIGJvb2wgaXNQYXN0Tm9k
ZSA9IHRydWU7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBwcmV2aW91c1RpbWVzdGFt
cDsKQEAgLTc3NywxMyArNzc3LDEzIEBAIHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4gVlRUQ3Vl
OjpnZXRQb3NpdGlvbkNvb3JkaW5hdGVzKCkgY29uc3QKIAogVlRUQ3VlOjpDdWVTZXR0aW5nIFZU
VEN1ZTo6c2V0dGluZ05hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbEtleXdvcmQsIChBU0NJSUxpdGVyYWwoInZl
cnRpY2FsIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGluZUtl
eXdvcmQsIChBU0NJSUxpdGVyYWwoImxpbmUiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBwb3NpdGlvbktleXdvcmQsIChBU0NJSUxpdGVyYWwoInBvc2l0aW9uIikp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2l6ZUtleXdvcmQsIChB
U0NJSUxpdGVyYWwoInNpemUiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBhbGlnbktleXdvcmQsIChBU0NJSUxpdGVyYWwoImFsaWduIikpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbEtleXdvcmQsIChB
U0NJSUxpdGVyYWwoInZlcnRpY2FsIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBsaW5lS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgibGluZSIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9zaXRp
b25LZXl3b3JkLCAoQVNDSUlMaXRlcmFsKCJwb3NpdGlvbiIpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2l6ZUtleXdvcmQsIChBU0NJSUxpdGVy
YWwoInNpemUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGFsaWduS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgiYWxpZ24iKSkpOwogI2lmIEVOQUJM
RShXRUJWVFRfUkVHSU9OUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cmVnaW9uSWRLZXl3b3JkLCAoQVNDSUlMaXRlcmFsKCJyZWdpb24iKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJlZ2lvbklkS2V5d29yZCwgKEFT
Q0lJTGl0ZXJhbCgicmVnaW9uIikpKTsKICNlbmRpZgogCiAgICAgaWYgKG5hbWUgPT0gdmVydGlj
YWxLZXl3b3JkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1Ry
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXgg
MDU4MjVlODZlZDA3ODQxNWJjOWFkYTFjZWRhMzE0Mzg2ZTBmYmNmZS4uNTk5NzgyMzRmYzc2YTk0
MzRlMjFiNzk2NWNkN2VhZTdhNDA0NDUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suY3BwCkBAIC00NywzNyArNDcsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFsdGVybmF0aXZlLCAo
ImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFsdGVy
bmF0aXZlLCAoImFsdGVybmF0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBhbHRlcm5hdGl2ZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBW
aWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJjYXB0aW9ucyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJjYXB0aW9ucyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6bWFpbktleXdvcmQoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYXB0aW9ucywgKCJtYWluIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoIm1haW4iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGNhcHRpb25zOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OnNpZ25LZXl3b3JkKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2lnbiwgKCJzaWduIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNpZ24sICgic2lnbiIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc2lnbjsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoInN1
YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMs
ICgic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBzdWJ0aXRsZXM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6
Y29tbWVudGFyeUtleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgY29tbWVudGFyeSwgKCJjb21tZW50YXJ5IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcAppbmRleCA2YTc2ZDYw
NzhiZmZlYjY3NjJiMDFhMzhkNTlmYjRhZWM3OGJhYjBhLi5mNjY2ZDA1OGQ5NGViNjFhMWYwOTU3
NTUyZjc1ODdhM2MzOTAwYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
RWxlbWVudC5jcHAKQEAgLTM2LDE0ICszNiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBub2RlVHlwZVRvVGFnTmFtZShXZWJWVFROb2RlVHlw
ZSBub2RlVHlwZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGNU
YWcsIChudWxsQXRvbSwgImMiLCBudWxsQXRvbSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgdlRhZywgKG51bGxBdG9tLCAidiIsIG51bGxBdG9tKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBsYW5nVGFnLCAobnVsbEF0b20sICJsYW5n
IiwgbnVsbEF0b20pKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGJU
YWcsIChudWxsQXRvbSwgImIiLCBudWxsQXRvbSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgdVRhZywgKG51bGxBdG9tLCAidSIsIG51bGxBdG9tKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBpVGFnLCAobnVsbEF0b20sICJpIiwgbnVs
bEF0b20pKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHJ1YnlUYWcs
IChudWxsQXRvbSwgInJ1YnkiLCBudWxsQXRvbSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgcnRUYWcsIChudWxsQXRvbSwgInJ0IiwgbnVsbEF0b20pKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgY1RhZywgKG51bGxB
dG9tLCAiYyIsIG51bGxBdG9tKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFF1YWxpZmllZE5hbWUsIHZUYWcsIChudWxsQXRvbSwgInYiLCBudWxsQXRvbSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBsYW5nVGFnLCAobnVs
bEF0b20sICJsYW5nIiwgbnVsbEF0b20pKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUXVhbGlmaWVkTmFtZSwgYlRhZywgKG51bGxBdG9tLCAiYiIsIG51bGxBdG9tKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHVUYWcsIChu
dWxsQXRvbSwgInUiLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChRdWFsaWZpZWROYW1lLCBpVGFnLCAobnVsbEF0b20sICJpIiwgbnVsbEF0b20pKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgcnVieVRhZywg
KG51bGxBdG9tLCAicnVieSIsIG51bGxBdG9tKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHJ0VGFnLCAobnVsbEF0b20sICJydCIsIG51bGxBdG9t
KSk7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgV2ViVlRUTm9kZVR5cGVDbGFz
czoKICAgICAgICAgcmV0dXJuIGNUYWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
RWxlbWVudC5oCmluZGV4IGY0OTQxMmMyNmNkY2ZmODgzMTA2NDBmOGViYzI1MDQxMGMwNDVmYTku
LjlhYWE2ZTRhZDUyMzQ4NWFiZDAwOGM5MWRhZGJiNzY3NzhiNzgwZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCkBAIC01OSwxMyArNTksMTMgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIHZvaWNlQXR0cmlidXRlTmFtZSgp
CiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZvaWNl
QXR0ciwgKG51bGxBdG9tLCAidm9pY2UiLCBudWxsQXRvbSkpOworICAgICAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20s
ICJ2b2ljZSIsIG51bGxBdG9tKSk7CiAgICAgICAgIHJldHVybiB2b2ljZUF0dHI7CiAgICAgfQog
ICAgIAogICAgIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBsYW5nQXR0cmlidXRlTmFtZSgp
CiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZvaWNl
QXR0ciwgKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKSk7CisgICAgICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB2b2ljZUF0dHIsIChudWxsQXRvbSwg
ImxhbmciLCBudWxsQXRvbSkpOwogICAgICAgICByZXR1cm4gdm9pY2VBdHRyOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IDJiZTY3MTNi
MjcxYWZkNzU1MGIzYzgwZmEyODkzOWJiOTA4NTFhZGMuLmEzMGIyZTk1OWQ2M2RlZDA5MGViZWM4
N2Y4YTEyNGNjZGE4OTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBh
cnNlci5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCBib29sIFdlYlZUVFBhcnNlcjo6aGFzUmVxdWly
ZWRGaWxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGxpbmUpCiB2b2lkIFdlYlZUVFBhcnNlcjo6
Y29sbGVjdEhlYWRlcihjb25zdCBTdHJpbmcmIGxpbmUpCiB7CiAgICAgLy8gNC4xIEV4dGVuc2lv
biBvZiBXZWJWVFQgaGVhZGVyIHBhcnNpbmcgKDExIC0gMTUpCi0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHJlZ2lvbkhlYWRlck5hbWUsICgiUmVnaW9uIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHJlZ2lvbkhlYWRlck5hbWUsICgiUmVn
aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgLy8gMTUu
NCBJZiBsaW5lIGNvbnRhaW5zIHRoZSBjaGFyYWN0ZXIgIjoiIChBIFUrMDAzQSBDT0xPTiksIHRo
ZW4gc2V0IG1ldGFkYXRhJ3MKICAgICAvLyBuYW1lIHRvIHRoZSBzdWJzdHJpbmcgb2YgbGluZSBi
ZWZvcmUgdGhlIGZpcnN0ICI6IiBjaGFyYWN0ZXIgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA1ZTE2NGU0NWMxMDYyZGJkODBkZTEw
NDgyNGFlYjQ0MDU2MjJlMDM4Li40YTgwMzJhNDgxOGZjMWQ5ZjQyYmNiNTU1ODgzZTU3ODFjODI2
MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKQEAgLTc4LDEwICs3OCwxMCBAQCBlbnVtIEZvcmNlUHNldWRvQ2xhc3NGbGFncyB7CiAKIHN0
YXRpYyB1bnNpZ25lZCBjb21wdXRlUHNldWRvQ2xhc3NNYXNrKEluc3BlY3RvckFycmF5KiBwc2V1
ZG9DbGFzc0FycmF5KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhY3RpdmUs
IChBU0NJSUxpdGVyYWwoImFjdGl2ZSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGhvdmVyLCAoQVNDSUlMaXRlcmFsKCJob3ZlciIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGZvY3VzLCAoQVNDSUlMaXRlcmFsKCJmb2N1cyIpKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIHZpc2l0ZWQsIChBU0NJSUxpdGVyYWwoInZpc2l0ZWQiKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFjdGl2ZSwgKEFT
Q0lJTGl0ZXJhbCgiYWN0aXZlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBob3ZlciwgKEFTQ0lJTGl0ZXJhbCgiaG92ZXIiKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZvY3VzLCAoQVNDSUlMaXRlcmFsKCJmb2N1
cyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmlzaXRl
ZCwgKEFTQ0lJTGl0ZXJhbCgidmlzaXRlZCIpKSk7CiAgICAgaWYgKCFwc2V1ZG9DbGFzc0FycmF5
IHx8ICFwc2V1ZG9DbGFzc0FycmF5LT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIFBzZXVkb05v
bmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwCmluZGV4IDRmMzc2MGMyZmVkM2UwMzk5NjEwNjc3NzA3ZTU5MDdhZmU3NzRi
NzYuLjdmZDYyOTFjOTEwN2YzOGViNDEzYTYxOTFhNzY3NzBiNTczY2UyMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApA
QCAtMzI5LDEwICszMjksMTAgQEAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBpZGJLZXlGcm9t
SW5zcGVjdG9yT2JqZWN0KEluc3BlY3Rvck9iamVjdCoga2V5KQogICAgIGlmICgha2V5LT5nZXRT
dHJpbmcoInR5cGUiLCAmdHlwZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG51bWJlciwgKEFTQ0lJTGl0ZXJhbCgibnVtYmVyIikp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3RyaW5nLCAoQVNDSUlMaXRlcmFs
KCJzdHJpbmciKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkYXRlLCAoQVND
SUlMaXRlcmFsKCJkYXRlIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYXJy
YXksIChBU0NJSUxpdGVyYWwoImFycmF5IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBudW1iZXIsIChBU0NJSUxpdGVyYWwoIm51bWJlciIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJzdHJpbmciKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGRhdGUsIChBU0NJSUxpdGVyYWwoImRhdGUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGFycmF5LCAoQVNDSUlMaXRlcmFsKCJhcnJheSIpKSk7CiAK
ICAgICBpZiAodHlwZSA9PSBudW1iZXIpIHsKICAgICAgICAgZG91YmxlIG51bWJlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggMjI4
NTUyZTRlYjZhMGJiMDg4ZWNhNTgyNmZmYjQ2ZjBjMmVjZGJjNy4uYTUzZWRkZjAzMmEyNThhNGYw
OGEzNDAwY2ZjOGZkODhjODI2YTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTI0OCw4ICsyNDgsOCBAQCB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJh
bWUqIGZyYW1lLAogLy9zdGF0aWMKIFN0cmluZyBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNvdXJjZU1h
cFVSTEZvclJlc291cmNlKENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlciwgKEFTQ0lJTGl0
ZXJhbCgiU291cmNlTWFwIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291
cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFwIikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBI
VFRQSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJTb3VyY2VNYXAiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVk
LCAoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1hcCIpKSk7CiAKICAgICBpZiAoIWNhY2hlZFJlc291
cmNlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggNDg2NzBjZDFkZjc4NGYyODkwM2Ex
YzdiYjZjNzE0ZGU5ZGZkMTdhZi4uZDAyZTY3ZTdhOTg0MjAzN2NlMGFmYmI2ZDA5YTgxN2NkODE5
YjlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcApAQCAtMzQ3LDcgKzM0Nyw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q1NTOjpDU1NDb21wdXRlCiBib29s
IEluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0
cmluZyYgcHJvcGVydHlUZXh0LCBib29sIG92ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQobV9wYXJlbnRTdHlsZVNoZWV0KTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYm9ndXNQcm9wZXJ0eU5hbWUsIChBU0NJSUxpdGVy
YWwoIi13ZWJraXQtYm9ndXotcHJvcGVydGVlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBib2d1c1Byb3BlcnR5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiLXdl
YmtpdC1ib2d1ei1wcm9wZXJ0ZWUiKSkpOwogCiAgICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQt
PmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpKSB7CiAgICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsK
QEAgLTY4NCw3ICs2ODQsNyBAQCBWZWN0b3I8U3RyaW5nPiBJbnNwZWN0b3JTdHlsZTo6bG9uZ2hh
bmRQcm9wZXJ0aWVzKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydAogCiBOZXdMaW5lQW5k
V2hpdGVzcGFjZSYgSW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVy
cygpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRQcmVm
aXgsIChBU0NJSUxpdGVyYWwoIiAgICAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGRlZmF1bHRQcmVmaXgsIChBU0NJSUxpdGVyYWwoIiAgICAiKSkpOwog
CiAgICAgaWYgKG1fZm9ybWF0QWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBtX2Zvcm1hdDsKQEAg
LTk5Myw3ICs5OTMsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNTUzo6
Q1NTU3R5bGVTaGVldEhlYWRlcj4gSW5zcGVjdG9yU3R5bGVTaGVldAogCiBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+PiBzZWxlY3RvcnNGcm9t
U291cmNlKGNvbnN0IENTU1J1bGVTb3VyY2VEYXRhKiBzb3VyY2VEYXRhLCBjb25zdCBTdHJpbmcm
IHNoZWV0VGV4dCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTQzo6WWFycjo6UmVndWxh
ckV4cHJlc3Npb24sIGNvbW1lbnQsICgiL1xcKlteXSo/XFwqLyIsIFRleHRDYXNlU2Vuc2l0aXZl
LCBKU0M6OllhcnI6Ok11bHRpbGluZUVuYWJsZWQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgY29tbWVudCwgKCIvXFwq
W15dKj9cXCovIiwgVGV4dENhc2VTZW5zaXRpdmUsIEpTQzo6WWFycjo6TXVsdGlsaW5lRW5hYmxl
ZCkpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+PiBy
ZXN1bHQgPSBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+OjpjcmVhdGUoKTsK
ICAgICBjb25zdCBTZWxlY3RvclJhbmdlTGlzdCYgcmFuZ2VzID0gc291cmNlRGF0YS0+c2VsZWN0
b3JSYW5nZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSByYW5nZXMuc2l6ZSgpOyBp
IDwgc2l6ZTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCBiNTM2MjI2MDhlZDE4ZGNlNjVhNmFiYjNhZmM5OWQwZGY2MmVjNzFi
Li45MmRjZGIxMGI5MDRhNWEzY2UwZWQ2Zjk3Nzg1ZDkxMzc1NmFmOTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTcxLDggKzcxLDgg
QEAgdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6ZGlzYWJsZShib29sIGlzQmVpbmdEZXN0cm95ZWQp
CiAKIFN0cmluZyBQYWdlRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0
IFNjcmlwdCYgc2NyaXB0KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3Vy
Y2VNYXBIVFRQSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJTb3VyY2VNYXAiKSkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCwgKEFT
Q0lJTGl0ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJj
ZU1hcCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291
cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFwIikp
KTsKIAogICAgIGlmICghc2NyaXB0LnVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gbV9wYWdlQWdlbnQtPmNhY2hlZFJlc291cmNlKG1fcGFnZUFnZW50
LT5tYWluRnJhbWUoKSwgVVJMKFBhcnNlZFVSTFN0cmluZywgc2NyaXB0LnVybCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggMDU5YTEyMDk3NzRjZGRjODAy
NDVlYmMzODUxYWI4NjEyYWQ5MWVmZC4uOTYwYjQyYTllYTI4YmVhOWU3MmFhYmI2MTA4MGU2ODAx
OWQyNjI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC02
MDQsNyArNjA0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICBpZiAod2lsbExvYWRG
YWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHhGcmFtZU9wdGlvbkhlYWRlciwgKCJ4LWZyYW1lLW9wdGlvbnMiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgeEZyYW1lT3B0aW9uSGVhZGVyLCAoIngtZnJhbWUtb3B0
aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGF1dG8g
aXQgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuZmluZCh4RnJhbWVPcHRpb25IZWFkZXIp
OwogICAgIGlmIChpdCAhPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuZW5kKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IGU0OGQ0N2JhOGRiOWZkZDRjMWE1
ZTg0NWQ5NjcyYWI1ODRhZDZmMzUuLjgzNDk2M2M2NTNkMDY4YmQ4MjhjNjQ5MDVlZjRlZjMwYWUx
M2I5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtNjQsMTkgKzY0
LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEltYWdlRXZlbnRTZW5kZXImIGJl
Zm9yZUxvYWRFdmVudFNlbmRlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZUV2
ZW50U2VuZGVyLCBzZW5kZXIsIChldmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdlRXZlbnRTZW5kZXIsIHNlbmRlciwg
KGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpKTsKICAgICByZXR1cm4gc2VuZGVyOwogfQog
CiBzdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgbG9hZEV2ZW50U2VuZGVyKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEltYWdlRXZlbnRTZW5kZXIsIHNlbmRlciwgKGV2ZW50TmFtZXMoKS5s
b2FkRXZlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VFdmVu
dFNlbmRlciwgc2VuZGVyLCAoZXZlbnROYW1lcygpLmxvYWRFdmVudCkpOwogICAgIHJldHVybiBz
ZW5kZXI7CiB9CiAKIHN0YXRpYyBJbWFnZUV2ZW50U2VuZGVyJiBlcnJvckV2ZW50U2VuZGVyKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdlRXZlbnRTZW5kZXIsIHNlbmRlciwgKGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEltYWdlRXZlbnRTZW5kZXIsIHNlbmRlciwgKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KSk7
CiAgICAgcmV0dXJuIHNlbmRlcjsKIH0KIApAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgSW1hZ2VM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAgICAg
bV9oYXNQZW5kaW5nRXJyb3JFdmVudCA9IHRydWU7CiAgICAgICAgIGVycm9yRXZlbnRTZW5kZXIo
KS5kaXNwYXRjaEV2ZW50U29vbih0aGlzKTsKIAotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBpbWFn
ZSBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikp
KTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiBpbWFnZSBsb2FkIGRlbmllZCBi
eSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKICAgICAgICAgZWxl
bWVudCgpLmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJp
dHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKIAogICAgICAgICBBU1NF
UlQoIW1faGFzUGVuZGluZ0xvYWRFdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwCmluZGV4IGQ1ZWMwM2U2NTAwYTRhOGFlZjc5YWQxNjk5NTc5ODI3OGRkMjQw
NjIuLjRmY2Q1MjQ2ZjZlMzk4MTExZTNmNjNlNzIzMDY2ZmM5Mjk4ZDZkZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9p
ZCBUZXh0VHJhY2tMb2FkZXI6OmRlcHJlY2F0ZWREaWRSZWNlaXZlQ2FjaGVkUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmMKIAogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmNvcnNQb2xpY3lQ
cmV2ZW50ZWRMb2FkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0IHRyYWNrIGxvYWQgZGVu
aWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVND
SUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gdGV4dCB0cmFjayBsb2FkIGRlbmllZCBieSBDcm9zcy1P
cmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIikpKTsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgZG9jdW1lbnQt
PmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBjb25zb2xlTWVzc2FnZSk7CiAgICAgbV9zdGF0ZSA9IEZhaWxlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwCmluZGV4IDVmMzAwOTY1MTU0MmIwNzhkNjBlMGJlMGU2ZGM5M2IyYTllYWU5N2Qu
LjZhNDc0ZGRjMTNiMmM3OGRhYzk1YmNiZDY5NDA1MGEzNzllYjg5YWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmNwcApAQCAtMTU5OSw3ICsxNTk5LDcgQEAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OkFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkKIAogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIGNhY2hl
U3RvcmFnZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZSwgc3RvcmFnZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZSwgc3RvcmFnZSwgKCkpOwogICAgIAogICAgIHJldHVybiBz
dG9yYWdlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJj
aGl2ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZUZh
Y3RvcnkuY3BwCmluZGV4IGFkYmQ1ZGE0NDZhOWY2NDQ5OWMwOGZhNjExNjQwZGJiNGQxNjY5MmEu
LmVkZmVmNTFiMGE3Zjc5YTFhMGJhNGUxZmFmMGVlMzAzYmNjNTEyYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVGYWN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlRmFjdG9yeS5jcHAKQEAgLTU3LDcgKzU3
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEFyY2hpdmVDbGFzcz4gc3RhdGljIFBhc3NSZWZQdHI8
QXJjaGl2ZT4gYXJjaGl2ZUZhY3RvcnlDcmVhdGUKIAogc3RhdGljIEFyY2hpdmVNSU1FVHlwZXNN
YXAmIGFyY2hpdmVNSU1FVHlwZXMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXJjaGl2
ZU1JTUVUeXBlc01hcCwgbWltZVR5cGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEFyY2hpdmVNSU1FVHlwZXNNYXAsIG1pbWVUeXBlcywgKCkpOwogICAgIHN0YXRp
YyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoaW5pdGlhbGl6ZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRleCBiOTJhOTc1ZDMz
NGU5NmYzNjJjODBiZDU4NGI4ZTljYWU1MWIyZjYzLi42NzUxOWI0YTU4NTkzNTc3ZDAxYWY3MDI0
MWMyOTc5NGFmZTgyNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5jcHAKQEAgLTE3NSwxMSArMTc1LDExIEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmFsbENsaWVu
dHNSZW1vdmVkKCkKIHN0ZDo6cGFpcjxJbWFnZSosIGZsb2F0PiBDYWNoZWRJbWFnZTo6YnJva2Vu
SW1hZ2UoZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpIGNvbnN0CiB7CiAgICAgaWYgKGRldmljZVNj
YWxlRmFjdG9yID49IDIpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZSosIGJy
b2tlbkltYWdlSGlSZXMsIChJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoIm1pc3NpbmdJbWFn
ZUAyeCIpLmxlYWtSZWYoKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSW1hZ2UqLCBicm9rZW5JbWFnZUhpUmVzLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNl
KCJtaXNzaW5nSW1hZ2VAMngiKS5sZWFrUmVmKCkpKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKGJyb2tlbkltYWdlSGlSZXMsIDIpOwogICAgIH0KIAotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSW1hZ2UqLCBicm9rZW5JbWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291
cmNlKCJtaXNzaW5nSW1hZ2UiKS5sZWFrUmVmKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSW1hZ2UqLCBicm9rZW5JbWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQbGF0Zm9y
bVJlc291cmNlKCJtaXNzaW5nSW1hZ2UiKS5sZWFrUmVmKCkpKTsKICAgICByZXR1cm4gc3RkOjpt
YWtlX3BhaXIoYnJva2VuSW1hZ2VMb1JlcywgMSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IGM0NjVkMmYxMWRhOTU5
NmExYTA4MTM5MWJmYjk2NGY4YzEzODlhZGUuLjZmNTM5ZDI2NDQwOWMwNzE5Y2YyZWQ0NTc2ZWVm
ZmNjZDIwNWJiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgQ2FjaGVkUmF3UmVzb3Vy
Y2U6OnNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVy
aW5nCiBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVIZWFkZXJGb3JDYWNoZVJldXNlKEF0b21pY1N0
cmluZyBoZWFkZXJOYW1lKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGxpc3Qgb2YgaGVhZGVycyB0
aGF0IGRvbid0IGFmZmVjdCBjYWNoZSBwb2xpY3kgYWxtb3N0IGNlcnRhaW5seSBpc24ndCBjb21w
bGV0ZS4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8QXRvbWljU3RyaW5nPiwgbV9o
ZWFkZXJzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
QXRvbWljU3RyaW5nPiwgbV9oZWFkZXJzLCAoKSk7CiAgICAgaWYgKG1faGVhZGVycy5pc0VtcHR5
KCkpIHsKICAgICAgICAgbV9oZWFkZXJzLmFkZCgiQWNjZXB0Iik7CiAgICAgICAgIG1faGVhZGVy
cy5hZGQoIkNhY2hlLUNvbnRyb2wiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggNTVhNDkzODU5ZWYyMjMxOTYw
NzY0ZGIxNzA2OGNjMTgyNDFiMGY2Yy4uZTg5ZjJmZTBiNjY1ZjA1OTBmY2Q3NmMyMDc2ZTQxMzZm
NmRlMDJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAogICAgIGlmICgh
bV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFt
ZTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwg
KCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkZWZhdWx0TmFtZSwg
KCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gZGVmYXVsdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwCmluZGV4IDNjZmQ3ZjQ5NTQ1NWMzZWIzOWI4MzI1YzI0MGZiZWVkNTRiNGEz
MjYuLmE5YTA1NTM2NGQ1MzFlZjJmMDQ4ZTRlMmYyYzliY2NmMzJkODUzYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtMjQyLDcgKzI0Miw3IEBA
IHVuc2lnbmVkIE1lbW9yeUNhY2hlOjpsaXZlQ2FwYWNpdHkoKSBjb25zdAogLy8gcmVtb3ZlIHRo
ZSB1c2FnZSBvZiBDRlJldGFpbigpIGluIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoKSBz
byBhcyB0byBtYWtlIHRoZSBjb2RlIHBsYXRmb3JtLWluZGVwZW5kZW50Lgogc3RhdGljIENhY2hl
ZEltYWdlQ2xpZW50JiBkdW1teUNhY2hlZEltYWdlQ2xpZW50KCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKENhY2hlZEltYWdlQ2xpZW50LCBjbGllbnQsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQ2FjaGVkSW1hZ2VDbGllbnQsIGNsaWVudCwgKCkpOwogICAg
IHJldHVybiBjbGllbnQ7CiB9CiAKQEAgLTczMSw3ICs3MzEsNyBAQCB2b2lkIE1lbW9yeUNhY2hl
OjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB2b2lk
IE1lbW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmln
aW5zKQogewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGh0dHBTdHJpbmcsICgiaHR0cCIpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYK
ICAgICBmb3IgKGF1dG8mIHJlc291cmNlcyA6IG1fc2Vzc2lvblJlc291cmNlcykgewogICAgICAg
ICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IHJlc291cmNlcy52YWx1ZS0+ZW5kKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCAzOTI3
MmU0ZDY1ZmY2ZjZlNjk0NjRkZTZkY2E2OTJlNjNiNWRmNGQ1Li5iZDNkODU5ZTFmZWUxYmUzN2Vj
NDgzOWNjMjk0MGYwMDE2ZTdlMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHAKQEAgLTg5Miw3ICs4OTIsNyBAQCBTdHJpbmcgSWNvbkRhdGFiYXNlOjpk
YXRhYmFzZVBhdGgoKSBjb25zdAogCiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJh
c2VGaWxlbmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRE
YXRhYmFzZUZpbGVuYW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJwYWdlSWNvbnMuZGIiKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHREYXRhYmFzZUZp
bGVuYW1lLCAoQVNDSUlMaXRlcmFsKCJXZWJwYWdlSWNvbnMuZGIiKSkpOwogICAgIHJldHVybiBk
ZWZhdWx0RGF0YWJhc2VGaWxlbmFtZS5pc29sYXRlZENvcHkoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggYWRiNTcwZWE3YTZk
ODRmOThmOTI5Y2U0Nzc1NGIzZTZmOTg3YjBhOC4uZTQwZGYzMWEwODZlYmIzYzdjZTg3MGM1MmMz
NzdmYjAyNjI5MDAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpzZXRDYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZShjb25zdCBTdHJpbmcmIG92ZXJyaWQK
IHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dXBkYXRlQ2FwdGlvblN0eWxlU2hlZXRPdmVy
aWRlKCkKIHsKICAgICAvLyBJZGVudGlmeSBvdXIgb3ZlcnJpZGUgc3R5bGUgc2hlZXQgd2l0aCBh
IHVuaXF1ZSBVUkwgLSBhIG5ldyBzY2hlbWUgYW5kIGEgVVVJRC4KLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFVSTCwgY2FwdGlvbnNTdHlsZVNoZWV0VVJMLCAoUGFyc2VkVVJMU3RyaW5nLCAidXNl
ci1jYXB0aW9ucy1vdmVycmlkZTowMUY2QUYxMi1DM0IwLTRGNzAtQUY1RS1BM0UwMDIzNERDMjMi
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwgY2FwdGlvbnNTdHls
ZVNoZWV0VVJMLCAoUGFyc2VkVVJMU3RyaW5nLCAidXNlci1jYXB0aW9ucy1vdmVycmlkZTowMUY2
QUYxMi1DM0IwLTRGNzAtQUY1RS1BM0UwMDIzNERDMjMiKSk7CiAKICAgICBtX3BhZ2VHcm91cC5y
ZW1vdmVVc2VyU3R5bGVTaGVldEZyb21Xb3JsZChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgY2Fw
dGlvbnNTdHlsZVNoZWV0VVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCAwNDIwY2UxZDNmMDAwNDYxODgw
NTBjNmM5NWM5YzA3YTExYzFkNDY3Li4xNmYxMTQ3N2IyNDE2YzRmNzFjZmEwMDFjZWMyNmY4M2Qz
NjlmNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtMjc2LDcgKzI3Niw3IEBAIFN0cmluZyBDYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRjo6Y2FwdGlvbnNCYWNrZ3JvdW5kQ1NTKCkgY29uc3QKIHsKICAg
ICAvLyBUaGlzIGRlZmF1bHQgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgb25lIHNwZWNp
ZmllZCBpbiBtZWRpYUNvbnRyb2xzLmNzcyBmb3IgLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBh
c3Qtbm9kZXMKICAgICAvLyBhbmQgd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVz
LgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3Is
IChDb2xvcigwLCAwLCAwLCAwLjggKiAyNTUpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKENvbG9yLCBkZWZhdWx0QmFja2dyb3VuZENvbG9yLCAoQ29sb3IoMCwgMCwgMCwg
MC44ICogMjU1KSkpOwogCiAgICAgTUFDYXB0aW9uQXBwZWFyYW5jZUJlaGF2aW9yIGJlaGF2aW9y
OwogCkBAIC0zNzksMTAgKzM3OSwxMCBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmNvbG9yUHJvcGVydHlDU1MoQ1NTUHJvcGVydHlJRCBpZCwgY29uc3QgQwogCiBTdHJp
bmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmNhcHRpb25zVGV4dEVkZ2VDU1MoKSBj
b25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVS
YWlzZWQsICgiIC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZURlcHJl
c3NlZCwgKCIgLjA1ZW0gLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZURyb3BTaGFk
b3csICgiIC4wNzVlbSAuMDc1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZVVuaWZvcm0s
ICgiIC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdlU3R5bGVSYWlzZWQsICgi
IC0uMDVlbSAtLjA1ZW0gMCAiLCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlRGVw
cmVzc2VkLCAoIiAuMDVlbSAuMDVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlZGdl
U3R5bGVEcm9wU2hhZG93LCAoIiAuMDc1ZW0gLjA3NWVtIDAgIiwgU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIGVkZ2VTdHlsZVVuaWZvcm0sICgiIC4wM2VtICIsIFN0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKIAogICAgIGJvb2wgdW51c2VkOwogICAgIENvbG9yIGNvbG9yID0gY2FwdGlv
bnNUZXh0Q29sb3IodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcAppbmRleCA2ODViYTU4NDJjNGY2YjZiM2RiZTFjMDYxYWEzYjI1OTNiOTg3
OGFlLi40ZGQxMjQ1Mzk1ZGUzZjk2ODVmMjYxOTQ3OTdiNDdhODcwZjcyYjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0xMDYxLDcgKzEw
NjEsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0
aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqIGRpcmVjdAogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6
OmFsbG93SmF2YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6
Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9y
dGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4
ZWN1dGUgSmF2YVNjcmlwdCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgi
UmVmdXNlZCB0byBleGVjdXRlIEphdmFTY3JpcHQgVVJMIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhl
IGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAg
aWYgKHJlcG9ydGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQp
IHsKICAgICAgICAgcmV0dXJuIChjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRp
dmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUsIHRydWUpCiAgICAgICAgICAgICAgICAgJiYgY2hlY2tOb25jZUFuZFJl
cG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLmdldCgpLCBTdHJpbmcoKSwgY29uc29sZU1lc3Nh
Z2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CkBAIC0xMDczLDcgKzEwNzMsNyBAQCBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6OgogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5l
RXZlbnRIYW5kbGVycyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5h
bE51bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3Rh
dHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBp
bmxpbmUgZXZlbnQgaGFuZGxlciBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsK
ICAgICBpZiAocmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJl
cG9ydCkgewogICAgICAgICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9w
ZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250
ZXh0VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkKICAgICAgICAgICAgICAgICAmJiBjaGVja05vbmNl
QW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIFN0cmluZygpLCBjb25zb2xl
TWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpKTsKQEAgLTEwODUsNyArMTA4NSw3IEBA
IGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCwgY29uc3QKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lu
bGluZVNjcmlwdChjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51
bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVz
IHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxp
bmUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8g
ZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBD
b250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgcmV0dXJuIHJlcG9y
dGluZ1N0YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAg
ICBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3Jp
cHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHRy
dWUpIDoKICAgICAgICAgY2hlY2tJbmxpbmUob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3Jj
LmdldCgpKSk7CkBAIC0xMDkzLDcgKzEwOTMsNyBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFs
bG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcgog
CiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBj
b250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlM
aXRlcmFsKCJSZWZ1c2VkIHRvIGFwcGx5IGlubGluZSBzdHlsZSBiZWNhdXNlIGl0IHZpb2xhdGVz
IHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGFwcGx5IGlubGluZSBzdHlsZSBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZl
OiAiKSkpOwogICAgIHJldHVybiByZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpTZW5kUmVwb3J0ID8KICAgICAgICAgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24o
b3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29u
dGV4dFVSTCwgY29udGV4dExpbmUsIGZhbHNlKSA6CiAgICAgICAgIGNoZWNrSW5saW5lKG9wZXJh
dGl2ZURpcmVjdGl2ZShtX3N0eWxlU3JjLmdldCgpKSk7CkBAIC0xMTAxLDcgKzExMDEsNyBAQCBi
b29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZAogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZh
bChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5n
U3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXZhbHVh
dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8g
ZXZhbHVhdGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50
IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0
YXR1cyA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAgICBjaGVj
a0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdl
dCgpKSwgY29uc29sZU1lc3NhZ2UsIFN0cmluZygpLCBXVEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9y
ZUZpcnN0KCksIHN0YXRlKSA6CiAgICAgICAgIGNoZWNrRXZhbChvcGVyYXRpdmVEaXJlY3RpdmUo
bV9zY3JpcHRTcmMuZ2V0KCkpKTsKQEAgLTExMDksNyArMTEwOSw3IEBAIGJvb2wgQ1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dFdmFsKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpSCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3Jk
aW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgi
UmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dp
bmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRl
cmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZv
bGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgaWYg
KHVybC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0
aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIG5vbmNlLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUpOwogICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9u
KG1fc2NyaXB0Tm9uY2UuZ2V0KCksIG5vbmNlLCAiUmVmdXNlZCB0byBsb2FkICciICsgdXJsLnN0
cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVjYXVzZSBpdCB2aW9sYXRlcyB0
aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIiwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpOwpAQCAtMTc3MSwxMiArMTc3MSwxMiBAQCB2b2lkIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4
dCwgY29uc3QgUwogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VW5zdXBwb3J0
ZWREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBhbGxvdywgKEFTQ0lJTGl0ZXJhbCgiYWxsb3ciKSkpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcHRpb25zLCAoQVNDSUlMaXRlcmFsKCJvcHRpb25z
IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcG9saWN5VVJJLCAoQVNDSUlM
aXRlcmFsKCJwb2xpY3ktdXJpIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
YWxsb3dNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJUaGUgJ2FsbG93JyBkaXJlY3RpdmUgaGFzIGJl
ZW4gcmVwbGFjZWQgd2l0aCAnZGVmYXVsdC1zcmMnLiBQbGVhc2UgdXNlIHRoYXQgZGlyZWN0aXZl
IGluc3RlYWQsIGFzICdhbGxvdycgaGFzIG5vIGVmZmVjdC4iKSkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBvcHRpb25zTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdvcHRp
b25zJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAndW5zYWZlLWlubGluZScgYW5k
ICd1bnNhZmUtZXZhbCcgc291cmNlIGV4cHJlc3Npb25zIGZvciB0aGUgJ3NjcmlwdC1zcmMnIGFu
ZCAnc3R5bGUtc3JjJyBkaXJlY3RpdmVzLiBQbGVhc2UgdXNlIHRob3NlIGRpcmVjdGl2ZXMgaW5z
dGVhZCwgYXMgJ29wdGlvbnMnIGhhcyBubyBlZmZlY3QuIikpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgcG9saWN5VVJJTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdwb2xp
Y3ktdXJpJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9u
LiBQbGVhc2Ugc3BlY2lmeSBhIGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENvbnRlbnQtU2VjdXJp
dHktUG9saWN5IGhlYWRlci4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGFsbG93LCAoQVNDSUlMaXRlcmFsKCJhbGxvdyIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW9ucywgKEFTQ0lJTGl0ZXJhbCgib3B0
aW9ucyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcG9s
aWN5VVJJLCAoQVNDSUlMaXRlcmFsKCJwb2xpY3ktdXJpIikpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxvd01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRo
ZSAnYWxsb3cnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICdkZWZhdWx0LXNyYycu
IFBsZWFzZSB1c2UgdGhhdCBkaXJlY3RpdmUgaW5zdGVhZCwgYXMgJ2FsbG93JyBoYXMgbm8gZWZm
ZWN0LiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0
aW9uc01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnb3B0aW9ucycgZGlyZWN0aXZlIGhhcyBi
ZWVuIHJlcGxhY2VkIHdpdGggJ3Vuc2FmZS1pbmxpbmUnIGFuZCAndW5zYWZlLWV2YWwnIHNvdXJj
ZSBleHByZXNzaW9ucyBmb3IgdGhlICdzY3JpcHQtc3JjJyBhbmQgJ3N0eWxlLXNyYycgZGlyZWN0
aXZlcy4gUGxlYXNlIHVzZSB0aG9zZSBkaXJlY3RpdmVzIGluc3RlYWQsIGFzICdvcHRpb25zJyBo
YXMgbm8gZWZmZWN0LiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgcG9saWN5VVJJTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdwb2xpY3ktdXJpJyBk
aXJlY3RpdmUgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uLiBQbGVhc2Ug
c3BlY2lmeSBhIGNvbXBsZXRlIHBvbGljeSB2aWEgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5
IGhlYWRlci4iKSkpOwogCiAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbnJlY29n
bml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIp
OwogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBhbGxvdykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggNjAyNzI3NWUyODA0ZTIzMDc1ODQ2NDhmMWExM2EzMmE1MTJkZjlj
My4uYTEwNjdjYzlhYTg3YzkyN2M0MWM2YTdkMzAzMTU3NzkwNDhkNzJkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtMTY5LDEzICsxNjksMTMgQEAgdHlwZWRlZiBIYXNoQ291bnRl
ZFNldDxET01XaW5kb3cqPiBET01XaW5kb3dTZXQ7CiAKIHN0YXRpYyBET01XaW5kb3dTZXQmIHdp
bmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoRE9NV2luZG93U2V0LCB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERPTVdpbmRvd1NldCwgd2luZG93c1dp
dGhVbmxvYWRFdmVudExpc3RlbmVycywgKCkpOwogICAgIHJldHVybiB3aW5kb3dzV2l0aFVubG9h
ZEV2ZW50TGlzdGVuZXJzOwogfQogCiBzdGF0aWMgRE9NV2luZG93U2V0JiB3aW5kb3dzV2l0aEJl
Zm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERP
TVdpbmRvd1NldCwgd2luZG93c1dpdGhCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NX
aXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMsICgpKTsKICAgICByZXR1cm4gd2luZG93c1dp
dGhCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDcxNzNkOWJhNDlmODc4NTk4ZjUzNDE3MWNiZTdjM2IzMTlkNjdhNDYu
LjVlNjUzNmU4OWI4YTAyN2U2ODRkYzI3MDg2YmFjNjA2ZTc1YzU4OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCBFdmVudEhhbmRsZXI6On5F
dmVudEhhbmRsZXIoKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBEcmFnU3RhdGUmIEV2ZW50
SGFuZGxlcjo6ZHJhZ1N0YXRlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERyYWdTdGF0
ZSwgc3RhdGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRHJhZ1N0
YXRlLCBzdGF0ZSwgKCkpOwogICAgIHJldHVybiBzdGF0ZTsKIH0KICNlbmRpZiAvLyBFTkFCTEUo
RFJBR19TVVBQT1JUKQpAQCAtMzAyNiwxMCArMzAyNiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6
a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAK
IHN0YXRpYyBGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShjb25zdCBBdG9taWNT
dHJpbmcmIGtleUlkZW50aWZpZXIpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIERvd24sICgiRG93biIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgVXAsICgiVXAiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIExlZnQsICgiTGVmdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgUmlnaHQs
ICgiUmlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgRG93biwgKCJEb3duIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFVwLCAoIlVwIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIExlZnQsICgiTGVmdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBSaWdodCwgKCJSaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKIAogICAgIEZvY3VzRGlyZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBmNTYwNDVlZjBkZGZiYzgxZjRlNjBhZTI1MzkyZTQ0NThj
MGNjYzNjLi4yMmYzOWRjYzMzZTBjYzYzN2Y1ODJmNzIwMTc0NGE0YWI0MTc5MDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBQYXNzT3duUHRyPEpTQzo6
WWFycjo6UmVndWxhckV4cHJlc3Npb24+IGNyZWF0ZVJlZ0V4cEZvckxhYmVscyhjb25zdCBWZWN0
CiAgICAgLy8gUkVWSUVXLSB2ZXJzaW9uIG9mIHRoaXMgY2FsbCBpbiBGcmFtZU1hYy5tbSBjYWNo
ZXMgYmFzZWQgb24gdGhlIE5TQXJyYXkgcHRycyBiZWluZwogICAgIC8vIHRoZSBzYW1lIGFjcm9z
cyBjYWxscy4gIFdlIGNhbid0IGRvIHRoYXQuCiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpT
Qzo6WWFycjo6UmVndWxhckV4cHJlc3Npb24sIHdvcmRSZWdFeHAsICgiXFx3IiwgVGV4dENhc2VT
ZW5zaXRpdmUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNDOjpZYXJy
OjpSZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJlZ0V4cCwgKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2
ZSkpOwogICAgIFN0cmluZyBwYXR0ZXJuKCIoIik7CiAgICAgdW5zaWduZWQgaW50IG51bUxhYmVs
cyA9IGxhYmVscy5zaXplKCk7CiAgICAgdW5zaWduZWQgaW50IGk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3JCYXNlLmNwcAppbmRleCBlYjJmOGY3Y2MxMTcxNGVlMzE2OTU2YTBlYjA4M2VlMDhm
MTFmZTk2Li4yMmJhMzUzYTJhMDhlZmRmZDA2YTBlZTM3Y2RlMjdiZWUzYTY2YmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgU3RyaW5nIE5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKCkgY29uc3QKICAgICBpZiAoIVN0cmluZyhXRUJDT1JFX05B
VklHQVRPUl9QTEFURk9STSkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk07CiAgICAgc3RydWN0IHV0c25hbWUgb3NuYW1lOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgmb3NuYW1lKSA+PSAwID8g
U3RyaW5nKG9zbmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3RyaW5nKG9zbmFtZS5tYWNo
aW5lKSA6IGVtcHR5U3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBwbGF0Zm9ybU5hbWUsICh1bmFtZSgmb3NuYW1lKSA+PSAwID8gU3RyaW5nKG9z
bmFtZS5zeXNuYW1lKSArIFN0cmluZygiICIpICsgU3RyaW5nKG9zbmFtZS5tYWNoaW5lKSA6IGVt
cHR5U3RyaW5nKCkpKTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwogI2Vsc2UKICAgICByZXR1
cm4gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcAppbmRleCBiMDZiMGI4NWYxNGYxOGFkYjhlOWNhZTI4NWVjMTY0
ZDkwZjRiZGExLi5mMzUyNTE2OGE2OTU5YzAzNjFmZDBlYTFiM2E5NDk2ZDc4YmMxMDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKQEAgLTM3LDkgKzM3
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHJpbmcgcGFnZVZpc2liaWxpdHlTdGF0ZVN0
cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCB2aXNpYmxlLCAoQVNDSUlMaXRlcmFsKCJ2aXNpYmxlIikpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaGlkZGVuLCAoQVNDSUlMaXRlcmFs
KCJoaWRkZW4iKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmVy
ZW5kZXIsIChBU0NJSUxpdGVyYWwoInByZXJlbmRlciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmlzaWJsZSwgKEFTQ0lJTGl0ZXJhbCgidmlz
aWJsZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgaGlkZGVuLCAoQVNDSUlMaXRlcmFsKCJoaWRkZW4iKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHByZXJlbmRlciwgKEFTQ0lJTGl0ZXJhbCgi
cHJlcmVuZGVyIikpKTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIFBhZ2VWaXNp
YmlsaXR5U3RhdGVWaXNpYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVz
ZXJUaW1pbmcuY3BwCmluZGV4IGUyYWY0M2VkODQxZTdlNjk2YzdlOTljNDQ4ODE5ZTgwOTJiNTE1
YWIuLmUwNzQzNGMyM2M2OGM1NjU0MmYwMDEyN2Y1ZDljMzVlYTBlNDBlNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAgbmFtZXNwYWNlIHsKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIE5hdmlnYXRpb25UaW1pbmdG
dW5jdGlvbj4gUmVzdHJpY3RlZEtleU1hcDsKIHN0YXRpYyBSZXN0cmljdGVkS2V5TWFwIHJlc3Ry
aWN0ZWRLZXlNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVzdHJpY3RlZEtleU1h
cCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlc3RyaWN0
ZWRLZXlNYXAsIG1hcCwgKCkpOwogICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1h
cC5hZGQoIm5hdmlnYXRpb25TdGFydCIsICZQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlvblN0
YXJ0KTsKICAgICAgICAgbWFwLmFkZCgidW5sb2FkRXZlbnRTdGFydCIsICZQZXJmb3JtYW5jZVRp
bWluZzo6dW5sb2FkRXZlbnRTdGFydCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCmluZGV4IGJhNDM4ZDA0M2IxM2M5NTUzZGQ2YWMxNGQ2YWQ0YWFkZTY3M2I1YmUuLjI2YmFi
Y2RiYzZhYjg0YTliNmNmNjQ5ZmViNDE4MjA3MWZlNzQxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwCkBAIC02MDAsNyArNjAwLDcgQEAgYm9vbCBTZWN1cml0eU9yaWdp
bjo6aXNTYW1lU2NoZW1lSG9zdFBvcnQoY29uc3QgU2VjdXJpdHlPcmlnaW4qIG90aGVyKSBjb25z
dAogU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5pcXVlU2VjdXJpdHlPcmlnaW4oKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHVuaXF1ZVNlY3VyaXR5T3JpZ2luVVJMLCAoQVNDSUlMaXRlcmFsKCJkYXRh
OiwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHVuaXF1ZVNlY3VyaXR5T3JpZ2luVVJMLCAoQVNDSUlMaXRlcmFsKCJkYXRhOiwiKSkpOwogICAg
IHJldHVybiB1bmlxdWVTZWN1cml0eU9yaWdpblVSTDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5UG9saWN5LmNwcAppbmRleCA5ZDE4ODc5ZjYyMjEyZDBkOTUxNTdjYmVlOTA4MTkxZmQw
ZGMxMzY2Li5kMjIwZTdlNmVhNGU3YWRlOTRhMmFjNDk2M2FiOTI4ZWZmYWJkM2M3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtNDYsNyArNDYsNyBAQCB0eXBlZGVm
IEhhc2hNYXA8U3RyaW5nLCBPd25QdHI8T3JpZ2luQWNjZXNzV2hpdGVMaXN0Pj4gT3JpZ2luQWNj
ZXNzTWFwOwogCiBzdGF0aWMgT3JpZ2luQWNjZXNzTWFwJiBvcmlnaW5BY2Nlc3NNYXAoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoT3JpZ2luQWNjZXNzTWFwLCBvcmlnaW5BY2Nlc3NNYXAs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoT3JpZ2luQWNjZXNzTWFw
LCBvcmlnaW5BY2Nlc3NNYXAsICgpKTsKICAgICByZXR1cm4gb3JpZ2luQWNjZXNzTWFwOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKaW5kZXgg
ZmRhZWQxZTUwOWI1MTAyZjkyZTJiZmU0YTYyMDAzNjQ3NzhlZDI2Mi4uODNhMWI0YzZiMThmMzNk
ZGM2YWY2OGE1MjcyZjZmNTcyNmM1NzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29sIFVzZXJDb250ZW50
VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBWZWN0b3I8
U3RyaW5nPgogCiBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6cGFyc2UoY29uc3QgU3RyaW5n
JiBwYXR0ZXJuKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzY2hl
bWVTZXBhcmF0b3IsIChBU0NJSUxpdGVyYWwoIjovLyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2NoZW1lU2VwYXJhdG9yLCAoQVNDSUlMaXRl
cmFsKCI6Ly8iKSkpOwogCiAgICAgc2l6ZV90IHNjaGVtZUVuZFBvcyA9IHBhdHRlcm4uZmluZChz
Y2hlbWVTZXBhcmF0b3IpOwogICAgIGlmIChzY2hlbWVFbmRQb3MgPT0gbm90Rm91bmQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHAKaW5kZXggZmVmNzAyZjAyYTM2ODM1OGQ1MWYzYTQ2NDM0MmJiNTNlZDhlNGI5Mi4uZWQ4
YWRkZTBiOTQ0YzdiNDNmYzY4YWYxZmJkMzk5ZDYxMzRkNjViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAt
NTg0LDExICs1ODQsMTEgQEAgc3RhdGljIGlubGluZSBzaXplX3Qgc2hhZG93TGlzdExlbmd0aChj
b25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCiAKIHN0YXRpYyBpbmxpbmUgY29uc3QgU2hhZG93RGF0
YSogc2hhZG93Rm9yQmxlbmRpbmcoY29uc3QgU2hhZG93RGF0YSogc3JjU2hhZG93LCBjb25zdCBT
aGFkb3dEYXRhKiBvdGhlclNoYWRvdykKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNoYWRv
d0RhdGEsIGRlZmF1bHRTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCBmYWxz
ZSwgQ29sb3I6OnRyYW5zcGFyZW50KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dE
YXRhLCBkZWZhdWx0SW5zZXRTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIGZh
bHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBO
b3JtYWwsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdEluc2V0U2hhZG93RGF0YSwgKEludFBv
aW50KCksIDAsIDAsIEluc2V0LCBmYWxzZSwgQ29sb3I6OnRyYW5zcGFyZW50KSk7CiAKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1bHRXZWJLaXRCb3hTaGFkb3dEYXRh
LCAoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCB0cnVlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1bHRJbnNldFdlYktpdEJv
eFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBJbnNldCwgdHJ1ZSwgQ29sb3I6OnRyYW5z
cGFyZW50KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEs
IGRlZmF1bHRXZWJLaXRCb3hTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgTm9ybWFsLCB0
cnVlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdEluc2V0V2ViS2l0Qm94U2hhZG93RGF0YSwgKEludFBv
aW50KCksIDAsIDAsIEluc2V0LCB0cnVlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKIAogICAgIGlm
IChzcmNTaGFkb3cpCiAgICAgICAgIHJldHVybiBzcmNTaGFkb3c7CkBAIC0xMDgwLDcgKzEwODAs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCYg
aW5zdGFuY2UoKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgZGF0YSBpcyBuZXZlciBk
ZXN0cm95ZWQuIE1heWJlIHdlIHNob3VsZCByZWYgY291bnQgaXQgYW5kIHRvc3MgaXQgd2hlbiB0
aGUgbGFzdCBBbmltYXRpb25Db250cm9sbGVyIGlzIGRlc3Ryb3llZD8KLSAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChPd25QdHI8Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwPiwgbWFw
LCAoKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPd25QdHI8Q1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwPiwgbWFwLCAoKSk7CiAgICAgICAgIGlmICghbWFw
KQogICAgICAgICAgICAgbWFwID0gYWRvcHRQdHIobmV3IENTU1Byb3BlcnR5QW5pbWF0aW9uV3Jh
cHBlck1hcCk7CiAgICAgICAgIHJldHVybiAqbWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggMWM5NWQ5MDE5N2Uz
NzgwZGUwZTk3OGRlNGMwZDc4YzVhZjc1NDM4ZS4uNWY5NzA2NmE4YmJhYmQyODNlOTdjZDllMDVj
NGFiMTI5NWJhYTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBDb21wb3Np
dGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5k
ZXJlciwgUmVuZGUKICAgICAgICAgLy8gVG9zcyB0aGUgYW5pbWF0aW9uIG9yZGVyIG1hcC4KICAg
ICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbk9yZGVyTWFwLmNsZWFyKCk7CiAKLSAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vbmUsICgibm9uZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9uZSwgKCJub25lIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICAKICAgICAgICAgLy8gTm93
IG1hcmsgYW55IHN0aWxsIGFjdGl2ZSBhbmltYXRpb25zIGFzIGFjdGl2ZSBhbmQgYWRkIGFueSBu
ZXcgYW5pbWF0aW9ucy4KICAgICAgICAgaWYgKHRhcmdldFN0eWxlLT5hbmltYXRpb25zKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCmluZGV4IDMwZTI2OWIwYjMyMDM1ZmRjODg3OTYy
YjMwZGVhNWQ5Yzg5NjA4ZTAuLjE5MGM3ZTU5OWM0MGQ4NzkxYThiMmRmOGY4NDNkMWI3ZDU4ZDA3
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcApAQCAtMTg4LDI1OSArMTg4LDI1OSBA
QCBQbGF0Zm9ybUN1cnNvciBDdXJzb3I6OnBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIAogY29uc3Qg
Q3Vyc29yJiBwb2ludGVyQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6UG9pbnRlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlBvaW50ZXIpKTsKICAgICByZXR1cm4gYzsKIH0KIAog
Y29uc3QgQ3Vyc29yJiBjcm9zc0N1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6OkNyb3NzKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q3Jvc3MpKTsKICAgICByZXR1cm4gYzsKIH0KIAog
Y29uc3QgQ3Vyc29yJiBoYW5kQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1
cnNvciwgYywgKEN1cnNvcjo6SGFuZCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkhhbmQpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29u
c3QgQ3Vyc29yJiBtb3ZlQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6TW92ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6Ok1vdmUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiB2ZXJ0aWNhbFRleHRDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpWZXJ0aWNhbFRleHQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpWZXJ0aWNhbFRleHQpKTsKICAgICBy
ZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjZWxsQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q2VsbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNlbGwpKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb250ZXh0TWVudUN1cnNvcigpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkNvbnRleHRNZW51KSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29udGV4
dE1lbnUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBhbGlhc0N1cnNvcigp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkFsaWFzKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6
QWxpYXMpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6b29tSW5DdXJzb3Io
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpab29tSW4p
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
Ojpab29tSW4pKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiB6b29tT3V0Q3Vy
c29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Wm9v
bU91dCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6Olpvb21PdXQpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb3B5
Q3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6
Q29weSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6OkNvcHkpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub25lQ3Vy
c29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9u
ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6Ok5vbmUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBwcm9ncmVzc0N1
cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlBy
b2dyZXNzKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywg
KEN1cnNvcjo6UHJvZ3Jlc3MpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBu
b0Ryb3BDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpOb0Ryb3ApKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpOb0Ryb3ApKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiBub3RBbGxvd2VkQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6Tm90QWxsb3dlZCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vdEFsbG93ZWQpKTsKICAgICByZXR1cm4gYzsKIH0K
IAogY29uc3QgQ3Vyc29yJiBpQmVhbUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6OklCZWFtKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6SUJlYW0pKTsKICAgICByZXR1cm4gYzsKIH0K
IAogY29uc3QgQ3Vyc29yJiB3YWl0Q3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6V2FpdCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OldhaXQpKTsKICAgICByZXR1cm4gYzsKIH0KIAog
Y29uc3QgQ3Vyc29yJiBoZWxwQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1
cnNvciwgYywgKEN1cnNvcjo6SGVscCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkhlbHApKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29u
c3QgQ3Vyc29yJiBlYXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OkVhc3RSZXNpemUpKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUmVzaXplKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhS
ZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RSZXNp
emVDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpOb3J0aEVhc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0K
IAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RSZXNpemUpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdl
c3RSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBzb3V0aFJlc2l6
ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
OlNvdXRoUmVzaXplKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6U291dGhSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3Qg
Q3Vyc29yJiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RSZXNpemUp
KTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBzb3V0aFdlc3RSZXNpemVDdXJz
b3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0
aFdlc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpTb3V0aFdlc3RSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29u
c3QgQ3Vyc29yJiB3ZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6V2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Oldlc3RSZXNpemUpKTsKICAgICByZXR1
cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFNvdXRoUmVzaXplQ3Vyc29yKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6
ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6Ok5vcnRoU291dGhSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29y
JiBlYXN0V2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OkVhc3RXZXN0UmVzaXplKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFdlc3RSZXNpemUpKTsKICAgICBy
ZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RTb3V0aFdlc3RSZXNpemVDdXJz
b3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0
aEVhc3RTb3V0aFdlc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aEVhc3RTb3V0aFdlc3RSZXNpemUpKTsKICAgICBy
ZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJz
b3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0
aFdlc3RTb3V0aEVhc3RSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RTb3V0aEVhc3RSZXNpemUpKTsKICAgICBy
ZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiBjb2x1bW5SZXNpemVDdXJzb3IoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDb2x1bW5SZXNpemUpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpD
b2x1bW5SZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vyc29yJiByb3dSZXNp
emVDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpSb3dSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpSb3dSZXNpemUpKTsKICAgICByZXR1cm4gYzsKIH0KIAogY29uc3QgQ3Vy
c29yJiBtaWRkbGVQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1
cnNvciwgYywgKEN1cnNvcjo6TWlkZGxlUGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok1pZGRsZVBhbm5pbmcpKTsKICAgICBy
ZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgZWFzdFBhbm5pbmdDdXJzb3IoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0UGFubmluZykp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
OkVhc3RQYW5uaW5nKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIG5v
cnRoUGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMs
IChDdXJzb3I6Ok5vcnRoUGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoUGFubmluZykpOwogICAgIHJldHVybiBjOwog
fQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aEVhc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhFYXN0UGFubmluZykp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
Ok5vcnRoRWFzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNv
ciYgbm9ydGhXZXN0UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFBhbm5pbmcpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3J0aFdlc3RQYW5uaW5nKSk7
CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIHNvdXRoUGFubmluZ0N1cnNv
cigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRo
UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMs
IChDdXJzb3I6OlNvdXRoUGFubmluZykpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3Qg
Q3Vyc29yJiBzb3V0aEVhc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhFYXN0UGFubmluZykpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoRWFzdFBhbm5p
bmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgc291dGhXZXN0UGFu
bmluZ0N1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OlNvdXRoV2VzdFBhbm5pbmcpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFdlc3RQYW5uaW5nKSk7CiAgICAgcmV0dXJuIGM7
CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIHdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2VzdFBhbm5pbmcpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpXZXN0UGFu
bmluZykpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGdyYWJDdXJzb3IoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpHcmFiKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6R3Jh
YikpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6R3JhYmJpbmcp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpHcmFiYmluZykpOwogICAgIHJldHVybiBjOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5n
dWFnZS5jcHAKaW5kZXggOGIxODk5MTE5NjEwMTZmOWM3MzY3MGY2YmYxMWI2ZWRkZTUxNjUzNy4u
ZjU2ODNkMDM3YzdiNzM1ZGJiNmIwYmViMjFiNmUwZWQ4ZjFmZjE2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xhbmd1YWdlLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXJGdW5jdGlvbj4g
T2JzZXJ2ZXJNYXA7CiBzdGF0aWMgT2JzZXJ2ZXJNYXAmIG9ic2VydmVyTWFwKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKE9ic2VydmVyTWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoT2JzZXJ2ZXJNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBt
YXA7CiB9CiAKQEAgLTcyLDcgKzcyLDcgQEAgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCiAKIHN0
YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIG92ZXJyaWRlLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxTdHJpbmc+LCBvdmVycmlkZSwg
KCkpOwogICAgIHJldHVybiBvdmVycmlkZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGVuZ3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5j
cHAKaW5kZXggNTUyNGJmYzNiNmNiMGJhODA0NDFiNDNlM2QwZDQ5YzE3Njk4ZTEyOS4uZGMwNTc5
ZjBjYWQ0MzNhYzQxMTJiZGFmNTlhOTg5Y2RiYjdmMGM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
ZW5ndGguY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgcHJpdmF0ZToKICAgICAKIHN0YXRpYyBDYWxj
dWxhdGlvblZhbHVlSGFuZGxlTWFwJiBjYWxjSGFuZGxlcygpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChDYWxjdWxhdGlvblZhbHVlSGFuZGxlTWFwLCBoYW5kbGVNYXAsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2FsY3VsYXRpb25WYWx1ZUhhbmRsZU1hcCwg
aGFuZGxlTWFwLCAoKSk7CiAgICAgcmV0dXJuIGhhbmRsZU1hcDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCA2YmM0ZDVhYmE3YmVkMTcy
NDFkMjEwNDUzYTY0YWEzNmFkYzFmNGJkLi4zZTkxMTQyMDQ0MTJhMDEwOTgxYmQ3MmQwYWJhN2Vh
YWZiN2Y1NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgU3RyaW5nIHRydW5jYXRlZFN0cmluZ0Zvckxv
b2t1cE1lbnVJdGVtKGNvbnN0IFN0cmluZyYgb3JpZ2luYWwpCiAKICAgICAvLyBUcnVuY2F0ZSB0
aGUgc3RyaW5nIGlmIGl0J3MgdG9vIGxvbmcuIFRoaXMgaXMgaW4gY29uc2lzdGVuY3kgd2l0aCBB
cHBLaXQuCiAgICAgdW5zaWduZWQgbWF4TnVtYmVyT2ZHcmFwaGVtZUNsdXN0ZXJzSW5Mb29rdXBN
ZW51SXRlbSA9IDI0OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbGxpcHNpcywg
KCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBlbGxpcHNpcywgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKIAogICAg
IFN0cmluZyB0cmltbWVkID0gb3JpZ2luYWwuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtQ2hhcmFjdGVyc0luR3JhcGhlbWVDbHVzdGVycyh0
cmltbWVkLCBtYXhOdW1iZXJPZkdyYXBoZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggODMzYTAy
ODQ0NTYyN2ViYmEyZjgzYzk2OTEzZjk3YWEyMTU0YmZhMi4uNTg5NWU4NDhmYWI2YTMzOGY4YTQ1
ZjliODBkYzI1ZjZiNDg0MDdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5
cGVSZWdpc3RyeS5jcHAKQEAgLTM5Miw3ICszOTIsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
U3VwcG9ydGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogCiBzdGF0aWMgTWVkaWFNSU1FVHlwZU1hcCYg
bWVkaWFNSU1FVHlwZU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYU1JTUVU
eXBlTWFwLCBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhTUlNRVR5cGVNYXAsIG1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb25NYXAsICgpKTsKIAogICAgIGlmICghbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1h
cC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFw
OwpAQCAtNjkzLDcgKzY5Myw3IEBAIEhhc2hTZXQ8U3RyaW5nPiYgTUlNRVR5cGVSZWdpc3RyeTo6
Z2V0VW5zdXBwb3J0ZWRUZXh0TUlNRVR5cGVzKCkKIAogY29uc3QgU3RyaW5nJiBkZWZhdWx0TUlN
RVR5cGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZhdWx0
TUlNRVR5cGUsIChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGVmYXVsdE1J
TUVUeXBlLCAoQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKSkpOwogICAg
IHJldHVybiBkZWZhdWx0TUlNRVR5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCmluZGV4IDcxMjkzNjZhNThkZjFiMDg1YTZl
MTUzYWUwNzA5ZmVlNzZkNzM4NjEuLjc0NGUyMTAyZjlmMTEwZTM5Y2I4MThlMjZhNmQzZTU0NWJi
MmU3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJl
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lbW9y
eVByZXNzdXJlSGFuZGxlciYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKE1lbW9yeVByZXNzdXJlSGFuZGxlciwgc3RhdGljTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lbW9yeVBy
ZXNzdXJlSGFuZGxlciwgc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVyLCAoKSk7CiAgICAgcmV0
dXJuIHN0YXRpY01lbW9yeVByZXNzdXJlSGFuZGxlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4IGNjOGY5NWQyMjRmZGNjZDIwMzM1MmE1NjU1
ZDYwZWMzODI4YjIyOTkuLjI0NzNmNTdhM2NjY2Q4N2YxNjFlNWEyZjE1ZTBkNjVlMDc3MDkxODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbG9j
YWxVUkxTY2hlbWVzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IGxvY2FsU2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChV
UkxTY2hlbWVzTWFwLCBsb2NhbFNjaGVtZXMsICgpKTsKIAogICAgIGlmIChsb2NhbFNjaGVtZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGxvY2FsU2NoZW1lcy5hZGQoImZpbGUiKTsKQEAgLTQ2LDEz
ICs0NiwxMyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbG9jYWxVUkxTY2hlbWVzKCkKIAogc3Rh
dGljIFVSTFNjaGVtZXNNYXAmIGRpc3BsYXlJc29sYXRlZFVSTFNjaGVtZXMoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgZGlzcGxheUlzb2xhdGVkU2NoZW1lcywg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBk
aXNwbGF5SXNvbGF0ZWRTY2hlbWVzLCAoKSk7CiAgICAgcmV0dXJuIGRpc3BsYXlJc29sYXRlZFNj
aGVtZXM7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVTY2hlbWVzKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNlY3VyZVNjaGVtZXMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2VjdXJl
U2NoZW1lcywgKCkpOwogCiAgICAgaWYgKHNlY3VyZVNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHNlY3VyZVNjaGVtZXMuYWRkKCJodHRwcyIpOwpAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMg
VVJMU2NoZW1lc01hcCYgc2VjdXJlU2NoZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBz
Y2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJM
U2NoZW1lc01hcCwgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNXaXRoVW5pcXVlT3Jp
Z2lucywgKCkpOwogCiAgICAgaWYgKHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucy5pc0VtcHR5KCkp
IHsKICAgICAgICAgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmFkZCgiYWJvdXQiKTsKQEAgLTgw
LDcgKzgwLDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lu
cygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBlbXB0eURvY3VtZW50U2NoZW1lcygpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBlbXB0eURvY3VtZW50U2NoZW1l
cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFw
LCBlbXB0eURvY3VtZW50U2NoZW1lcywgKCkpOwogCiAgICAgaWYgKGVtcHR5RG9jdW1lbnRTY2hl
bWVzLmlzRW1wdHkoKSkKICAgICAgICAgZW1wdHlEb2N1bWVudFNjaGVtZXMuYWRkKCJhYm91dCIp
OwpAQCAtOTAsMTMgKzkwLDEzIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBlbXB0eURvY3VtZW50
U2NoZW1lcygpCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4mIHNjaGVtZXNGb3JiaWRkZW5Gcm9t
RG9tYWluUmVsYXhhdGlvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0
cmluZz4sIHNjaGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxTdHJpbmc+LCBzY2hlbWVzLCAoKSk7CiAgICAgcmV0dXJuIHNjaGVtZXM7CiB9CiAK
IHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgY2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3RTY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcywg
KCkpOwogCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgaWYgKGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0U2NoZW1lcy5pc0VtcHR5KCkpIHsKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgVVJMU2No
ZW1lc01hcCYgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkKIAogc3RhdGljIFVS
TFNjaGVtZXNNYXAmIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVS
THNTY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNj
aGVtZXNNYXAsIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzLCAoKSk7CiAgICAgcmV0
dXJuIG5vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHNTY2hlbWVzOwogfQogCkBAIC0xMzYsMjAgKzEz
NiwyMCBAQCBjb25zdCBVUkxTY2hlbWVzTWFwJiBTY2hlbWVSZWdpc3RyeTo6bG9jYWxTY2hlbWVz
KCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFj
Y2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNj
aGVtZXNNYXAsIHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dz
aW5nLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNN
YXAsIHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nLCAo
KSk7CiAgICAgcmV0dXJuIHNjaGVtZXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0
ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc0FsbG93aW5nRGF0
YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJy
b3dzaW5nLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVt
ZXNNYXAsIHNjaGVtZXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgp
KTsKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93
c2luZzsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVkU2NoZW1lcygpCiB7
CiAgICAgLy8gRklYTUU6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
MTYwCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNj
aGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1l
c01hcCwgQ09SU0VuYWJsZWRTY2hlbWVzLCAoKSk7CiAKICAgICBpZiAoQ09SU0VuYWJsZWRTY2hl
bWVzLmlzRW1wdHkoKSkgewogICAgICAgICBDT1JTRW5hYmxlZFNjaGVtZXMuYWRkKCJodHRwIik7
CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIENPUlNFbmFibGVkU2No
ZW1lcygpCiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBDb250ZW50U2VjdXJpdHlQb2xpY3lCeXBh
c3NpbmdTY2hlbWVzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IHNjaGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2No
ZW1lc01hcCwgc2NoZW1lcywgKCkpOwogICAgIHJldHVybiBzY2hlbWVzOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKaW5kZXggYzM3NGQyYmJkZGUxZjUw
MDdmMjIwYjgxMGUxM2JjMDllYzg0Zjk0YS4uOGVkMmQ5NTk5N2I1NGMwMzlmNzBiNDZiNWJiMjQ3
OWRlNzBjZWY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
VGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNw
cApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTY3JvbGxiYXJUaGVtZSog
U2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCkKIHsKICAgICBpZiAoU2V0dGluZ3M6Om1vY2tTY3JvbGxi
YXJzRW5hYmxlZCgpKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhl
bWVNb2NrLCBtb2NrVGhlbWUsICgpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFNjcm9sbGJhclRoZW1lTW9jaywgbW9ja1RoZW1lLCAoKSk7CiAgICAgICAgIHJldHVy
biAmbW9ja1RoZW1lOwogICAgIH0KICAgICByZXR1cm4gbmF0aXZlVGhlbWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwCmluZGV4IDFiY2UyYWFmN2M5ZDc4NDEwNzhmMzYwMmE4YTExYmE4MDlmZTVl
MmIuLmQ5ODBhMTkwMjZiM2E3YzQ5NDM1YzZkN2VjOGI4ZTc2OWUwYzIzYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmNwcApAQCAtMTc4Miw3ICsxNzgyLDcgQEAgYm9vbCBwcm90b2NvbElzSW5IVFRQ
RmFtaWx5KGNvbnN0IFN0cmluZyYgdXJsKQogCiBjb25zdCBVUkwmIGJsYW5rVVJMKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTCwgc3RhdGljQmxhbmtVUkwsIChQYXJzZWRVUkxTdHJp
bmcsICJhYm91dDpibGFuayIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
VVJMLCBzdGF0aWNCbGFua1VSTCwgKFBhcnNlZFVSTFN0cmluZywgImFib3V0OmJsYW5rIikpOwog
ICAgIHJldHVybiBzdGF0aWNCbGFua1VSTDsKIH0KIApAQCAtMTc5Nyw3ICsxNzk3LDcgQEAgYm9v
bCBpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodW5zaWduZWQgc2hvcnQgcG9ydCwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgdW5zaWduZWQsIENhc2VGb2xkaW5nSGFzaD4gRGVmYXVsdFBvcnRzTWFwOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdFBvcnRzTWFwLCBkZWZhdWx0UG9ydHMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRGVmYXVsdFBvcnRzTWFwLCBk
ZWZhdWx0UG9ydHMsICgpKTsKICAgICBpZiAoZGVmYXVsdFBvcnRzLmlzRW1wdHkoKSkgewogICAg
ICAgICBkZWZhdWx0UG9ydHMuc2V0KCJodHRwIiwgODApOwogICAgICAgICBkZWZhdWx0UG9ydHMu
c2V0KCJodHRwcyIsIDQ0Myk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
bmltYXRpb24vQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uY3BwCmluZGV4IDMzM2YxZDgyODQzNDkzMDIwODYyMGY3Yjc2YzBjZjYzYzNk
ZjliMzguLjNiN2NhMzQ1ZGE1M2JjNDllNDNiNWNjZDM0YzE4YTQ1NjBjNTFlMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCkBAIC0xMzYs
NyArMTM2LDcgQEAgYm9vbCBBbmltYXRpb246OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmltYXRp
b24qIG8sIGJvb2wgbWF0Y2hQbGF5U3RhdGVzKSBjb25zdAogCiBjb25zdCBTdHJpbmcmIEFuaW1h
dGlvbjo6aW5pdGlhbEFuaW1hdGlvbk5hbWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBpbml0aWFsVmFsdWUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaXRpYWxWYWx1ZSwgKEFTQ0lJTGl0
ZXJhbCgibm9uZSIpKSk7CiAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggZGVjODY2MjM1
ZTYxN2JjY2M1ZDg1YTdmYTYwNTZiZWQwNDM3MjI0Ny4uZTIwMjE0ODRjODMzYjJiYzliNDFmNjQ2
OGU0NTNmYjhmODczNzdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1Nlc3Npb24uY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QXVkaW9TZXNzaW9uJiBBdWRpb1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXVkaW9TZXNzaW9uLCBzZXNzaW9uLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF1ZGlvU2Vzc2lvbiwgc2Vzc2lvbiwgKCkpOwogICAgIHJl
dHVybiBzZXNzaW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZFbGV2YXRpb24uY3BwCmluZGV4IDAyNjg3MmMzNDQ4MjYzZTJiOTBhNDEwNjE4MTRiZDQ1Y2Zk
NTJkN2UuLjdiZDBmMmQ0ZmNiY2U3OTJmMTUzMTUwMGY5OTI3NjYwNzhkNmM2ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBAIC02OCw3
ICs2OCw3IEBAIGNvbnN0IGZsb2F0IFJlc3BvbnNlU2FtcGxlUmF0ZSA9IDQ0MTAwOwogc3RhdGlj
IEF1ZGlvQnVzKiBnZXRDb25jYXRlbmF0ZWRJbXB1bHNlUmVzcG9uc2VzRm9yU3ViamVjdChjb25z
dCBTdHJpbmcmIHN1YmplY3ROYW1lKQogewogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEF1
ZGlvQnVzKj4gQXVkaW9CdXNNYXA7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb0J1c01h
cCwgYXVkaW9CdXNNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXVkaW9CdXNNYXAsIGF1ZGlvQnVzTWFwLCAoKSk7CiAKICAgICBBdWRpb0J1cyogYnVzOwogICAg
IEF1ZGlvQnVzTWFwOjppdGVyYXRvciBpdGVyYXRvciA9IGF1ZGlvQnVzTWFwLmZpbmQoc3ViamVj
dE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFT
ZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcAppbmRleCAwZGJmM2YwYTM3OGFjODYzNjg2ZjcwMDRiNDBlNzY3ZDRh
MmYxNTRkLi42NzdjM2Y5YTMwOWZhNTNlNzQxMTkwMzA1MTQ4NDhkNzZmZDUyYzNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2Vy
LmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVBMQVRGT1JN
KElPUykKIE1lZGlhU2Vzc2lvbk1hbmFnZXImIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFuYWdlciwg
bWFuYWdlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNl
c3Npb25NYW5hZ2VyLCBtYW5hZ2VyLCAoKSk7CiAgICAgcmV0dXJuIG1hbmFnZXI7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rl
c3RpbmF0aW9uSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b0Rlc3RpbmF0aW9uSU9TLmNwcAppbmRleCBkNzEwY2JmNDBhNjRlMTI1MjM3MzY3OTM2MmM2YTEz
MTdhZmNlMjNkLi45YTZlZjEwZWUwYmRhZWE3NjdhNmQ1YjlmZDRkMDFkOGJlYTdlYmRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlv
bklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVz
dGluYXRpb25JT1MuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGNvbnN0IGludCBrUHJlZmVycmVkQnVm
ZmVyU2l6ZSA9IDI1NjsKIHR5cGVkZWYgSGFzaFNldDxBdWRpb0Rlc3RpbmF0aW9uSU9TKj4gQXVk
aW9EZXN0aW5hdGlvblNldDsKIHN0YXRpYyBBdWRpb0Rlc3RpbmF0aW9uU2V0JiBhdWRpb0Rlc3Rp
bmF0aW9ucygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb0Rlc3RpbmF0aW9uU2V0
LCBhdWRpb0Rlc3RpbmF0aW9uU2V0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF1ZGlvRGVzdGluYXRpb25TZXQsIGF1ZGlvRGVzdGluYXRpb25TZXQsICgpKTsKICAg
ICByZXR1cm4gYXVkaW9EZXN0aW5hdGlvblNldDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpp
bmRleCBlYWY5NzZlZWEyOGIyN2FlMzM5YmM0YWFiMjU5N2NjZDc1MDBlZTFiLi5hNGY0MzJmZDcw
MGM0ZGYwYzBmOGU0ZDQwNGEyNTk4ZTI5NTU4Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpA
QCAtODAsNyArODAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlhU2Vzc2lvbk1hbmFn
ZXImIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoTWVkaWFTZXNzaW9uTWFuYWdlcmlPUywgbWFuYWdlciwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNlc3Npb25NYW5hZ2VyaU9TLCBtYW5h
Z2VyLCAoKSk7CiAgICAgcmV0dXJuIG1hbmFnZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAKaW5kZXggNWRjMDkxYWJmZWZl
NTYzOGVmYTVkOTFiZjhhMjExZmVkMDIyODkyYi4uNjQzN2ViMmQ0YzMyOGI1MjhjNGQ2YjQ0MzE0
NDIwYTA0OTk2M2QzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vm
bFNjcmVlblV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Vm
bFNjcmVlblV0aWxpdGllcy5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgQ3Vyc29yTWFwOjpDdXJzb3JN
YXAoKQogCiBpbnQgZ2V0RWNvcmVDdXJzb3IoY29uc3QgU3RyaW5nJiBjdXJzb3JTdHJpbmcpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3JNYXAsIGN1cnNvclN0cmluZ01hcCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3JNYXAsIGN1cnNvclN0
cmluZ01hcCwgKCkpOwogCiAgICAgcmV0dXJuIGN1cnNvclN0cmluZ01hcC5jdXJzb3IoY3Vyc29y
U3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCmluZGV4IGZkNzU3YzM4MGJkZWZjYmY3MWVi
NjViMWFhYzMzNjU0NTgwYWNhN2EuLmE3YzhjNDc5ZmFiMzVkM2E2YzBiZjE5ODhjMDVjZDk2ZWZj
Zjk2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgRGlz
cGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCgpCiAKIERpc3BsYXlSZWZyZXNo
TW9uaXRvck1hbmFnZXIqIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlciwgbWFuYWdlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLCBtYW5hZ2VyLCAoKSk7CiAgICAgcmV0dXJuICZt
YW5hZ2VyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmlu
ZGV4IGY1NzZkZjA4MDIyMjI4M2YzMWMzN2NmYzYzMzQzMDA0MmNmNjQ0ODMuLmZkNDQwZTAxZWRm
ZjIwYWY2OTU4YWFjZmVhODk4MzA3ZWQ2NDJkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBGb250R2x5cGhzQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRHbHlwaHNDYWNoZUtl
eSYgYikKIAogc3RhdGljIEZvbnRHbHlwaHNDYWNoZSYgZm9udEdseXBoc0NhY2hlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRHbHlwaHNDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udEdseXBoc0NhY2hlLCBjYWNoZSwgKCkp
OwogICAgIHJldHVybiBjYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggMGIxYzQwNzA5ZTM0NzNmY2I3Y2Y3NzBlYTRhMDg4
MTRmYmIzNGQwMS4uYjI3YTEyMTk1OGEzNGUwYWFiNjVhZGViYTI4MDlhNzkzYzljZTE4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC04
Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZJWE1FOiBXZSBzaG91bGQgcmV0
dXJuIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyIHNpbmNlIHdlIG5ldmVyIHJldHVy
biBhIG51bGxwdHIuCiBGb250Q2FjaGUqIGZvbnRDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChGb250Q2FjaGUsIGdsb2JhbEZvbnRDYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChGb250Q2FjaGUsIGdsb2JhbEZvbnRDYWNoZSwgKCkpOwogICAg
IHJldHVybiAmZ2xvYmFsRm9udENhY2hlOwogfQogCkBAIC0yODUsNyArMjg1LDcgQEAgc3RydWN0
IEZvbnRWZXJ0aWNhbERhdGFDYWNoZUtleVRyYWl0cyA6IFdURjo6R2VuZXJpY0hhc2hUcmFpdHM8
Rm9udENhY2hlOjpGb250RmkKICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3QgRm9udENhY2hlOjpGb250RmlsZUtleSYgZW1wdHlW
YWx1ZSgpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRDYWNoZTo6Rm9u
dEZpbGVLZXksIGtleSwgKG51bGxBdG9tKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChGb250Q2FjaGU6OkZvbnRGaWxlS2V5LCBrZXksIChudWxsQXRvbSkpOwogICAg
ICAgICByZXR1cm4ga2V5OwogICAgIH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVk
VmFsdWUoRm9udENhY2hlOjpGb250RmlsZUtleSYgc2xvdCkKQEAgLTMwMiw3ICszMDIsNyBAQCB0
eXBlZGVmIEhhc2hNYXA8Rm9udENhY2hlOjpGb250RmlsZUtleSwgUmVmUHRyPE9wZW5UeXBlVmVy
dGljYWxEYXRhPiwgRm9udFZlcnRpYwogCiBGb250VmVydGljYWxEYXRhQ2FjaGUmIGZvbnRWZXJ0
aWNhbERhdGFDYWNoZUluc3RhbmNlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRW
ZXJ0aWNhbERhdGFDYWNoZSwgZm9udFZlcnRpY2FsRGF0YUNhY2hlLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRWZXJ0aWNhbERhdGFDYWNoZSwgZm9udFZlcnRp
Y2FsRGF0YUNhY2hlLCAoKSk7CiAgICAgcmV0dXJuIGZvbnRWZXJ0aWNhbERhdGFDYWNoZTsKIH0K
IApAQCAtMzQwLDcgKzM0MCw3IEBAIHN0cnVjdCBGb250RGF0YUNhY2hlS2V5VHJhaXRzIDogV1RG
OjpHZW5lcmljSGFzaFRyYWl0czxGb250UGxhdGZvcm1EYXRhPiB7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIGVtcHR5VmFsdWUoKQogICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChGb250UGxhdGZvcm1EYXRhLCBrZXksICgwLmYsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udFBsYXRmb3JtRGF0YSwga2V5LCAoMC5m
LCBmYWxzZSwgZmFsc2UpKTsKICAgICAgICAgcmV0dXJuIGtleTsKICAgICB9CiAgICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEZvbnRQbGF0Zm9ybURhdGEmIHNsb3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAppbmRleCA4Mjc1
MmFlOWRjZGFjZDVmZWUzNGFjMmI4OTJhYWQ4OGI0YWUwYzUxLi44YTkzZjVmMTcwMGMyMTBmMTc4
Zjk1OTMzZTFmNTAyZWFiNDhiYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgaW5saW5lIFRocmVhZEdsb2Jh
bEdMQ29udGV4dCogY3VycmVudENvbnRleHQoKQogCiBHTENvbnRleHQqIEdMQ29udGV4dDo6c2hh
cmluZ0NvbnRleHQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoT3duUHRyPEdMQ29udGV4
dD4sIHNoYXJpbmcsIChjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCkpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoT3duUHRyPEdMQ29udGV4dD4sIHNoYXJpbmcsIChjcmVhdGVP
ZmZzY3JlZW5Db250ZXh0KCkpKTsKICAgICByZXR1cm4gc2hhcmluZy5nZXQoKTsKIH0KIApAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgR0xDb250ZXh0OjpjbGVhbnVwU2hhcmVkWDExRGlzcGxheSgp
CiB0eXBlZGVmIFZlY3RvcjxHTENvbnRleHQqPiBBY3RpdmVDb250ZXh0TGlzdDsKIHN0YXRpYyBB
Y3RpdmVDb250ZXh0TGlzdCYgYWN0aXZlQ29udGV4dExpc3QoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQWN0aXZlQ29udGV4dExpc3QsIGFjdGl2ZUNvbnRleHRzLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFjdGl2ZUNvbnRleHRMaXN0LCBhY3RpdmVDb250
ZXh0cywgKCkpOwogICAgIHJldHVybiBhY3RpdmVDb250ZXh0czsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCBkMzQ2
MzAzMTQzMzY4NDNmMjJlNTRmNmJlZTA2MGE4ZjVkMjY3NjY3Li40MjQyN2NmNWYzNjFlMzM1ZjE2
MDc1N2MwMGYwNzZmMTQzMjhlOWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgR3JhcGhpY3NMYXllciosIFZlY3RvcjxG
bG9hdFJlY3Q+PiBSZXBhaW50TWFwOwogc3RhdGljIFJlcGFpbnRNYXAmIHJlcGFpbnRSZWN0TWFw
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlcGFpbnRNYXAsIG1hcCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXBhaW50TWFwLCBtYXAsICgpKTsKICAg
ICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggZTZmYWNkYTgwZGMzMDViZjhiY2YzNjI1ZjNiYmJhODM3
NWI5ZWVlZi4uMWMwMjg2YzI0MWRmZTk2ZmI1NWJmMGU0OTE0ZmM5NzI2NzlmYmJiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAt
MzUsOCArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIVVTRShDRykKIHZvaWQgSW1h
Z2VCdWZmZXI6OnRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNlLCBD
b2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0
b3I8aW50PiwgZGV2aWNlUmdiTFVULCAoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0
b3I8aW50PiwgbGluZWFyUmdiTFVULCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFZlY3RvcjxpbnQ+LCBkZXZpY2VSZ2JMVVQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPGludD4sIGxpbmVhclJnYkxVVCwgKCkpOwogCiAgICAg
aWYgKHNyY0NvbG9yU3BhY2UgPT0gZHN0Q29sb3JTcGFjZSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IDMyODQ0YTMzYjRlYWQ4ZGYyYzNkYTQ0ZDdlM2MzNmE1MmZhZTRhYzguLjc0Nzg0NjI2ZDBhMDQ5
ZWYzYmNjMmI2ZGQwNjJhNWZkZDEyNDkxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMg
TWVkaWFQbGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBj
dXJyZW50KTsKIGVudW0gUmVxdWVyeUVuZ2luZU9wdGlvbnMgeyBEb05vdFJlc2V0RW5naW5lcywg
UmVzZXRFbmdpbmVzIH07CiBzdGF0aWMgVmVjdG9yPE1lZGlhUGxheWVyRmFjdG9yeSo+JiBpbnN0
YWxsZWRNZWRpYUVuZ2luZXMoUmVxdWVyeUVuZ2luZU9wdGlvbnMgcmVxdWVyeUZsYWdzID0gRG9O
b3RSZXNldEVuZ2luZXMgKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE1lZGlh
UGxheWVyRmFjdG9yeSo+LCBpbnN0YWxsZWRFbmdpbmVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxNZWRpYVBsYXllckZhY3RvcnkqPiwgaW5zdGFsbGVk
RW5naW5lcywgKCkpOwogICAgIHN0YXRpYyBib29sIGVuZ2luZXNRdWVyaWVkID0gZmFsc2U7CiAK
ICAgICBpZiAocmVxdWVyeUZsYWdzID09IFJlc2V0RW5naW5lcykgewpAQCAtMjUwLDE5ICsyNTAs
MTkgQEAgc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIg
Y29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG8KIAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgYXBwbGljYXRpb25PY3RldFN0cmVhbSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW0sICgiYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFwcGxp
Y2F0aW9uT2N0ZXRTdHJlYW0sICgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBhcHBsaWNhdGlvbk9jdGV0
U3RyZWFtOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0UGxhaW4oKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0ZXh0UGxhaW4sICgi
dGV4dC9wbGFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0ZXh0UGxh
aW4sICgidGV4dC9wbGFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gdGV4dFBsYWluOwogfQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBj
b2RlY3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBj
b2RlY3MsICgiY29kZWNzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNv
ZGVjcywgKCJjb2RlY3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIGNvZGVjczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCAxMWE1ZjlmMDJkNjRkNTM1MmZmOWIwZmFlODYyMzkz
MjJjMGI5ZDM3Li5jMmIyYjk1OTE2MGNkMDA2YzZiMjAzOWJmYmJjZGY5MzdkOGNlNjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcApAQCAt
MTYxLDcgKzE2MSw3IEBAIHByaXZhdGU6CiAKIFNjcmF0Y2hCdWZmZXImIFNjcmF0Y2hCdWZmZXI6
OnNoYXJlZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTY3JhdGNoQnVmZmVyLCBzY3Jh
dGNoQnVmZmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmF0
Y2hCdWZmZXIsIHNjcmF0Y2hCdWZmZXIsICgpKTsKICAgICByZXR1cm4gc2NyYXRjaEJ1ZmZlcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggOGJkOWE2MWNiMGY3OWVkNmEyNWNhMmRlMjA5Mjgz
YTMwMTEwOGZiNy4uYWQ4YzQzMjUzMTg5YjA5ZTY5NDE1MWU1MjA5NWRiYWIyZWUxNjg3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwCkBAIC0yMzIsMjEgKzIzMiwyMSBAQCBzdGF0aWMgQ0ZBcnJheVJlZiBt
ZXRhZGF0YUtleU5hbWVzKCkKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZDRlRp
bWVkTWV0YWRhdGFHcm91cC5oIGV4cG9ydGVkIHRoaXMga2V5Lgogc3RhdGljIENGU3RyaW5nUmVm
IENNVGltZVJhbmdlU3RhcnRLZXkoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJp
bmdSZWYsIGtleSwgKENGU1RSKCJzdGFydCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigic3RhcnQiKSkpOwogICAgIHJldHVy
biBrZXk7CiB9CiAKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZDRlRpbWVkTWV0
YWRhdGFHcm91cC5oIGV4cG9ydGVkIHRoaXMga2V5Lgogc3RhdGljIENGU3RyaW5nUmVmIENNVGlt
ZVJhbmdlRHVyYXRpb25LZXkoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJpbmdS
ZWYsIGtleSwgKENGU1RSKCJkdXJhdGlvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKENGU3RyaW5nUmVmLCBrZXksIChDRlNUUigiZHVyYXRpb24iKSkpOwogICAgIHJl
dHVybiBrZXk7CiB9CiAKIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBiZXR0ZXIgaWYgQVZDRiBleHBv
cnRlZCB0aGlzIG5vdGlmaWNhdGlvbiBuYW1lLgogc3RhdGljIENGU3RyaW5nUmVmIENBQ0ZDb250
ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
RlN0cmluZ1JlZiwgbmFtZSwgKENGU1RSKCJrQ0FDRkNvbnRleHROZWVkc0ZsdXNoTm90aWZpY2F0
aW9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJpbmdSZWYs
IG5hbWUsIChDRlNUUigia0NBQ0ZDb250ZXh0TmVlZHNGbHVzaE5vdGlmaWNhdGlvbiIpKSk7CiAg
ICAgcmV0dXJuIG5hbWU7CiB9CiAKQEAgLTgxNiw3ICs4MTYsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludAogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7
CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwogCiAgICAgaWYg
KHR5cGVMaXN0SW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBiYmYwOGM1
NGNkM2ExOTFmOGE5YmE4NjFjOTUzYTVhMzgzZGQ3Yzk3Li5jMzY3NzhmZTk1ZmM0MDc3ODAwZDRl
MDc2ZWE2NzViNzE5YTNlMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTI3Miw3ICsy
NzIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqYm9vbFN0cmluZyhib29sIHZhbCkKIHR5cGVkZWYg
SGFzaE1hcDxNZWRpYVBsYXllciosIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMq
PiBQbGF5ZXJUb1ByaXZhdGVNYXBUeXBlOwogc3RhdGljIFBsYXllclRvUHJpdmF0ZU1hcFR5cGUm
IHBsYXllclRvUHJpdmF0ZU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQbGF5ZXJU
b1ByaXZhdGVNYXBUeXBlLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoUGxheWVyVG9Qcml2YXRlTWFwVHlwZSwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsK
IH07CiAjZW5kaWYKQEAgLTExMTUsNyArMTExNSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoSW1hZ2VHZW5lcmF0b3IoR3JhcGhpY3NDb250ZXh0
CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKICAgICBz
dGF0aWMgYm9vbCB0eXBlTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAodHlwZUxp
c3RJbml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA0MTczM2UwZDgz
YzczNDY0YTdkMjg3ZTRlMDc3MjNiMTM5YjRkZjczLi5kYjk3ZjI4NzE3MGVkNzg4Yzc4NzczODgw
ZjBkYzIwYzJlMjUyNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xOTEsNyAr
MTkxLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQXZh
aWxhYmxlKCkKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSwgKCkp
OwogICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIGlm
ICh0eXBlTGlzdEluaXRpYWxpemVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCmluZGV4
IGZkNDRhYTA2M2EyOWMwNDBmYTljMDA5NTJmMTlkOGFiNTFhZGI1ZTcuLjYwYmJmZTk5MDkwMWE0
NWMzNWZhZGU3MWYwYmYzYmMzMTI4YTE1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMYXllckNoYW5nZXNG
bHVzaGVyJiBMYXllckNoYW5nZXNGbHVzaGVyOjpzaGFyZWQoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoTGF5ZXJDaGFuZ2VzRmx1c2hlciwgZmx1c2hlciwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChMYXllckNoYW5nZXNGbHVzaGVyLCBmbHVzaGVyLCAoKSk7
CiAgICAgcmV0dXJuIGZsdXNoZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVD
YWNoZS5jcHAKaW5kZXggNmJhNzJlNmIxMmM3NzU1M2Q0ZDI5YTdlODQ0MWQwYjVlMGRlMTlmYS4u
MmUyZTAzYmRkMWRkZTgyNDg3MzJjZjZkZDc5YjYzNTM4YmE3OGQ0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVD
YWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJCYWNraW5nU3RvcmVDYWNoZS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgSW1hZ2VCdWZmZXJC
YWNraW5nU3RvcmVDYWNoZTo6SW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZSgpCiAKIEltYWdl
QnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUmIEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGU6Omdl
dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNh
Y2hlLCBjYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLCBjYWNoZSwgKCkpOwogICAgIHJldHVybiBjYWNoZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VTb3VyY2VDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZVNvdXJjZUNHV2luLmNwcAppbmRleCAyNDk0OWI5M2FlOWM1NTExNGMxMTVhYjg0MTIzZDcz
MWQ4NjI2NmE5Li44MDg4MzBiOGI4NTdiZDI4NmI4M2ZlOGQ0NGM0NmE5NDE3MDk3YTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNH
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNv
dXJjZUNHV2luLmNwcApAQCAtNTAsNyArNTAsNyBAQCBTdHJpbmcgcHJlZmVycmVkRXh0ZW5zaW9u
Rm9ySW1hZ2VTb3VyY2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBTdHJpbmdNYXA7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdNYXAsIFVUSU1hcCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmdNYXAsIFVUSU1hcCwgKCkpOwogICAg
IGlmIChVVElNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIFVUSU1hcC5hZGQoInB1YmxpYy5odG1s
IiwgImh0bWwiKTsKICAgICAgICAgVVRJTWFwLmFkZCgicHVibGljLmpwZWciLCAianBlZyIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUFscGhhLmNwcAppbmRleCBmMjg2Yzk1NjI2ZDQxODgyODc1YTA3NjZjZmUyZGFkOGIyNDhi
NjM3Li44NmVjNjllZjc0Nzg4NWRiNDk2YzQ2Nzk4MzU5YmJjMWFmZmE0YzNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFs
cGhhLmNwcApAQCAtMzgsNyArMzgsNyBAQCBQYXNzUmVmUHRyPFNvdXJjZUFscGhhPiBTb3VyY2VB
bHBoYTo6Y3JlYXRlKEZpbHRlciogZmlsdGVyKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNvdXJj
ZUFscGhhOjplZmZlY3ROYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUFscGhhIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHNfZWZmZWN0TmFtZSwgKCJTb3VyY2VBbHBoYSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19lZmZlY3ROYW1l
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUdyYXBoaWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcAppbmRleCA1ZWViZjJjZWVhNTRkNWQ0ZTZiZjRjZDg4
MGFlMDhmOGE2MGQyYTc4Li43MmZiNWQzM2I5MGE0ZDg1Mjk1MzgwYzZlNmNjYTVhZDY2YmIwYzRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nv
dXJjZUdyYXBoaWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlR3JhcGhpYy5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUGFzc1JlZlB0cjxTb3Vy
Y2VHcmFwaGljPiBTb3VyY2VHcmFwaGljOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU291cmNlR3JhcGhpYzo6ZWZmZWN0TmFtZSgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNfZWZmZWN0TmFtZSwgKCJTb3VyY2VH
cmFwaGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNfZWZmZWN0TmFt
ZSwgKCJTb3VyY2VHcmFwaGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBzX2VmZmVjdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0QuY3BwCmluZGV4IDhiOThlNzgwNTEwNDA5ZWFiMDQxMWIwMGU1ZTM2NjliNTc2Y2M0MjIuLjcz
ZjNlMjEyYjUwNTE4ZDgwMzY5NmNhMDM4NDE2ZGZmMmRjNTBiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmNwcApAQCAtNzgsNyArNzgsNyBAQCBwcml2YXRlOgogCiBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0KCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNESW1wbCwgaW1wbCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFyZWRHcmFwaGljc0Nv
bnRleHQzREltcGwsIGltcGwsICgpKTsKICAgICByZXR1cm4gaW1wbC5nZXRPckNyZWF0ZUNvbnRl
eHQoKTsKIH0KIApAQCAtODgsNyArODgsNyBAQCBlbnVtIENvbnRleHRPcGVyYXRpb24gewogCiBz
dGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gZ2V0T3JDcmVhdGVDb250ZXh0Rm9y
SW1wbFRocmVhZChDb250ZXh0T3BlcmF0aW9uIG9wKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU2hhcmVkR3JhcGhpY3NDb250ZXh0M0RJbXBsLCBpbXBsLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNESW1wbCwgaW1wbCwg
KCkpOwogICAgIHJldHVybiBvcCA9PSBDcmVhdGUgPyBpbXBsLmNyZWF0ZUNvbnRleHQoKSA6IGlt
cGwuZ2V0Q29udGV4dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRleHRPcGVuQ0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmNw
cAppbmRleCBjYmE2NjY5ODU1ZmMxYWJlMDI2Y2M5OGFkNzZmMzFkNDY5Y2FlNDdiLi42YWEwNTAz
MTA0YTg1NzUyZjVlY2Y4MGRjNDc3ODBjOWYzMWQxM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0ZpbHRlckNvbnRleHRPcGVuQ0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVy
Q29udGV4dE9wZW5DTC5jcHAKQEAgLTE3OCw4ICsxNzgsOCBAQCBpbmxpbmUgYm9vbCBGaWx0ZXJD
b250ZXh0T3BlbkNMOjpjb21waWxlVHJhbnNmb3JtQ29sb3JTcGFjZVByb2dyYW0oKQogCiB2b2lk
IEZpbHRlckNvbnRleHRPcGVuQ0w6Om9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2UoT3BlbkNMSGFu
ZGxlJiBzb3VyY2UsIEludFJlY3Qgc291cmNlU2l6ZSwgQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNl
LCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChP
cGVuQ0xIYW5kbGUsIGRldmljZVJnYkxVVCwgKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
T3BlbkNMSGFuZGxlLCBsaW5lYXJSZ2JMVVQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoT3BlbkNMSGFuZGxlLCBkZXZpY2VSZ2JMVVQsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoT3BlbkNMSGFuZGxlLCBsaW5lYXJSZ2JMVVQsICgpKTsK
IAogICAgIGlmIChzcmNDb2xvclNwYWNlID09IGRzdENvbG9yU3BhY2UgfHwgaW5FcnJvcigpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IDBjNGVkYmVjMTA5Mjk1MDY0NTExYTgyMDQxNjAyNGIyZjg2YjAyNTUu
LjQ0YmVhMzJlYmZiZjY0ZDhjZmNiNDk4YjE5NzRkNDJkZWE3YzM0NjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNjUwLDcgKzE2NTAs
NyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewogICAgIGluaXRp
YWxpemVHU3RyZWFtZXJBbmRSZWdpc3RlcldlYktpdEVsZW1lbnRzKCk7CiAKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSwgKCkpOwogICAgIHN0
YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIGlmICh0eXBlTGlz
dEluaXRpYWxpemVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKaW5kZXggZWZjOTRmM2Y5MGYwNWI5NDRk
NjNmNDNmYTJjOTRhNTVkMzU0NmVkYi4uYjViMzFmYzE5Y2YxNTRmZjliNDllNzQ4Y2YyNTU0YmE5
NTM1YjVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFy
ZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHR5cGVkZWYg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEZhY2VDYWNoZUVudHJ5PiwgV1RGOjpJbnRIYXNoPHVp
bnQ2NF90PiwgV1RGOjpVCiAKIHN0YXRpYyBIYXJmQnV6ekZhY2VDYWNoZSogaGFyZkJ1enpGYWNl
Q2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFyZkJ1enpGYWNlQ2FjaGUsIHNf
aGFyZkJ1enpGYWNlQ2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFyZkJ1enpGYWNlQ2FjaGUsIHNfaGFyZkJ1enpGYWNlQ2FjaGUsICgpKTsKICAgICByZXR1
cm4gJnNfaGFyZkJ1enpGYWNlQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDc5Y2Y1YzFhY2I2Y2U2
NTY5MWVjNzI3NTYyYjVjNGY2YTA3Yzk4YWMuLmMzNDhiODAyMmZmNzI5MDMxZTRmN2NlMzI4YjM3
MTk3MzcxYzE5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMTY2LDcgKzE2Niw3IEBAIFBhc3NSZWZQdHI8U2lt
cGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0CiAgICAgICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIHN0YXRpYyBTdHJpbmcqIG1hdGNoV29yZHNbM10gPSB7IG5ldyBTdHJp
bmcoIkFyYWJpYyIpLCBuZXcgU3RyaW5nKCJQYXNodG8iKSwgbmV3IFN0cmluZygiVXJkdSIpIH07
Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBnZWV6YVN0ciwgKCJH
ZWV6YSBQcm8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGdlZXphU3RyLCAo
IkdlZXphIFBybyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCAzICYmICFzaW1wbGVGb250RGF0YTsgKytqKQogICAgICAg
ICAgICAgaWYgKGZhbWlseS5jb250YWlucygqbWF0Y2hXb3Jkc1tqXSwgZmFsc2UpKQogICAgICAg
ICAgICAgICAgIHNpbXBsZUZvbnREYXRhID0gZ2V0Q2FjaGVkRm9udERhdGEoZGVzY3JpcHRpb24s
IGdlZXphU3RyKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRh
PiBGb250Q2FjaGU6OnNpbWlsYXJGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdAog
CiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxs
YmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIFNob3VsZFJl
dGFpbiBzaG91bGRSZXRhaW4pCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHRpbWVzU3RyLCAoIlRpbWVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHRp
bWVzU3RyLCAoIlRpbWVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
CiAgICAgLy8gRklYTUU6IFdvdWxkIGJlIGV2ZW4gYmV0dGVyIHRvIHNvbWVob3cgZ2V0IHRoZSB1
c2VyJ3MgZGVmYXVsdCBmb250IGhlcmUuICBGb3Igbm93IHdlJ2xsIHBpY2sKICAgICAvLyB0aGUg
ZGVmYXVsdCB0aGF0IHRoZSB1c2VyIHdvdWxkIGdldCB3aXRob3V0IGNoYW5naW5nIGFueSBwcmVm
cy4KQEAgLTE4OCw3ICsxODgsNyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2Fj
aGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaQogICAgIC8vIHRo
ZSB1c2VyIGRvZXNuJ3QgaGF2ZSBpdCwgd2UgZmFsbCBiYWNrIG9uIEx1Y2lkYSBHcmFuZGUgYmVj
YXVzZSB0aGF0J3MKICAgICAvLyBndWFyYW50ZWVkIHRvIGJlIHRoZXJlLCBhY2NvcmRpbmcgdG8g
TmF0aGFuIFRheWxvci4gVGhpcyBpcyBnb29kIGVub3VnaAogICAgIC8vIHRvIGF2b2lkIGEgY3Jh
c2ggYXQgbGVhc3QuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGx1Y2lk
YUdyYW5kZVN0ciwgKCJMdWNpZGEgR3JhbmRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGx1Y2lkYUdyYW5kZVN0ciwgKCJMdWNpZGEgR3JhbmRlIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBnZXRDYWNoZWRGb250RGF0YShmb250RGVz
Y3JpcHRpb24sIGx1Y2lkYUdyYW5kZVN0ciwgZmFsc2UsIHNob3VsZFJldGFpbik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCA5M2Q5YTgyZWI4MzE3YmZjYjkxNTVjMGM1
NTZiYzM3MTdhNjNhNTdhLi44ODJjNDcwM2I4MmYwOThkMTkyMmVhNGRhYjM0NTdjMTA1YjM3ODI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0xNDA2LDcgKzE0MDYsNyBAQCBz
dGF0aWMgdm9pZCBhZGRGaWxlVHlwZXNUb0NhY2hlKE5TQXJyYXkgKiBmaWxlVHlwZXMsIEhhc2hT
ZXQ8U3RyaW5nPiAmY2FjaGUpCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZUNvbW1vblR5
cGVzQ2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBj
YWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0
cmluZz4sIGNhY2hlLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9
IGZhbHNlOwogCiAgICAgaWYgKCF0eXBlTGlzdEluaXRpYWxpemVkKSB7CkBAIC0xNDIwLDcgKzE0
MjAsNyBAQCBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVDb21tb25UeXBlc0NhY2hlKCkKIAog
c3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lTW9kZXJuVHlwZXNDYWNoZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKICAg
ICBzdGF0aWMgYm9vbCB0eXBlTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgCiAgICAgaWYg
KCF0eXBlTGlzdEluaXRpYWxpemVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwCmluZGV4IDQ3NTVlMzA3N2QyYjk4ZDg2
MmYzZTRmYTZiYjczMmNkNjRmYjU1ZmMuLmE0NTdiODgzNmQ2YjM5NWVjOGI4YzczNTQyY2U5MWE1
ZDcwNjRhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9Gb250Q2FjaGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q2FjaGVXaW4uY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgUGFzc1JlZlB0cjxTaW1w
bGVGb250RGF0YT4gRm9udENhY2hlOjpmb250RGF0YUZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQo
Y29uc3QgRm8KIAogUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpnZXRMYXN0
UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBTaG91bGRSZXRhaW4gc2hvdWxkUmV0YWluKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBmYWxsYmFja0ZvbnROYW1lLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmFsbGJhY2tGb250TmFtZSwgKCkpOwogICAg
IGlmICghZmFsbGJhY2tGb250TmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBnZXRDYWNo
ZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGZhbGxiYWNrRm9udE5hbWUsIGZhbHNlLCBzaG91
bGRSZXRhaW4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggMjRmMTAwMGQxMTQyYmQ2MWNmODQxMTZmMmFjYzA0
ZDMwOTIxZDcyMy4uZGNiZmU4NTNmZmIyY2I0NTZkMmE3ZjgwNWE0MTg3YzJkMTNkZGVkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0LmNwcApAQCAtODk5LDcgKzg5OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dDo6cmV0cmlldmVDdXJyZW50SW1hZ2UoKQogCiBzdGF0aWMgSGFzaFNl
dDxTdHJpbmc+IG1pbWVUeXBlQ2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxTdHJpbmc+LCB0eXBlQ2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCB0eXBlQ2FjaGUsICgpKTsKICAgICBzdGF0aWMgYm9v
bCB0eXBlTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIXR5cGVMaXN0SW5pdGlh
bGl6ZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggOWJjOGQ1YzI3NzBmYTVhMDAwOTlj
MTg4YmM0N2NhNTE2ZGZmYjc3MS4uZTg4ZDU4Mjc3MGM3MjI5YzM0NjE5NDg1ZGUzMGU4ZDU1MWYw
YTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2Uv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdHJ1Y3Qg
Rml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEZpeGVk
U2l6ZUZvbnREYXRhS2V5PgogICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1plcm8g
PSB0cnVlOwogICAgIHN0YXRpYyBjb25zdCBGaXhlZFNpemVGb250RGF0YUtleSYgZW1wdHlWYWx1
ZSgpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZpeGVkU2l6ZUZvbnREYXRh
S2V5LCBrZXksIChudWxsQXRvbSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoRml4ZWRTaXplRm9udERhdGFLZXksIGtleSwgKG51bGxBdG9tKSk7CiAgICAgICAgIHJl
dHVybiBrZXk7CiAgICAgfQogICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShG
aXhlZFNpemVGb250RGF0YUtleSYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R2FtZXBhZHNHdGsuY3BwCmluZGV4IDM3Zjg0OTgwYmE0ODM0ZjcxMGNjY2JlZTcyOWJlZDg1OWVh
NzU0ZjQuLmVlMzYyMGQ0MjU0YThlMDJlNjEzMzQ3OTcxNGQ5YTE0MTM0MDU4YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMjE2LDcgKzIxNiw3
IEBAIGdib29sZWFuIEdhbWVwYWRzR3RrOjppc0dhbWVwYWREZXZpY2UoR1VkZXZEZXZpY2UqIGRl
dmljZSkKIAogdm9pZCBzYW1wbGVHYW1lcGFkcyhHYW1lcGFkTGlzdCogaW50bykKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEdhbWVwYWRzR3RrLCBnYW1lcGFkc0d0aywgKGludG8tPmxlbmd0
aCgpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdhbWVwYWRzR3RrLCBn
YW1lcGFkc0d0aywgKGludG8tPmxlbmd0aCgpKSk7CiAgICAgZ2FtZXBhZHNHdGsudXBkYXRlR2Ft
ZXBhZExpc3QoaW50byk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCmluZGV4IGM2MjFmZDM0YzI0YjhjZGE1MWQyZmQx
YTdhOWUxYmY2NDUyZDQzNTYuLjdhMWM0NGUxOWQ4NDQyMGJkZWYyMmUxMzk3YjQzODY1Yjc3MTFm
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5kaW5nVHJh
bnNsYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdU
cmFuc2xhdG9yLmNwcApAQCAtMjEzLDggKzIxMyw4IEBAIHZvaWQgS2V5QmluZGluZ1RyYW5zbGF0
b3I6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50LCBFdmVu
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEludENv
bnN0Q2hhckhhc2hNYXAsIGtleURvd25Db21tYW5kc01hcCwgKCkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSW50Q29uc3RDaGFySGFzaE1hcCwga2V5UHJlc3NDb21tYW5kc01hcCwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbnRDb25zdENoYXJIYXNoTWFwLCBr
ZXlEb3duQ29tbWFuZHNNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSW50Q29uc3RDaGFySGFzaE1hcCwga2V5UHJlc3NDb21tYW5kc01hcCwgKCkpOwogCiAgICAg
aWYgKGtleURvd25Db21tYW5kc01hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhrZXlEb3duRW50cmllcyk7IGkrKykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAppbmRleCA4OWI5
ZmJhOGRkYTdjNjcxYjI5ZDUxYWM5YzhjMzY0ODk1YTA3MWMyLi5kZDRhYTBkNWZjNGUwYzBiMjIx
NmVlOTJkMTFiZjdmOWFjMWQ1OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyB2b2lkIGlu
aXRHZGtBdG9tcygpCiAKIFBhc3RlYm9hcmRIZWxwZXIqIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBhc3RlYm9h
cmRIZWxwZXIsIGRlZmF1bHRIZWxwZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUGFzdGVib2FyZEhlbHBlciwgZGVmYXVsdEhlbHBlciwgKCkpOwogICAgIHJldHVy
biAmZGVmYXVsdEhlbHBlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAKaW5kZXggYzhlODFlNDZi
NmM1YTAzOWVlMWMzODVhMzJjMTlmNDg0NGE1YTIyYy4uMDE4NGI3NWUzMThiODBhN2NlNWZjMmQ5
NDIwMzMyZmVmZDk1MDI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwCkBAIC00Miw3ICs0Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxXaW5kb3csIFJlZGlyZWN0ZWRY
Q29tcG9zaXRlV2luZG93Kj4gV2luZG93SGFzaE1hcDsKIHN0YXRpYyBXaW5kb3dIYXNoTWFwJiBn
ZXRXaW5kb3dIYXNoTWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdpbmRvd0hhc2hN
YXAsIHdpbmRvd0hhc2hNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoV2luZG93SGFzaE1hcCwgd2luZG93SGFzaE1hcCwgKCkpOwogICAgIHJldHVybiB3aW5kb3dI
YXNoTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0azMuY3BwCmluZGV4IDMyZTM3MDQzMWM4Y2UwOWVlZWFiY2RlZjZkMTRmZTVjMTExZTk3ODku
LmQ3M2Y2YzRhMGFiNjNmZWRhN2NkMDkzNmU3N2YyZWY3NTY0ZjQxYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIHN0YXRpYyB2b2lkIGd0a1N0eWxlQ2hhbmdlZENhbGxiYWNrKEdPYmplY3QqLCBHUGFyYW1T
cGVjKikKIAogc3RhdGljIFN0eWxlQ29udGV4dE1hcCYgc3R5bGVDb250ZXh0TWFwKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQ29udGV4dE1hcCwgbWFwLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQ29udGV4dE1hcCwgbWFwLCAoKSk7CiAK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKaW5k
ZXggMWFmNTZhNGVkNzczNDNhZjc3MTM0ODg5MDI3ZmFjN2RkNTU4YjA2ZC4uY2VjNTY1OTZjMzRm
OWU3OTJiZDlmYjQzNDk2YmM1YjFiNzkwOTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIGNwdURlc2NyaXB0aW9uRm9yVUFTdHJpbmcoKQogCiBzdGF0aWMgU3RyaW5nIHBsYXRmb3Jt
VmVyc2lvbkZvclVBU3RyaW5nKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
dWFPU1ZlcnNpb24sIChTdHJpbmcoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHVhT1NWZXJzaW9uLCAoU3RyaW5nKCkpKTsKICAgICBpZiAoIXVhT1NWZXJz
aW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHVhT1NWZXJzaW9uOwogCkBAIC02OSw4ICs2
OSw4IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9u
TmFtZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvCiAgICAgLy8gYnJvd3NlcnMgdGhhdCBhcmUg
IlNhZmFyaSIgYnV0IG5vdCBydW5uaW5nIG9uIE9TIFggYXJlIHRoZSBTYWZhcmkgaU9TIGJyb3dz
ZS4gR2V0dGluZyB0aGlzCiAgICAgLy8gd3JvbmcgY2FuIGNhdXNlIHNpdGVzIHRvIGxvYWQgdGhl
IHdyb25nIEphdmFTY3JpcHQsIENTUywgb3IgY3VzdG9tIGZvbnRzLiBJbiBzb21lIGNhc2VzCiAg
ICAgLy8gc2l0ZXMgd29uJ3QgbG9hZCByZXNvdXJjZXMgYXQgYWxsLgotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQ1N0cmluZywgdWFWZXJzaW9uLCAoU3RyaW5nOjpmb3JtYXQoIiVpLiVp
IiwgVVNFUl9BR0VOVF9HVEtfTUFKT1JfVkVSU0lPTiwgVVNFUl9BR0VOVF9HVEtfTUlOT1JfVkVS
U0lPTikudXRmOCgpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0
YXRpY1VBLCAoU3RyaW5nOjpmb3JtYXQoIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7ICVzKSBBcHBs
ZVdlYktpdC8lcyAoS0hUTUwsIGxpa2UgR2Vja28pIFNhZmFyaS8lcyIsCisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IENTdHJpbmcsIHVhVmVyc2lvbiwgKFN0cmluZzo6
Zm9ybWF0KCIlaS4laSIsIFVTRVJfQUdFTlRfR1RLX01BSk9SX1ZFUlNJT04sIFVTRVJfQUdFTlRf
R1RLX01JTk9SX1ZFUlNJT04pLnV0ZjgoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXRpY1VBLCAoU3RyaW5nOjpmb3JtYXQoIk1vemlsbGEv
NS4wIChNYWNpbnRvc2g7ICVzKSBBcHBsZVdlYktpdC8lcyAoS0hUTUwsIGxpa2UgR2Vja28pIFNh
ZmFyaS8lcyIsCiAgICAgICAgIHBsYXRmb3JtVmVyc2lvbkZvclVBU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgdWFWZXJzaW9uLmRhdGEoKSwgdWFWZXJzaW9uLmRhdGEoKSkpKTsKIAogICAgIGlmIChh
cHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDY3MWFhZGI5MmRiYzU0
ZjgzODY3NDBjYjNiYzdhYTQ0OGQ5YTA3YTMuLjg0M2M5NGE5ODA1ZjkyNzdmNjRjYTAyYTQzZDk2
YjMwNDRmZDVkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRn
ZXRSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
V2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAog
c3RhdGljIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVyUHVyZ2UoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoUHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIsIHB1cmdlU2NyYXRjaEJ1ZmZlclRp
bWVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFB1cmdlU2NyYXRj
aEJ1ZmZlclRpbWVyLCBwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lciwgKCkpOwogICAgIGlmIChwdXJn
ZVNjcmF0Y2hCdWZmZXJUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBwdXJnZVNjcmF0Y2hCdWZm
ZXJUaW1lci5zdG9wKCk7CiAgICAgcHVyZ2VTY3JhdGNoQnVmZmVyVGltZXIuc3RhcnRPbmVTaG90
KDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0N1cnNvcklPUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcAppbmRleCAyNDY5
M2FhMTE2ZjFlYzE3OGM1YmY5YjdlMmE2NzBjZDMwNGU3ZmUzLi5iMDk0MGE5ZjlmZTY3MmFkZmE1
ZDYwNDhjOTgzNDQ4NmE0MWIzMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvQ3Vyc29ySU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vy
c29ySU9TLmNwcApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBDdXJzb3ImIGN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBDdXJzb3IsIGN1cnNvciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBDdXJzb3IsIGN1cnNvciwgKCkpOwogICAgIHJldHVybiBjdXJzb3I7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9UaWxlQ29udHJvbGxlck1lbW9y
eUhhbmRsZXJJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKaW5kZXggYWQxMDY0MWYwMjE1NDY2NmMyYmI0ZTNhMTU5
NGFkNmU5M2UwMDNkYi4uZWEyMzFiNzc4NzVkNTcyOGU5MzBmMzU2ZmZlNjcyNWQ2YmY3M2M5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVD
b250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBUaWxl
Q29udHJvbGxlck1lbW9yeUhhbmRsZXI6OnRyaW1VbnBhcmVudGVkVGlsZXNUb1RhcmdldChpbnQg
dGFyZ2V0KQogCiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXImIHRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChUaWxlQ29udHJvbGxlck1l
bW9yeUhhbmRsZXIsIHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRs
ZXIsIHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlciwgKCkpOwogICAgIHJldHVybiBz
dGF0aWNUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQppbmRleCA3M2E5ODJh
ZDI2NWUwYWZlN2Q3NDM4YTdmZmJiMTYxZTQ1ZDFjMTI3Li40MDIwNDg1ZDdiYWZhMGVkYjhmMjk2
OTM3OTRjZTdkNTU2OWY0NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBjb25z
dCBkb3VibGUga0dyYXZpdHkgPSA5LjgwNjY1OwogCiArIChXZWJDb3JlTW90aW9uTWFuYWdlciAq
KXNoYXJlZE1hbmFnZXIKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0cjxXZWJD
b3JlTW90aW9uTWFuYWdlcj4sIHNoYXJlZE1vdGlvbk1hbmFnZXIsIChbW1dlYkNvcmVNb3Rpb25N
YW5hZ2VyIGFsbG9jXSBpbml0XSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChSZXRhaW5QdHI8V2ViQ29yZU1vdGlvbk1hbmFnZXI+LCBzaGFyZWRNb3Rpb25NYW5hZ2VyLCAo
W1tXZWJDb3JlTW90aW9uTWFuYWdlciBhbGxvY10gaW5pdF0pKTsKICAgICByZXR1cm4gc2hhcmVk
TW90aW9uTWFuYWdlci5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAppbmRleCA4NTU4MTlhYjRj
YjliYzY5OTgzNzA3YjVjMzgxMTQzZjNjMGQ4ZjZhLi4wZmI4YWU5OTAwYjhjZDM3NTllZDU2ZDMz
ZmQ0YjgxYmI3ZmFmMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
d2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcApAQCAtNzcsNyArNzcsNyBAQCBzdGF0
aWMgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gKiBXZWJUaHJlYWRHZXRPYnNlcnZlZENvbnRlbnRN
b2RpZmllcnMoKQogewogICAgIEFTU0VSVChXZWJUaHJlYWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPHZvaWQgKiwgdm9pZCAqPiBWb2lkVm9pZE1hcDsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFZvaWRWb2lkTWFwLCBvYnNlcnZlZENvbnRlbnRNb2RpZmllcnMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVm9pZFZvaWRNYXAsIG9i
c2VydmVkQ29udGVudE1vZGlmaWVycywgKCkpOwogICAgIHJldHVybiAmb2JzZXJ2ZWRDb250ZW50
TW9kaWZpZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1h
Yy5tbQppbmRleCBiOGRhZThhNTYzZjBiMjI3NWVlZDEwMWUxMDg4OGU3MGNmZWYxNTEyLi5iNDg1
YTk1MzgzZDMzZGNkYzViMjRiOGY5MjM2ZGEyMjAxMWNlMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTE2MCw3ICsxNjAsNyBAQCBjb25zdCBm
bG9hdCBEcmFnTGlua1VybEZvbnRTaXplID0gMTA7CiBzdGF0aWMgRm9udCYgZm9udEZyb21OU0Zv
bnQoTlNGb250ICpmb250KQogewogICAgIHN0YXRpYyBOU0ZvbnQgKmN1cnJlbnRGb250OwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoRm9udCwgY3VycmVudFJlbmRlcmVyLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnQsIGN1cnJlbnRSZW5kZXJlciwgKCkpOwog
ICAgIAogICAgIGlmIChbZm9udCBpc0VxdWFsOmN1cnJlbnRGb250XSkKICAgICAgICAgcmV0dXJu
IGN1cnJlbnRSZW5kZXJlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxiYXJUaGVtZU1hYy5tbQppbmRleCA3N2I5NmE2MWVhZTFiZGMzMTYzZmU1NDdjODlmNzBmODU2
ZTM0ZGNlLi43OGIyY2Y0Njg3Y2FmYzFmZmJjZDkzZjM5NWZmZTc5ZmRiZDA3NGRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0x
MTQsNyArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxiYXJUaGVtZSogU2Ny
b2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNj
cm9sbGJhclRoZW1lTWFjLCB0aGVtZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTY3JvbGxiYXJUaGVtZU1hYywgdGhlbWUsICgpKTsKICAgICByZXR1cm4gJnRoZW1l
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KaW5kZXggMDk4NzQ3
NDRjN2I5ZWRiMGY0MDE5MmE5N2M4OTZkNjYxMjBiNjRhOC4uODQ1MjVjY2RmN2JjNDM1YjgwODYx
MjE3YTBhMWUwYmYwYWNjNjNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1h
Yy5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIGVudW0gewogCiBUaGVtZSogcGxhdGZvcm1UaGVtZSgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChUaGVtZU1hYywgdGhlbWVNYWMsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGhlbWVNYWMsIHRoZW1lTWFjLCAoKSk7
CiAgICAgcmV0dXJuICZ0aGVtZU1hYzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RocmVhZENoZWNrLm1tCmluZGV4IDg5ZmVmMDMwOWM5NDk5NDJlMjRkYTFjMjZkMzlhNThkNTdk
MTQ1ZWEuLjBjYTNjYjUyNzRiZGE3MGIyYmMyZDcxMmIzNTllMGQxZDIwMzJjNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBX
ZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICBpZiAocm91bmQgPj0gTWF4aW11bVRocmVhZFZp
b2xhdGlvblJvdW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8U3RyaW5nPiwgbG9nZ2VkRnVuY3Rpb25zLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgbG9nZ2VkRnVuY3Rpb25zLCAoKSk7
CiAgICAgc3dpdGNoICh0aHJlYWRWaW9sYXRpb25CZWhhdmlvcltyb3VuZF0pIHsKICAgICAgICAg
Y2FzZSBOb1RocmVhZENoZWNrOgogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHAKaW5kZXggNmE4NjE4MWI4OTk0NWY0NWFjODFjOTU5MjE3NjRhZDg3NjQyM2Yw
NS4uZjI4MTEzMWJkOTg3YmVlNGNiMTcxYmFlNTgzMDE3Y2JlNWQ4YjhjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIFJlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y29uc3RyYWludHMoKSBjb25zdAogY29u
c3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzdGF0
ZXMoKSBjb25zdAogewogICAgIGlmICghbV9zb3VyY2UpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcywgbm9TdGF0ZSwgKCkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgTWVkaWFTdHJlYW1Tb3Vy
Y2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsKICAgICAgICAgcmV0dXJuIG5vU3RhdGU7CiAgICAgfQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5j
cHAKaW5kZXggNWU0ZjM0ZTg0NjhjZTY4ZWQzYzZkMDMyN2RiYzZiMmQ2YTU0NGMxZS4uY2VkYjAz
OTczNTkyMzAzMWI3YTk5Yjc3NjZmMDk4YzhkNDkwMjE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhU3RyZWFtQ2VudGVyJiBNZWRpYVN0cmVhbUNlbnRlcjo6
cGxhdGZvcm1DZW50ZXIoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lciwgY2VudGVyLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyLCBjZW50ZXIsICgpKTsKICAgICByZXR1cm4gY2VudGVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNl
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyLm1tCmluZGV4IGJmYjlhM2Q3YzY1ZDI4ZjcyODQyMDEwZjI0NWNm
NTU4MWM0ZWI3YzguLjYyMDI0MmQ3MWZhNGQwYTEwOTEyYzU0MDRhMjM1NmQxNzNhODk2MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1
cmVEZXZpY2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCkBAIC0xMTIsNyArMTEyLDcgQEAgcHVi
bGljOgogCiBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBjYXB0dXJlRGV2aWNlTGlzdCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8Q2FwdHVyZURldmljZT4sIGNhcHR1
cmVEZXZpY2VMaXN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiwgY2FwdHVyZURldmljZUxpc3QsICgpKTsKICAgICBzdGF0aWMg
Ym9vbCBmaXJzdFRpbWUgPSB0cnVlOwogCiAgICAgaWYgKGZpcnN0VGltZSAmJiAhY2FwdHVyZURl
dmljZUxpc3Quc2l6ZSgpKSB7CkBAIC0xNzcsNyArMTc3LDcgQEAgYm9vbCBBVkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWQ2FwdHVyZURldmljZU1hbmFnZXImIEFWQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNoYXJlZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
VkNhcHR1cmVEZXZpY2VNYW5hZ2VyLCBtYW5hZ2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEFWQ2FwdHVyZURldmljZU1hbmFnZXIsIG1hbmFnZXIsICgpKTsKICAg
ICByZXR1cm4gbWFuYWdlcjsKIH0KIApAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgQVZDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6ZGV2aWNlRGlzY29ubmVjdGVkKEFWQ2FwdHVyZURldmljZVR5cGUqIGRl
dmljZSkKIAogY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIEFWQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnZhbGlkQ29uc3RyYWludE5hbWVzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZl
Y3RvcjxBdG9taWNTdHJpbmc+LCBjb25zdHJhaW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8QXRvbWljU3RyaW5nPiwgY29uc3RyYWludHMsICgpKTsK
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBoZWlnaHRDb25zdHJhaW50
KCJoZWlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB3aWR0aENvbnN0cmFpbnQoIndpZHRoIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEF0b21pY1N0cmluZz4gZnJhbWVSYXRlQ29uc3RyYWludCgiZnJhbWVSYXRlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC00NzYsNyArNDc2LDcgQEAgY29u
c3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZhbGlkQ29u
c3RyYWludE5hbWVzKCkKIAogY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnZhbGlkRmFjaW5nTW9kZXMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoVmVjdG9yPEF0b21pY1N0cmluZz4sIG1vZGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9taWNTdHJpbmc+LCBtb2RlcywgKCkpOwogICAgIAog
ICAgIGlmICghbW9kZXMuc2l6ZSgpKSB7CiAgICAgICAgIG1vZGVzLmluc2VydChNZWRpYVN0cmVh
bVNvdXJjZVN0YXRlczo6VXNlciwgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUo
TWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJN
YWMuY3BwCmluZGV4IDM3MGE1MjI3NmI0MWZmMmIyMzk1YWJhOTQ4Yjk2YTE5YTZlNjFmYjYuLjhk
OGQ5MGRmMTRjMmNmY2FiMmQwYjU3ZThhOWY1YTg3NmU0YzU0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3Ry
ZWFtQ2VudGVyTWFjLmNwcApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBN
ZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJlYW1DZW50ZXI6OnBsYXRmb3JtQ2VudGVyKCkKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTWVk
aWFTdHJlYW1DZW50ZXJNYWMsIGNlbnRlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlck1hYywgY2VudGVyLCAoKSk7CiAgICAgcmV0dXJu
IGNlbnRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4IDIwY2IxYWI4YjQxMmNkMmI0M2ZhZWJmOTgw
YjgyN2ZhYzMyODMwODcuLjY5YmQ2MDA1NjFkY2NiMDM2ODhkYzA3YTY4OGY2MzZmNDI4ZjFlMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhU3RyZWFt
Q2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0
cmVhbUNlbnRlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPE1vY2tTb3VyY2U+PiBNb2NrU291cmNlTWFwOwogCiBzdGF0aWMgTW9ja1NvdXJjZU1h
cCYgbW9ja1NvdXJjZU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNb2NrU291cmNl
TWFwLCBtb2NrU291cmNlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE1vY2tTb3VyY2VNYXAsIG1vY2tTb3VyY2VNYXAsICgpKTsKICAgICByZXR1cm4gbW9ja1Nv
dXJjZU1hcDsKIH0KIApAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVN
b2NrU291cmNlcygpCiAKIHZvaWQgTW9ja01lZGlhU3RyZWFtQ2VudGVyOjpyZWdpc3Rlck1vY2tN
ZWRpYVN0cmVhbUNlbnRlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNb2NrTWVkaWFT
dHJlYW1DZW50ZXIsIGNlbnRlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChNb2NrTWVkaWFTdHJlYW1DZW50ZXIsIGNlbnRlciwgKCkpOwogICAgIHN0YXRpYyBib29s
IHJlZ2lzdGVyZWQgPSBmYWxzZTsKICAgICBpZiAoIXJlZ2lzdGVyZWQpIHsKICAgICAgICAgcmVn
aXN0ZXJlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCAyODZlODFiNDkzM2UzMDQ2NmQ5OGIxYTM4ZGVj
MjQ5ODU5MTAyZGVjLi5jNWQ4MTdmMzdhZjUzOWRiY2Q2N2VlN2ZlY2E5MGMwZTdjZTA2YjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a0JveC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgTW9ja1RyYWNrQm94OjpNb2NrVHJhY2tCb3goQXJy
YXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYgTW9ja1RyYWNrQm94Ojp0eXBlKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhaywgKEFTQ0lJTGl0ZXJhbCgidHJh
ayIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhaywg
KEFTQ0lJTGl0ZXJhbCgidHJhayIpKSk7CiAgICAgcmV0dXJuIHRyYWs7CiB9CiAKQEAgLTEwNSw3
ICsxMDUsNyBAQCBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6Ok1vY2tJbml0aWFsaXphdGlvbkJveChB
cnJheUJ1ZmZlciogZGF0YSkKIAogY29uc3QgU3RyaW5nJiBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6
OnR5cGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0LCAoQVNDSUlM
aXRlcmFsKCJpbml0IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBpbml0LCAoQVNDSUlMaXRlcmFsKCJpbml0IikpKTsKICAgICByZXR1cm4gaW5pdDsKIH0K
IApAQCAtMTMyLDcgKzEzMiw3IEBAIE1vY2tTYW1wbGVCb3g6Ok1vY2tTYW1wbGVCb3goQXJyYXlC
dWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYgTW9ja1NhbXBsZUJveDo6dHlwZSgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNtcGwsIChBU0NJSUxpdGVyYWwoInNtcGwi
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNtcGwsIChB
U0NJSUxpdGVyYWwoInNtcGwiKSkpOwogICAgIHJldHVybiBzbXBsOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXll
ck1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IDRjM2U1MWJjMjQyOTZjYWM1
YjA1YzBlZGIyZWNmMjZlY2Q3MTdkYzEuLjMxMmM2Mjc2ODgyYWFhNWY1NGNmMjJmMjc1MWI4NjQz
OGI0MTYwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
CkBAIC01MSw3ICs1MSw3IEBAIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3JlYXRlKE1lZGlhCiAKIHN0YXRpYyBIYXNo
U2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKICAgICBzdGF0aWMgYm9vbCBpc0lu
aXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIWlzSW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAK
aW5kZXggZDg2ZmQ4MWM0YzA2YjE3YTM2YjM3YmVmNjNjNmM5YmExMjQyODgxNi4uNDEwMDVkMGFk
ZGFlMmMzYmY0ZTg5ZTIyMDRjZjYyYTg0NDAyZTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKQEAgLTQ2LDE0ICs0
NiwxNCBAQCB0eXBlZGVmIEhhc2hNYXA8UHJvdGVjdGlvblNwYWNlLCBDcmVkZW50aWFsPiBQcm90
ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXA7CiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlVG9DcmVk
ZW50aWFsTWFwJiBwcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQcm90ZWN0aW9uU3Bh
Y2VUb0NyZWRlbnRpYWxNYXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChQcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAsIG1hcCwgKCkpOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4mIG9yaWdpbnNXaXRoQ3JlZGVu
dGlhbHMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNldCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNldCwgKCkpOwogICAgIHJldHVybiBzZXQ7
CiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvdGVjdGlv
blNwYWNlPiBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwOwogc3RhdGljIFBhdGhUb0Rl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIHBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcCwg
bWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCA1NGI4NWQ3ZjE2NjNjY2FiM2UyNzg2
ODI2ZGNiYzExZTNmZTVjNzM1Li5iZjBkNWE3MzU1Y2I2ZGVhZmY5ZmJmYjQzNTM0MzAzODNjYzli
MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJz
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJz
LmNwcApAQCAtMzUxLDE0ICszNTEsMTQgQEAgdm9pZCBmaW5kQ2hhcnNldEluTWVkaWFUeXBlKGNv
bnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBpbnQmIGNoYXJzZXRQb3MsIHUKIAogQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpSZWZsZWN0ZWRYU1NEaXNwb3NpdGlvbiBwYXJzZVhTU1Byb3Rl
Y3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIFN0cmluZyYgZmFpbHVyZVJlYXNvbiwg
dW5zaWduZWQmIGZhaWx1cmVQb3NpdGlvbiwgU3RyaW5nJiByZXBvcnRVUkwpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkVG9nZ2xlLCAoQVND
SUlMaXRlcmFsKCJleHBlY3RlZCAwIG9yIDEiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiZXhw
ZWN0ZWQgc2VtaWNvbG9uIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFp
bHVyZVJlYXNvbkludmFsaWRFcXVhbHMsIChBU0NJSUxpdGVyYWwoImV4cGVjdGVkIGVxdWFscyBz
aWduIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbklu
dmFsaWRNb2RlLCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlkIG1vZGUgZGlyZWN0aXZlIikpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRSZXBvcnQs
IChBU0NJSUxpdGVyYWwoImludmFsaWQgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25EdXBsaWNhdGVNb2RlLCAoQVNDSUlM
aXRlcmFsKCJkdXBsaWNhdGUgbW9kZSBkaXJlY3RpdmUiKSkpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGljYXRlUmVwb3J0LCAoQVNDSUlMaXRlcmFs
KCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkRGlyZWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJ1
bnJlY29nbml6ZWQgZGlyZWN0aXZlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFRvZ2dsZSwgKEFTQ0lJTGl0ZXJhbCgi
ZXhwZWN0ZWQgMCBvciAxIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiZXhw
ZWN0ZWQgc2VtaWNvbG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZEVxdWFscywgKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0
ZWQgZXF1YWxzIHNpZ24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkTW9kZSwgKEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCBt
b2RlIGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRSZXBvcnQsIChBU0NJSUxpdGVyYWwoImludmFsaWQg
cmVwb3J0IGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZmFpbHVyZVJlYXNvbkR1cGxpY2F0ZU1vZGUsIChBU0NJSUxpdGVyYWwoImR1cGxp
Y2F0ZSBtb2RlIGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkR1cGxpY2F0ZVJlcG9ydCwgKEFTQ0lJTGl0ZXJhbCgi
ZHVwbGljYXRlIHJlcG9ydCBkaXJlY3RpdmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkRGlyZWN0aXZlLCAoQVNDSUlM
aXRlcmFsKCJ1bnJlY29nbml6ZWQgZGlyZWN0aXZlIikpKTsKIAogICAgIHVuc2lnbmVkIHBvcyA9
IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCmluZGV4IGViNmIzZTM4ZDA4ZDhmNDAwOTBm
OWRhYWIzNTMyNThjN2U2MThmNTkuLmM5ZDBjZjE1ZjE4ODI2MmQzMDI2MjRjNTRlMDk5ZDIwNmNh
NTJhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNwcApAQCAtNTMsNyArNTMsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNyZWF0ZVByaXZhdGVCcm93cwogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgc2Vzc2lvbiwgKDApKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBzZXNzaW9uLCAo
MCkpOwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDJlZDQxZGIyMDk1YTNmYjRl
MGY0MTgwZDRmZTgyYzllMWJiYjRhYmYuLjhhNWYyN2IyODQ4N2YxYjkyMjRhNGZkZTU2MTQ0OGIz
ZmZiODIyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBCdWlsdGluUmVzb3VyY2VI
YW5kbGVDb25zdHJ1Y3Rvck1hcCYgYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAo
CiAjZWxzZQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAjZW5kaWYKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwLCBtYXAsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQnVpbHRpblJlc291cmNlSGFu
ZGxlQ29uc3RydWN0b3JNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKQEAgLTYx
LDcgKzYxLDcgQEAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgUmVzb3VyY2VIYW5kbGU6
OkJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcj4gQnVpbHRpblIKIHN0YXRpYyBCdWlsdGluUmVzb3Vy
Y2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCYgYnVpbHRpblJlc291cmNlSGFuZGxlU3luY2hy
b25vdXNMb2FkZXJNYXAoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChCdWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1h
cCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5S
ZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFwLCBtYXAsICgpKTsKICAgICByZXR1cm4g
bWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDVjMDU3ZWJiNDRlMWQ0N2QxNDk4ODc5ZTQx
ZDliMDVlYWMzMmRlNGEuLjM5MmU5YTQxYTQ3ZTFjMTcwNzA1Mzg1ZDMyODY4YWI1OTAxOWQxN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNw
b25zZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCkBAIC0yODgsMTIgKzI4OCwxMiBAQCBTdHJpbmcgUmVzb3VyY2VS
ZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVsZChjb25zdCBjaGFyKiBuYW1lKSBjb25zdAogCiB2
b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjp1cGRhdGVIZWFkZXJQYXJzZWRTdGF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGFnZUhlYWRlciwgKCJhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNh
Y2hlQ29udHJvbEhlYWRlciwgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBkYXRlSGVhZGVyLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGV4cGly
ZXNIZWFkZXIsICgiZXhwaXJlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbGFzdE1vZGlm
aWVkSGVhZGVyLCAoImxhc3QtbW9kaWZpZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBy
YWdtYUhlYWRlciwgKCJwcmFnbWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
ZywgYWdlSGVhZGVyLCAoImFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCBjYWNoZUNvbnRyb2xIZWFkZXIsICgiY2FjaGUtY29udHJvbCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBkYXRlSGVhZGVyLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZXhwaXJlc0hlYWRlciwgKCJleHBpcmVzIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxhc3RNb2RpZmllZEhlYWRlciwgKCJsYXN0LW1v
ZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhlYWRl
ciwgKCJwcmFnbWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgYWdlSGVhZGVyKSkKICAgICAgICAgbV9oYXZl
UGFyc2VkQWdlSGVhZGVyID0gZmFsc2U7CkBAIC0zNDgsMTEgKzM0OCwxMSBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2VCYXNlOjpwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMoKSBjb25zdAogICAg
IG1fY2FjaGVDb250cm9sQ29udGFpbnNOb0NhY2hlID0gZmFsc2U7CiAgICAgbV9jYWNoZUNvbnRy
b2xNYXhBZ2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogCi0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0
cmluZywgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub0NhY2hl
RGlyZWN0aXZlLCAoIm5vLWNhY2hlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBub1N0b3Jl
RGlyZWN0aXZlLCAoIm5vLXN0b3JlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtdXN0UmV2
YWxpZGF0ZURpcmVjdGl2ZSwgKCJtdXN0LXJldmFsaWRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIG1heEFnZURpcmVjdGl2ZSwgKCJtYXgtYWdlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0cmluZywgKCJjYWNoZS1jb250cm9sIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5vQ2FjaGVEaXJlY3RpdmUsICgibm8t
Y2FjaGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9TdG9yZURpcmVj
dGl2ZSwgKCJuby1zdG9yZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBt
dXN0UmV2YWxpZGF0ZURpcmVjdGl2ZSwgKCJtdXN0LXJldmFsaWRhdGUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWF4QWdlRGlyZWN0aXZlLCAoIm1heC1hZ2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBTdHJpbmcgY2FjaGVDb250
cm9sVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KGNhY2hlQ29udHJvbFN0cmluZyk7CiAg
ICAgaWYgKCFjYWNoZUNvbnRyb2xWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTM4Niw3ICszODYsNyBA
QCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpwYXJzZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMo
KSBjb25zdAogICAgICAgICAvLyBIYW5kbGUgUHJhZ21hOiBuby1jYWNoZQogICAgICAgICAvLyBU
aGlzIGlzIGRlcHJlY2F0ZWQgYW5kIGVxdWl2YWxlbnQgdG8gQ2FjaGUtY29udHJvbDogbm8tY2Fj
aGUKICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIHRva2VuaXppbmcgdGhlIHZhbHVlLCBpdCBpcyBu
b3QgaW1wb3J0YW50Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBwcmFnbWFIZWFkZXIsICgicHJhZ21hIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBwcmFnbWFIZWFkZXIsICgicHJhZ21hIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBTdHJpbmcgcHJhZ21hVmFsdWUgPSBtX2h0dHBI
ZWFkZXJGaWVsZHMuZ2V0KHByYWdtYUhlYWRlcik7CiAKICAgICAgICAgbV9jYWNoZUNvbnRyb2xD
b250YWluc05vQ2FjaGUgPSBwcmFnbWFWYWx1ZS5sb3dlcigpLmNvbnRhaW5zKG5vQ2FjaGVEaXJl
Y3RpdmUpOwpAQCAtNDE4LDggKzQxOCw4IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omhh
c0NhY2hlVmFsaWRhdG9yRmllbGRzKCkgY29uc3QKIHsKICAgICBsYXp5SW5pdChDb21tb25GaWVs
ZHNPbmx5KTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBs
YXN0TW9kaWZpZWRIZWFkZXIsICgibGFzdC1tb2RpZmllZCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgZVRhZ0hlYWRlciwgKCJldGFnIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGxhc3RNb2RpZmllZEhlYWRlciwgKCJsYXN0LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVUYWdIZWFkZXIsICgiZXRhZyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gIW1faHR0cEhlYWRlckZpZWxk
cy5nZXQobGFzdE1vZGlmaWVkSGVhZGVyKS5pc0VtcHR5KCkgfHwgIW1faHR0cEhlYWRlckZpZWxk
cy5nZXQoZVRhZ0hlYWRlcikuaXNFbXB0eSgpOwogfQogCkBAIC00NTAsNyArNDUwLDcgQEAgZG91
YmxlIFJlc291cmNlUmVzcG9uc2VCYXNlOjpkYXRlKCkgY29uc3QKICAgICBsYXp5SW5pdChDb21t
b25GaWVsZHNPbmx5KTsKIAogICAgIGlmICghbV9oYXZlUGFyc2VkRGF0ZUhlYWRlcikgewotICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwg
KCJkYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJO
YW1lLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
ICAgIG1fZGF0ZSA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFkZXIobV9odHRwSGVhZGVyRmllbGRzLCBo
ZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2VkRGF0ZUhlYWRlciA9IHRydWU7CiAgICAg
fQpAQCAtNDYyLDcgKzQ2Miw3IEBAIGRvdWJsZSBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6YWdlKCkg
Y29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAogICAgIGlmICghbV9oYXZl
UGFyc2VkQWdlSGVhZGVyKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJhZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgICAgIFN0cmluZyBoZWFkZXJWYWx1ZSA9IG1faHR0cEhlYWRl
ckZpZWxkcy5nZXQoaGVhZGVyTmFtZSk7CiAgICAgICAgIGJvb2wgb2s7CiAgICAgICAgIG1fYWdl
ID0gaGVhZGVyVmFsdWUudG9Eb3VibGUoJm9rKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBkb3VibGUg
UmVzb3VyY2VSZXNwb25zZUJhc2U6OmV4cGlyZXMoKSBjb25zdAogICAgIGxhenlJbml0KENvbW1v
bkZpZWxkc09ubHkpOwogCiAgICAgaWYgKCFtX2hhdmVQYXJzZWRFeHBpcmVzSGVhZGVyKSB7Ci0g
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1l
LCAoImV4cGlyZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhl
YWRlck5hbWUsICgiZXhwaXJlcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICAgICAgbV9leHBpcmVzID0gcGFyc2VEYXRlVmFsdWVJbkhlYWRlcihtX2h0dHBIZWFk
ZXJGaWVsZHMsIGhlYWRlck5hbWUpOwogICAgICAgICBtX2hhdmVQYXJzZWRFeHBpcmVzSGVhZGVy
ID0gdHJ1ZTsKICAgICB9CkBAIC00OTAsNyArNDkwLDcgQEAgZG91YmxlIFJlc291cmNlUmVzcG9u
c2VCYXNlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGxhenlJbml0KENvbW1vbkZpZWxkc09u
bHkpOwogCiAgICAgaWYgKCFtX2hhdmVQYXJzZWRMYXN0TW9kaWZpZWRIZWFkZXIpIHsKLSAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRlck5hbWUsICgi
bGFzdC1tb2RpZmllZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
aGVhZGVyTmFtZSwgKCJsYXN0LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgICAgICBtX2xhc3RNb2RpZmllZCA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFk
ZXIobV9odHRwSGVhZGVyRmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2Vk
TGFzdE1vZGlmaWVkSGVhZGVyID0gdHJ1ZTsKICAgICB9CkBAIC01MDEsMTMgKzUwMSwxMyBAQCBi
b29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjppc0F0dGFjaG1lbnQoKSBjb25zdAogewogICAgIGxh
enlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImNvbnRlbnQtZGlzcG9zaXRpb24i
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJjb250
ZW50LWRpc3Bvc2l0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIFN0cmluZyB2YWx1ZSA9IG1faHR0cEhlYWRlckZpZWxkcy5nZXQoaGVhZGVyTmFtZSk7CiAg
ICAgc2l6ZV90IGxvYyA9IHZhbHVlLmZpbmQoJzsnKTsKICAgICBpZiAobG9jICE9IG5vdEZvdW5k
KQogICAgICAgICB2YWx1ZSA9IHZhbHVlLmxlZnQobG9jKTsKICAgICB2YWx1ZSA9IHZhbHVlLnN0
cmlwV2hpdGVTcGFjZSgpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBhdHRhY2htZW50U3RyaW5nLCAoImF0dGFjaG1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgYXR0YWNobWVudFN0cmluZywgKCJhdHRhY2htZW50IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBlcXVhbElnbm9yaW5n
Q2FzZSh2YWx1ZSwgYXR0YWNobWVudFN0cmluZyk7CiB9CiAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAK
aW5kZXggMDZmMjdlNDg2YzhmYmFjNTlmY2E2MzdjNzk2MGNkZTkwODEzOTY0Yi4uMzg1ZGQ0Y2Yx
NzhiMWUxMjJlMDZiNzQzMmU0ZjA0Nzg2YzM4MGQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBA
IC04MSwxNCArODEsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgSGFzaFNldDxT
dHJpbmc+JiBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlSG9zdHMoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBob3N0cywgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGhvc3RzLCAoKSk7CiAgICAgcmV0
dXJuIGhvc3RzOwogfQogCiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxDRkRhdGFS
ZWY+PiYgY2xpZW50Q2VydHMoKQogewogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJldGFp
blB0cjxDRkRhdGFSZWY+PiBDZXJ0c01hcDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENlcnRz
TWFwLCBjZXJ0cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDZXJ0
c01hcCwgY2VydHMsICgpKTsKICAgICByZXR1cm4gY2VydHM7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxl
TWFuYWdlci5jcHAKaW5kZXggMmNmNWU2NzU0OWZhMjY3ZjAxNjA0Y2YyNjY5ZGUwMmFiNjA3NDFk
ZC4uNDJhZTNjODllOGQwZTMwZWZiZGY0NTc4Zjk1ZTczYjk3NWYwM2YyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAKQEAgLTEyOCw5ICsxMjgsOSBAQCBzdGF0aWMgY2hhciogY29va2ll
SmFyUGF0aCgpCiB9CiAKIHN0YXRpYyBNdXRleCogc2hhcmVkUmVzb3VyY2VNdXRleChjdXJsX2xv
Y2tfZGF0YSBkYXRhKSB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgY29va2llTXV0
ZXgsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHNoYXJlTXV0ZXgsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIGNvb2tpZU11dGV4LCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBkbnNNdXRleCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc2hhcmVNdXRleCwgKCkpOwog
CiAgICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNhc2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lF
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ndGsvQ3JlZGVu
dGlhbEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0
ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAppbmRleCAwODZkYmMxNWQ5Y2MxNjY2MjY4Y2Fj
NGM5Yjk2ZTY4MGY0ODE3MmE1Li5hODFjOTcwNThiNGQ2M2QyZTE0ZWFhNzdlY2RlMmUyZWExZDg1
Yzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVk
ZW50aWFsQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIENyZWRlbnRpYWxCYWNraW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNr
aW5nU3RvcmUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3JlZGVudGlhbEJhY2tpbmdT
dG9yZSwgYmFja2luZ1N0b3JlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKENyZWRlbnRpYWxCYWNraW5nU3RvcmUsIGJhY2tpbmdTdG9yZSwgKCkpOwogICAgIHJldHVy
biBiYWNraW5nU3RvcmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcAppbmRleCAzZjgwMmYxZjVkZWRjNzIwZjIx
MWE1N2Y2MTk3ZWJkMjZmN2YyOGU3Li43MDhiYjcwNmRlYmEzYmVlODA5ZDVmN2VmODYyYjMzZjJl
NGVjNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
Q29va2llSmFyU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL0Nvb2tpZUphclNvdXAuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBTb3VwQ29va2ll
SmFyKiBjb29raWVKYXJGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbikKIAogc3RhdGljIEdSZWZQdHI8U291cENvb2tpZUphcj4mIGRlZmF1bHRDb29raWVKYXIo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoR1JlZlB0cjxTb3VwQ29va2llSmFyPiwgY29v
a2llSmFyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdSZWZQdHI8
U291cENvb2tpZUphcj4sIGNvb2tpZUphciwgKCkpOwogICAgIHJldHVybiBjb29raWVKYXI7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggZGIwM2JhODNlOWFiNTY3NmRiMGM2NjQyNThh
ZDAwZmYxMmQyZTdkYi4uMjBhZWMzMTI2YzdlMjMwZjZmY2UzNTFiZjg4YmJlNDA4N2FiYjY4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTIzMiwxNCArMjMyLDE0IEBAIHN0YXRpYyBib29s
IGdJZ25vcmVTU0xFcnJvcnMgPSBmYWxzZTsKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYgYWxs
b3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8U3RyaW5nPiwgaG9zdHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBob3N0cywgKCkpOwogICAgIHJldHVybiBob3N0czsK
IH0KIAogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgSG9zdFRMU0NlcnRpZmljYXRlU2V0PiBDZXJ0
aWZpY2F0ZXNNYXA7CiBzdGF0aWMgQ2VydGlmaWNhdGVzTWFwJiBjbGllbnRDZXJ0aWZpY2F0ZXMo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ2VydGlmaWNhdGVzTWFwLCBjZXJ0aWZpY2F0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2VydGlmaWNhdGVz
TWFwLCBjZXJ0aWZpY2F0ZXMsICgpKTsKICAgICByZXR1cm4gY2VydGlmaWNhdGVzOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1
bmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9h
ZEJ1bmRsZVdpbi5jcHAKaW5kZXggMjgwZThjMGM1MjkxNjI3MDNjOGRiZjNiMTBiZjk2ODBhZWI0
ZjVlZC4uMWVhZDYyNDI2ZWFhNDdjZjRlY2RmNzM0MzJkNTQyYmQ5ZGFkOTg3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Rvd25sb2FkQnVu
ZGxlV2luLmNwcApAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgdWludDMyX3QgbWFnaWNOdW1iZXIo
KQogCiBjb25zdCBTdHJpbmcmIGZpbGVFeHRlbnNpb24oKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNpb24sIChBU0NJSUxpdGVyYWwoIi5kb3dubG9hZCIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZXh0
ZW5zaW9uLCAoQVNDSUlMaXRlcmFsKCIuZG93bmxvYWQiKSkpOwogICAgIHJldHVybiBleHRlbnNp
b247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWlj
U3RyaW5nS2V5ZWRNUlVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9t
aWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKaW5kZXggMjYyZmUxOTBlY2ExYjc5Y2RkMzgzZjZkYWM0
OWM5OTA2OWYzY2I0ZS4uOWE1M2NhNjJmMTkyN2FlYjNmMGQyMTg2MjEwZjg4ZmU5NzgwODM0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXll
ZE1SVUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJp
bmdLZXllZE1SVUNhY2hlLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFQgZ2V0KGNv
bnN0IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAgICAgICAgaWYgKGtleS5pc051bGwoKSkg
ewotICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChULCB2YWx1ZUZvck51bGwsIChjcmVh
dGVWYWx1ZUZvck51bGxLZXkoKSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFQsIHZhbHVlRm9yTnVsbCwgKGNyZWF0ZVZhbHVlRm9yTnVsbEtleSgpKSk7CiAg
ICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JOdWxsOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVs
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGlu
Z0RlZmF1bHQuY3BwCmluZGV4IDg1ZDg3YjU5ZmE4ODIyZDBmMzVjMzUyNmEzYWI2NWM4MDVhOTRj
OTIuLmQ2NDk1NDRiZThjYmMyMjA5NDg0YjkxYmJjN2Q4ZTY3ODJhZjllMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVs
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1h
cHBpbmdEZWZhdWx0LmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIFVTY3JpcHRDb2RlLCBEZWZhdWx0SGFzaDxTdHJpbmc+OjpIYXNoLCBTY3JpcHROYW1lQ29k
ZU1hCiAKIFVTY3JpcHRDb2RlIHNjcmlwdE5hbWVUb0NvZGUoY29uc3QgU3RyaW5nJiBzY3JpcHRO
YW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2NyaXB0TmFtZUNvZGVNYXAsIHNjcmlw
dE5hbWVDb2RlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNj
cmlwdE5hbWVDb2RlTWFwLCBzY3JpcHROYW1lQ29kZU1hcCwgKCkpOwogICAgIGlmIChzY3JpcHRO
YW1lQ29kZU1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
aXplb2Yoc2NyaXB0TmFtZUNvZGVMaXN0KSAvIHNpemVvZihTY3JpcHROYW1lQ29kZSk7ICsraSkK
ICAgICAgICAgICAgIHNjcmlwdE5hbWVDb2RlTWFwLnNldChBU0NJSUxpdGVyYWwoc2NyaXB0TmFt
ZUNvZGVMaXN0W2ldLm5hbWUpLCBzY3JpcHROYW1lQ29kZUxpc3RbaV0uY29kZSk7CkBAIC0zODks
NyArMzg5LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVVNjcmlwdENvZGUsIERlZmF1bHRI
YXNoPFN0cmluZz46Okhhc2gsIExvY2FsZVNjcmlwdE1hcEgKIAogVVNjcmlwdENvZGUgbG9jYWxl
VG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihjb25zdCBTdHJpbmcmIGxvY2FsZSkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsZVNjcmlwdE1hcCwgbG9jYWxlU2NyaXB0TWFwLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsZVNjcmlwdE1hcCwg
bG9jYWxlU2NyaXB0TWFwLCAoKSk7CiAgICAgaWYgKGxvY2FsZVNjcmlwdE1hcC5pc0VtcHR5KCkp
IHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YobG9jYWxlU2NyaXB0TGlz
dCkgLyBzaXplb2YoTG9jYWxlU2NyaXB0KTsgKytpKQogICAgICAgICAgICAgbG9jYWxlU2NyaXB0
TWFwLnNldChBU0NJSUxpdGVyYWwobG9jYWxlU2NyaXB0TGlzdFtpXS5sb2NhbGUpLCBsb2NhbGVT
Y3JpcHRMaXN0W2ldLnNjcmlwdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDlkOTQwNjZiNGQzMmQwYzViY2FlMjdhZmQ0
YzQzNTgzNGIwZGQzYmQuLjEwOGQzYjY1ZGM3OTU1YmMwNDUyMTU1NjYxNzU2MTJlYTIwZjNhZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVBbmRT
d2FwTm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXQKICNpZiBF
TkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICAgICByZXR1cm4gV1RGOjp3ZWFrQ29tcGFyZUFuZFN3
YXAocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJh
dG9yKSwgZXhwZWN0ZWQsIG5ld1ZhbHVlKTsKICNlbHNlCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChzdGQ6Om11dGV4LCBub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yTXV0ZXgsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoc3RkOjptdXRleCwgbm9uU2hhcmVk
Q2hhcmFjdGVyQnJlYWtJdGVyYXRvck11dGV4LCAoKSk7CiAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6bXV0ZXg+IGxvY2tlcihub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yTXV0ZXgpOwog
ICAgIGlmIChub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yICE9IGV4cGVjdGVkKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9j
Zi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCAwZGVkYTg3ZmNjN2FiZDk3OTliNmI0YWI4MWQwMjVk
YmFmYWU2YmRkLi5jNzgwMmI5YjAxOWExNTQwNjY3M2E1N2I4NzdhNTNmY2ViMmVmMzc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvY2YvSHlwaGVuYXRpb25DRi5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBBdG9taWNTdHJpbmdLZXll
ZE1SVUNhY2hlPFJldGFpblB0cjxDRkxvY2FsZVJlZj4+OjpjcmVhdGUKIAogc3RhdGljIEF0b21p
Y1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENGTG9jYWxlUmVmPj4mIGNmTG9jYWxlQ2Fj
aGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNo
ZTxSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+PiwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZTxSZXRhaW5QdHI8Q0ZM
b2NhbGVSZWY+PiwgY2FjaGUsICgpKTsKICAgICByZXR1cm4gY2FjaGU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JX
Y2hhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3djaGFyL1RleHRCcmVha0l0
ZXJhdG9yV2NoYXIuY3BwCmluZGV4IDgzMGVkNTU0YmMxMmE3MzI3ZmEwNjQwNTgzYzY5NGYwZTRl
MjYzYTkuLjdmNDUxOTkzZTdjM2IzNjRhNjhkYzhkNTRjZWU3ODBiNzhkM2I5YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JX
Y2hhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93Y2hhci9UZXh0QnJl
YWtJdGVyYXRvcldjaGFyLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIGludCBTZW50ZW5jZUJyZWFr
SXRlcmF0b3I6OnByZXZpb3VzKCkKIAogVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJh
dG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChXb3JkQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoV29yZEJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CiAg
ICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwogICAgIHJldHVybiAmaXRlcmF0b3I7
CiB9CkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4
dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNlbnRlbmNlQnJlYWtJdGVyYXRvciwg
aXRlcmF0b3IsICgpKTsKICAgICBpdGVyYXRvci5yZXNldChzdHJpbmcsIGxlbmd0aCk7CiAgICAg
cmV0dXJuICZpdGVyYXRvcjsKIH0KQEAgLTM0MCw3ICszNDAsNyBAQCBib29sIGlzV29yZFRleHRC
cmVhayhUZXh0QnJlYWtJdGVyYXRvciopCiAKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDaGFyQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2hhckJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9y
LCAoKSk7CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgpOwogICAgIHJldHVybiAm
aXRlcmF0b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW4vTG9jYWxl
V2luLmNwcAppbmRleCA3MDdhNTUzMDU0YjU1MGNkNjZlZDYzNWUyNjRlYzYxYzViM2M1OTk1Li5h
YjAzNmFhMGQxMDBlMDFhNDA5YzExYzcxYWExZjBkNzk0ZjQ1NDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdGF0aWMgTENJRCBXSU5BUEkgY29udmVydExvY2FsZU5hbWVUb0xDSUQoTFBDV1NUUiBuYW1l
LCBEV09SRCkKIHsKICAgICBpZiAoIW5hbWUgfHwgIW5hbWVbMF0pCiAgICAgICAgIHJldHVybiBM
T0NBTEVfVVNFUl9ERUZBVUxUOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTmFtZVRvTENJRE1h
cCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE5hbWVUb0xD
SURNYXAsIG1hcCwgKCkpOwogICAgIGVuc3VyZU5hbWVUb0xDSURNYXAobWFwKTsKICAgICBTdHJp
bmcgbG9jYWxlTmFtZSA9IFN0cmluZyhuYW1lKS5yZXBsYWNlKCdfJywgJy0nKS5sb3dlcigpOwog
ICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9h
cmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggMzEyMDM5NjQ5NjAyOTc4ZDhlNGRhMGIyZTIxMDMxNmVj
MGY4NjcwMi4uMjEyMWU0ZmQzY2U1MTQ5N2M5YWM5OWFhN2NlOGQ4OWE3YjAxODVmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dp
bi5jcHAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIG1hcmt1cFRvQ0ZIVE1MKGNvbnN0IFN0cmlu
ZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIHNyY1VSTCwgVmVjdG9yPGNoYXI+JiByZQogCiB2b2lk
IHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0cikKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgd2luZG93c05ld2xpbmUsIChBU0NJSUxp
dGVyYWwoIlxyXG4iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIHdpbmRvd3NOZXdsaW5lLCAoQVNDSUlMaXRlcmFsKCJcclxuIikpKTsKICAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBzdHIu
bGVuZ3RoKCk7ICsraW5kZXgpIHsKICAgICAgICAgaWYgKHN0cltpbmRleF0gIT0gJ1xuJyB8fCAo
aW5kZXggPiAwICYmIHN0cltpbmRleCAtIDFdID09ICdccicpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4IGU4MTRlYzM1ZDJhMDk5YTdhZTZj
ZDI4ZjU3YzJhZDg4ZmE1MzhlYjIuLmYxYjhhYWQ5ODVhOGVhYWY4Y2IxYTg4YWZkNjlmNmQ5ZmQx
N2RjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVt
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5j
cHAKQEAgLTI1NCw3ICsyNTQsNyBAQCBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcm
IHBhdGgpCiAKIHN0YXRpYyBTdHJpbmcgYnVuZGxlTmFtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIG5hbWUsIChBU0NJSUxpdGVyYWwoIldlYktpdCIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbmFtZSwgKEFTQ0lJTGl0ZXJhbCgi
V2ViS2l0IikpKTsKIAogI2lmIFVTRShDRikKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZDsK
QEAgLTI4Myw3ICsyODMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQg
cGF0aElkZW50aWZpZXIpCiAgICAgYnVmZmVyLnJlc2l6ZSh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkp
OwogICAgIFN0cmluZyBkaXJlY3RvcnkgPSBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiAKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29tcGFueU5hbWVEaXJlY3RvcnksIChBU0NJSUxp
dGVyYWwoIkFwcGxlIENvbXB1dGVyXFwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGNvbXBhbnlOYW1lRGlyZWN0b3J5LCAoQVNDSUlMaXRlcmFsKCJBcHBs
ZSBDb21wdXRlclxcIikpKTsKICAgICBkaXJlY3RvcnkgPSBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoZGlyZWN0b3J5LCBjb21wYW55TmFtZURpcmVjdG9yeSArIGJ1bmRsZU5hbWUoKSk7CiAgICAg
aWYgKCFtYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAppbmRleCBhNWZh
ODRjYzBhZDM5NGVkYzgzZjExYTIxMjM4NWZhMTM1NjcwOWYxLi4xNGZjY2YxYWNmZjIyYTA1NGU4
M2RmYzA0MzJmMjJjYWY3MDg3YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRh
dGFiYXNlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgYm9vbCBnUGVyc2lzdGVudFBsdWdp
bk1ldGFkYXRhQ2FjaGVJc0VuYWJsZWQ7CiAKIFN0cmluZyYgcGVyc2lzdGVudFBsdWdpbk1ldGFk
YXRhQ2FjaGVQYXRoKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY2FjaGVQ
YXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY2Fj
aGVQYXRoLCAoKSk7CiAgICAgcmV0dXJuIGNhY2hlUGF0aDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKaW5k
ZXggMzlhZTc5NGUyZmIwOTcyMTlhNTIyM2ViZmJlZWRmNjliNmUyODYyYy4uY2EwNTc5ZTU4OTlj
YzE1ODhmOGQ2ZWQ5OWU0YjJkMTgxZWI2NzZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlciYgUGx1Z2lu
TWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIsIHNjaGVkdWxlciwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLCBzY2hl
ZHVsZXIsICgpKTsKIAogICAgIHJldHVybiBzY2hlZHVsZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA3YWJjNjI2ZGZkNmE1MDdkYTRhYjVhNTRiMjc2
MzVjYzAwNGE5YTI2Li5lMzgxYTA2MDk0YWNiYmJjZjUyZGMxZjQzMDE4ZTg1ZDJmNzM5NWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTI0MTMsNyArMjQx
Myw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6YmxvY2tFbGVtZW50Q29udGludWF0aW9u
KCkgY29uc3QKICAgICAKIHN0YXRpYyBDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXAqIGNvbnRp
bnVhdGlvbk91dGxpbmVUYWJsZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb250aW51
YXRpb25PdXRsaW5lVGFibGVNYXAsIHRhYmxlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcCwgdGFibGUsICgpKTsKICAg
ICByZXR1cm4gJnRhYmxlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDc3Mjg0MjU1OTQwMWI1NWJlNzRmNjA1MWRm
ZDk1MzUzODNmYmM0NzIuLjUzZTlmNjE1OGRlMmUyNTAyYTVjNmIzN2YyNThkOTBmYmYzZTk1ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCkBAIC0yMDU5LDcgKzIwNTksNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6Y2hlY2tM
aW5lc0ZvclRleHRPdmVyZmxvdygpCiAgICAgLy8gRGV0ZXJtaW5lIHRoZSB3aWR0aCBvZiB0aGUg
ZWxsaXBzaXMgdXNpbmcgdGhlIGN1cnJlbnQgZm9udC4KICAgICAvLyBGSVhNRTogQ1NTMyBzYXlz
IHRoaXMgaXMgY29uZmlndXJhYmxlLCBhbHNvIG5lZWQgdG8gdXNlIDB4MDAyRSAoRlVMTCBTVE9Q
KSBpZiBob3Jpem9udGFsIGVsbGlwc2lzIGlzICJub3QgcmVuZGVyYWJsZSIKICAgICBjb25zdCBG
b250JiBmb250ID0gc3R5bGUoKS5mb250KCk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAo
Jmhvcml6b250YWxFbGxpcHNpcywgMSkpOwogICAgIGNvbnN0IEZvbnQmIGZpcnN0TGluZUZvbnQg
PSBmaXJzdExpbmVTdHlsZSgpLmZvbnQoKTsKICAgICBpbnQgZmlyc3RMaW5lRWxsaXBzaXNXaWR0
aCA9IGZpcnN0TGluZUZvbnQud2lkdGgoY29uc3RydWN0VGV4dFJ1bih0aGlzLCBmaXJzdExpbmVG
b250LCAmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBmaXJzdExpbmVTdHlsZSgpKSk7CiAgICAgaW50
IGVsbGlwc2lzV2lkdGggPSAoZm9udCA9PSBmaXJzdExpbmVGb250KSA/IGZpcnN0TGluZUVsbGlw
c2lzV2lkdGggOiBmb250LndpZHRoKGNvbnN0cnVjdFRleHRSdW4odGhpcywgZm9udCwgJmhvcml6
b250YWxFbGxpcHNpcywgMSwgc3R5bGUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb21iaW5lVGV4dC5jcHAKaW5kZXggZGQ0ZmQzMTdiZjJmNmY1Zjg3YTk0YTI2YTBl
OGE2NzFkNjVkMTQ0MC4uZmZlZTAwZjE3MzY2ODMxZWE2Y2IxYWQyMjhlZjBiMGFjN2JkNzk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCkBA
IC0xMzksNyArMTM5LDcgQEAgdm9pZCBSZW5kZXJDb21iaW5lVGV4dDo6Y29tYmluZVRleHQoKQog
ICAgICAgICBtX2NvbWJpbmVGb250U3R5bGUtPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKTsK
IAogICAgIGlmIChtX2lzQ29tYmluZWQpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCAoJm9iamVjdFJlcGxhY2Vt
ZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyU3RyaW5nLCAoJm9iamVjdFJlcGxh
Y2VtZW50Q2hhcmFjdGVyLCAxKSk7CiAgICAgICAgIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5h
bChvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmluZy5pbXBsKCkpOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA1ZmFhZjE5ZjQy
YjY5MmQxODgwMmNlOWQ0MDM3N2IyNWIzNzU5OGZiLi4xZmQ5ZGM5ODQwYzU3ODI1ZGUxNDA1MGE5
YmQ0YjhlOWQxMmUxN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50
ZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBDb3VudGVyTm9kZSogbWFrZUNvdW50ZXJO
b2RlKFJlbmRlck9iamVjdCosIGNvbnN0IEF0b21pY1N0cmluZyYgaWRlbnRpZmllCiAKIHN0YXRp
YyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Q291bnRlck1hcHMsIHN0YXRpY0NvdW50ZXJNYXBzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKENvdW50ZXJNYXBzLCBzdGF0aWNDb3VudGVyTWFwcywgKCkpOwogICAg
IHJldHVybiBzdGF0aWNDb3VudGVyTWFwczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA4ZDlj
NmMxMWFlYjU3YjU1ZWQxNDAxYTc3ZjVmZDg4MTJkYjZkOTBhLi41ODU4NTE3Y2Q4Yzk1OGU4OGZm
OTNmZTVlYTcxODNkYWFlZThhOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtOTk2LDggKzk5Niw4
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcChGbGV4
Qm94SXRlcmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBjb25zdCBVQ2hhciBlbGxpcHNpc0FuZFNwYWNlWzJdID0geyBob3Jpem9udGFsRWxsaXBz
aXMsICcgJyB9OwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZWxs
aXBzaXNBbmRTcGFjZVN0ciwgKGVsbGlwc2lzQW5kU3BhY2UsIDIpKTsKLSAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250YWxFbGxp
cHNpcywgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBlbGxpcHNpc0FuZFNwYWNlU3RyLCAoZWxsaXBzaXNBbmRTcGFjZSwgMikpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNp
c1N0ciwgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5
bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9PSAxID8gZmlyc3RMaW5lU3R5bGUoKSA6
IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBsaW5lU3R5bGUuZm9udCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAppbmRl
eCBiYmFiMjc5YjcxZTc3ZWI2NjAxMDI3MjE2NzdhMDA0NjkzZGJiNWZiLi5kODE4M2M3ZmUxZjA4
ZTliNTNlODFhZjI4MzhjY2I2YjY3MjJiMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKQEAgLTgzLDkgKzgzLDkgQEAgYm9vbCBSZW5kZXJJ
bnB1dFNwZWVjaDo6cGFpbnRJbnB1dEZpZWxkU3BlZWNoQnV0dG9uKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdAogICAgIC8vIEFjY291bnQgZm9yIHRoZSBsb2NhbCBkcmF3aW5nIG9mZnNldC4K
ICAgICBidXR0b25SZWN0Lm1vdmVCeShyZWN0LmxvY2F0aW9uKCkpOwogCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlTm9ybWFsLCAoSW1hZ2U6OmxvYWRQ
bGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaCIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlUmVjb3JkaW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9y
bVJlc291cmNlKCJpbnB1dFNwZWVjaFJlY29yZGluZyIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlV2FpdGluZywgKEltYWdlOjpsb2FkUGxhdGZv
cm1SZXNvdXJjZSgiaW5wdXRTcGVlY2hXYWl0aW5nIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUmVmUHRyPEltYWdlPiwgaW1hZ2VTdGF0ZU5vcm1hbCwgKEltYWdlOjps
b2FkUGxhdGZvcm1SZXNvdXJjZSgiaW5wdXRTcGVlY2giKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlUmVjb3JkaW5nLCAoSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaFJlY29yZGluZyIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxJbWFnZT4sIGltYWdlU3RhdGVX
YWl0aW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaFdhaXRpbmci
KSkpOwogCiAgICAgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQqIHNwZWVjaEJ1dHRvbiA9
IHRvSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQoZWxlbWVudCk7CiAgICAgSW1hZ2UqIGlt
YWdlID0gaW1hZ2VTdGF0ZU5vcm1hbC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IDAzMzg3Y2Y0ZTZkNDRjNWM4ZWVkZDk1MjYyYmE2ZWIzYzhkNTBm
MTYuLmEyZDY1M2RlNjVlMmYyMDVjYjM3YTBjYzYzOTM1Mzk4Y2FiYWM4YTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQzNSwxMiArMzQzNSwxMiBAQCB2
b2lkIFJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNpemVySW1hZ2UoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBMYXlvdQogICAgIFJlZlB0cjxJbWFnZT4gcmVzaXplQ29ybmVySW1h
Z2U7CiAgICAgSW50U2l6ZSBjb3JuZXJSZXNpemVyU2l6ZTsKICAgICBpZiAocmVuZGVyZXIoKS5k
b2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkgPj0gMikgewotICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEltYWdlKiwgcmVzaXplQ29ybmVySW1hZ2VIaVJlcywgKEltYWdlOjpsb2FkUGxh
dGZvcm1SZXNvdXJjZSgidGV4dEFyZWFSZXNpemVDb3JuZXJAMngiKS5sZWFrUmVmKCkpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdlKiwgcmVzaXplQ29ybmVy
SW1hZ2VIaVJlcywgKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgidGV4dEFyZWFSZXNpemVD
b3JuZXJAMngiKS5sZWFrUmVmKCkpKTsKICAgICAgICAgcmVzaXplQ29ybmVySW1hZ2UgPSByZXNp
emVDb3JuZXJJbWFnZUhpUmVzOwogICAgICAgICBjb3JuZXJSZXNpemVyU2l6ZSA9IHJlc2l6ZUNv
cm5lckltYWdlLT5zaXplKCk7CiAgICAgICAgIGNvcm5lclJlc2l6ZXJTaXplLnNjYWxlKDAuNWYp
OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2UqLCByZXNp
emVDb3JuZXJJbWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJ0ZXh0QXJl
YVJlc2l6ZUNvcm5lciIpLmxlYWtSZWYoKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSW1hZ2UqLCByZXNpemVDb3JuZXJJbWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQ
bGF0Zm9ybVJlc291cmNlKCJ0ZXh0QXJlYVJlc2l6ZUNvcm5lciIpLmxlYWtSZWYoKSkpOwogICAg
ICAgICByZXNpemVDb3JuZXJJbWFnZSA9IHJlc2l6ZUNvcm5lckltYWdlTG9SZXM7CiAgICAgICAg
IGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcApp
bmRleCA5YjlmNjcxNTVjYmFiMTQ1NjYwZWEyM2IzODU5ZGY1MzY3ZGRjOGYxLi43OWI1ZDgyMGY2
MWRkNmY0ZGZhMjgyOWFlOWVhNGFiNTJmZTU0YTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTY3JvbGxiYXJUaGVtZSogUmVuZGVyU2Nyb2xsYmFy
VGhlbWU6OnJlbmRlclNjcm9sbGJhclRoZW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFJlbmRlclNjcm9sbGJhclRoZW1lLCB0aGVtZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChSZW5kZXJTY3JvbGxiYXJUaGVtZSwgdGhlbWUsICgpKTsKICAgICByZXR1
cm4gJnRoZW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApp
bmRleCAyOTE5Y2I4N2U3NjNkMTc3YjAzOWNiOThiZTk3YzRhYTY4N2YyZjEwLi41ZjBjNjkzYmNm
NTI3MTgxNzQ5MGFiMDg2ZDMyNThiZGRiNGU0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogc3RhdGljIENvbG9yJiBjdXN0b21Gb2N1c1JpbmdDb2xvcigpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDb2xvciwgY29sb3IsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ29sb3IsIGNvbG9yLCAoKSk7CiAgICAgcmV0dXJuIGNvbG9yOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggZGFkMTJi
OWZlNzg0MTI0NGViNjFhNGRkMWNiNWEwNWNkNDlmOGNmZS4uYTdkMTJmZjNiMzJhMzRjNmNjNGRm
ZTNiMWYxOGNjODI1NzcyYmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtMjgyLDEzICsyODIsMTMgQEAgc3RhdGljIEZvbnRXZWlnaHQgdG9Gb250
V2VpZ2h0KE5TSW50ZWdlciBhcHBLaXRGb250V2VpZ2h0KQogCiB2b2lkIFJlbmRlclRoZW1lTWFj
OjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgY3NzVmFsdWVJZCwgRm9udERlc2NyaXB0aW9uJiBmb250
RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3Jp
cHRpb24sIHN5c3RlbUZvbnQsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNj
cmlwdGlvbiwgc21hbGxTeXN0ZW1Gb250LCAoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChG
b250RGVzY3JpcHRpb24sIG1lbnVGb250LCAoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChG
b250RGVzY3JpcHRpb24sIGxhYmVsRm9udCwgKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Rm9udERlc2NyaXB0aW9uLCBtaW5pQ29udHJvbEZvbnQsICgpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21hbGxDb250cm9sRm9udCwgKCkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9udCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9u
LCBzbWFsbFN5c3RlbUZvbnQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoRm9udERlc2NyaXB0aW9uLCBtZW51Rm9udCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxhYmVsRm9udCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIG1pbmlDb250cm9sRm9u
dCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRp
b24sIHNtYWxsQ29udHJvbEZvbnQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9udCwgKCkpOwogCiAgICAgRm9udERlc2Ny
aXB0aW9uKiBjYWNoZWREZXNjOwogICAgIE5TRm9udCogZm9udCA9IG5pbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggOWJjMDIyYzY0NzUzNTk5NzJmNTk3
MWMyMDU0YTk2NmE4OTBjNzYzNi4uNzViYTViMTRjMGZkNDJjYmYwMzMyMGViMzUxYzg1NWVmZjll
N2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgdW5zaWduZWQgV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29w
ZTo6c193aWRnZXRIaWVyYXJjaHlVcGRhdGVTdXNwZW5kQ28KIAogV2lkZ2V0SGllcmFyY2h5VXBk
YXRlc1N1c3BlbnNpb25TY29wZTo6V2lkZ2V0VG9QYXJlbnRNYXAmIFdpZGdldEhpZXJhcmNoeVVw
ZGF0ZXNTdXNwZW5zaW9uU2NvcGU6OndpZGdldE5ld1BhcmVudE1hcCgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChXaWRnZXRUb1BhcmVudE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpZGdldFRvUGFyZW50TWFwLCBtYXAsICgpKTsKICAgICBy
ZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5j
cHAKaW5kZXggZjAzNmY1NGRmZGY3NDRhOTNiNDcwNzc0NWUzNDQ2MmI5NjI3Y2UxOS4uYjJkOTVh
OWVmMWNiYTA0OTg2MWM3NzBkY2ZjZWE4NmIwMDMwYmU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdHJ1Y3QgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyB7CiBzdGF0aWMgY29uc3QgVmVjdG9yPFF1YWxpZmllZE5hbWU+
JiBmb3JtSW5wdXRUYWdzKCkKIHsKICAgICAvLyBSZXR1cm5zIHRoZSB0YWdzIGZvciB0aGUgZm9y
bSBpbnB1dCBlbGVtZW50cy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxRdWFsaWZp
ZWROYW1lPiwgZm9ybUlucHV0VGFncywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChWZWN0b3I8UXVhbGlmaWVkTmFtZT4sIGZvcm1JbnB1dFRhZ3MsICgpKTsKICAgICBp
ZiAoZm9ybUlucHV0VGFncy5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9ybUlucHV0VGFncy5hcHBl
bmQoaW5wdXRUYWcpOwogICAgICAgICBmb3JtSW5wdXRUYWdzLmFwcGVuZChidXR0b25UYWcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKaW5kZXggZDViYmRiOTJkYjQ5
MTAzZDhiNzJiYzVmNWZjZmUwMmI1ZjQwNmRjNS4uYWYzNDI1N2FlMGEzMWVmZmY5YzkxZTA3ZmNj
MzE5MDc2OWViNjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQ
YWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3Bw
CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKICAgICAg
ICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHVwZGF0ZUdy
YXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9z
YXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFpbnRTdHlsZSwgVXNlRW1waGFzaXNNYXJr
Q29sb3IpOwogCi0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4sIG9iamVj
dFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rl
ciwgMSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRleHRS
dW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVu
dENoYXJhY3RlciwgMSkpOwogICAgICAgICAgICAgVGV4dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1
biA9IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDog
bV90ZXh0UnVuOwogICAgICAgICAgICAgRmxvYXRQb2ludCBlbXBoYXNpc01hcmtUZXh0T3JpZ2lu
ID0gbV9jb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBtX2JveFJlY3Qu
d2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBtX2ZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQo
KSkgOiBtX3RleHRPcmlnaW47CiAgICAgICAgICAgICBpZiAobV9jb21iaW5lZFRleHQpCkBAIC0x
NDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKICAgICAgICAgaWYg
KCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERy
YXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25QYWludFN0eWxlLCBVc2VFbXBoYXNpc01hcmtD
b2xvcik7CiAKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
LCAxKSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1
biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50
Q2hhcmFjdGVyLCAxKSk7CiAgICAgICAgICAgICBUZXh0UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVu
ID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclRleHRSdW4gOiBt
X3RleHRSdW47CiAgICAgICAgICAgICBGbG9hdFBvaW50IGVtcGhhc2lzTWFya1RleHRPcmlnaW4g
PSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIG1fYm94UmVjdC53
aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIG1fZm9udC5mb250TWV0cmljcygpLmFzY2VudCgp
KSA6IG1fdGV4dE9yaWdpbjsKICAgICAgICAgICAgIGlmIChtX2NvbWJpbmVkVGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCmluZGV4IGU0Y2ViYzNiYWU0
MDUzNTUzYzI0NTgwODMzNTZjMDIzMzUwYzU4ZDcuLmU3N2VhZThkYjNiYTEwNWYwMDUyYjc4MTU3
YTY1MDI2ODdlNTQzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZUluZm8uaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxj
b25zdCBLZXlUeXBlKiwgc3RkOjp1bmlxdWVfcHRyPEluZm9UeXBlPj4gSW5mb01hcDsKICAgICBz
dGF0aWMgSW5mb01hcCYgaW5mb01hcCgpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgpKTsKICAgICAgICAgcmV0
dXJuIHN0YXRpY0luZm9NYXA7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCmluZGV4IGQxYzY2OTI2M2FjYWVlZTlmYWQzOTI5YmI0
OWFiNDZlNmZlNjg2ZTguLmEwMWI1Mjk0ZDVhYWNjNzVhZDIxZDNhNGI2NTViMmI5YTc2OTE2MmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXpl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRUcmFja1NpemUuaApA
QCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fbWluVHJh
Y2tCcmVhZHRoLmlzTGVuZ3RoKCkgfHwgIW1fbWluVHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5k
ZWZpbmVkKCkpOwogICAgICAgICBpZiAobV9taW5UcmFja0JyZWFkdGguaXNMZW5ndGgoKSAmJiBt
X21pblRyYWNrQnJlYWR0aC5sZW5ndGgoKS5pc0F1dG8oKSkgewotICAgICAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChHcmlkTGVuZ3RoLCBtaW5Db250ZW50LCAoTWluQ29udGVudCkpOworICAg
ICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdyaWRMZW5ndGgsIG1pbkNv
bnRlbnQsIChNaW5Db250ZW50KSk7CiAgICAgICAgICAgICByZXR1cm4gbWluQ29udGVudDsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9taW5UcmFja0JyZWFkdGg7CkBAIC04Miw3ICs4Miw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9tYXhUcmFja0JyZWFkdGguaXNM
ZW5ndGgoKSB8fCAhbV9tYXhUcmFja0JyZWFkdGgubGVuZ3RoKCkuaXNVbmRlZmluZWQoKSk7CiAg
ICAgICAgIGlmIChtX21heFRyYWNrQnJlYWR0aC5pc0xlbmd0aCgpICYmIG1fbWF4VHJhY2tCcmVh
ZHRoLmxlbmd0aCgpLmlzQXV0bygpKSB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEdyaWRMZW5ndGgsIG1heENvbnRlbnQsIChNYXhDb250ZW50KSk7CisgICAgICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR3JpZExlbmd0aCwgbWF4Q29udGVudCwgKE1heENv
bnRlbnQpKTsKICAgICAgICAgICAgIHJldHVybiBtYXhDb250ZW50OwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX21heFRyYWNrQnJlYWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdlNWExMDQzYzIzZjBiYmM5NjE2MzQyNWNl
YzQ0MGU2YjY5OTY2ZGIuLjI5MjhkMTFiYmVlYTdiNzNiYTc2YTA2NzFkMTAyYWYxOGViZjFiOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtMTE2Niw4ICsxMTY2LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlw
aGVuU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGh5cGhlbmF0aW9uU3RyaW5nOwogCiAg
ICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBvbiBsb2NhbGUuCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGh5cGhlbk1pbnVzU3RyaW5nLCAoJmh5cGhlbk1pbnVz
LCAxKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGh5cGhlblN0cmlu
ZywgKCZoeXBoZW4sIDEpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBoeXBoZW5NaW51c1N0cmluZywgKCZoeXBoZW5NaW51cywgMSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGh5cGhlblN0cmluZywg
KCZoeXBoZW4sIDEpKTsKICAgICByZXR1cm4gZm9udCgpLnByaW1hcnlGb250SGFzR2x5cGhGb3JD
aGFyYWN0ZXIoaHlwaGVuKSA/IGh5cGhlblN0cmluZyA6IGh5cGhlbk1pbnVzU3RyaW5nOwogfQog
CkBAIC0xMTc5LDI4ICsxMTc5LDI4IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6
OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdAogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFy
a0N1c3RvbToKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsoKTsKICAgICBj
YXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZidWxsZXQsIDEpKTsKLSAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxs
ZXQsIDEpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgZmlsbGVkRG90U3RyaW5nLCAoJmJ1bGxldCwgMSkpOworICAgICAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuRG90U3RyaW5nLCAoJndoaXRl
QnVsbGV0LCAxKSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVt
cGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdFN0cmluZyA6IG9wZW5Eb3RTdHJpbmc7CiAgICAg
fQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0NpcmNsZTogewotICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkQ2lyY2xlU3RyaW5nLCAoJmJsYWNrQ2lyY2xl
LCAxKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuQ2ly
Y2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZENpcmNsZVN0cmluZywgKCZibGFja0Np
cmNsZSwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7CiAgICAgICAgIHJl
dHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxl
ZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVt
cGhhc2lzTWFya0RvdWJsZUNpcmNsZTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZpc2hleWUsIDEpKTsKLSAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5Eb3VibGVDaXJjbGVT
dHJpbmcsICgmYnVsbHNleWUsIDEpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3RyaW5nLCAoJmZpc2hleWUs
IDEpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywgKCZidWxsc2V5ZSwgMSkpOwogICAgICAgICByZXR1
cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBoYXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWRE
b3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91YmxlQ2lyY2xlU3RyaW5nOwogICAgIH0KICAgICBj
YXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5nbGVTdHJpbmcsICgmYmxhY2tVcFBvaW50aW5n
VHJpYW5nbGUsIDEpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRU
cmlhbmdsZVN0cmluZywgKCZibGFja1VwUG9pbnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuVHJpYW5nbGVT
dHJpbmcsICgmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKICAgICAgICAgcmV0dXJuIHRl
eHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkVHJpYW5n
bGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhh
c2lzTWFya1Nlc2FtZTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgZmlsbGVkU2VzYW1lU3RyaW5nLCAoJnNlc2FtZURvdCwgMSkpOwotICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNlc2FtZVN0cmluZywgKCZ3aGl0ZVNlc2Ft
ZURvdCwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJpbmcsICgmc2VzYW1lRG90LCAxKSk7CisgICAgICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJp
bmcsICgmd2hpdGVTZXNhbWVEb3QsIDEpKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0Zp
bGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8gZmlsbGVkU2VzYW1lU3RyaW5nIDogb3Bl
blNlc2FtZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrQXV0bzoKQEAg
LTEyMTUsMTMgKzEyMTUsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4
dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiYgUmVuZGVyU3R5bGU6OmluaXRp
YWxEYXNoYm9hcmRSZWdpb25zKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxT
dHlsZURhc2hib2FyZFJlZ2lvbj4sIGVtcHR5TGlzdCwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+LCBlbXB0eUxpc3Qs
ICgpKTsKICAgICByZXR1cm4gZW1wdHlMaXN0OwogfQogCiBjb25zdCBWZWN0b3I8U3R5bGVEYXNo
Ym9hcmRSZWdpb24+JiBSZW5kZXJTdHlsZTo6bm9uZURhc2hib2FyZFJlZ2lvbnMoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiwgbm9uZUxp
c3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxl
RGFzaGJvYXJkUmVnaW9uPiwgbm9uZUxpc3QsICgpKTsKICAgICBzdGF0aWMgYm9vbCBub25lTGlz
dEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIW5vbmVMaXN0SW5pdGlhbGl6ZWQpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggYWUw
ODc1ZDA3ZWQyMjBlZmU2MGM0ZmRlNzdkZDBjMjZmY2ZjZWFiOS4uNzMwMzBhMGE1NDZkZmE1OGRj
Y2NiYmZmODQwNDNmNmJjZGFkZWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE3NDQsNyArMTc0NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVtbkNvdW50KCkgeyByZXR1cm4gMTsgfQogICAg
IHN0YXRpYyBDb2x1bW5GaWxsIGluaXRpYWxDb2x1bW5GaWxsKCkgeyByZXR1cm4gQ29sdW1uRmls
bEJhbGFuY2U7IH0KICAgICBzdGF0aWMgQ29sdW1uU3BhbiBpbml0aWFsQ29sdW1uU3BhbigpIHsg
cmV0dXJuIENvbHVtblNwYW5Ob25lOyB9Ci0gICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7IERFRklORV9TVEFUSUNfTE9DQUwoVHJhbnNmb3Jt
T3BlcmF0aW9ucywgb3BzLCAoKSk7IHJldHVybiBvcHM7IH0KKyAgICBzdGF0aWMgY29uc3QgVHJh
bnNmb3JtT3BlcmF0aW9ucyYgaW5pdGlhbFRyYW5zZm9ybSgpIHsgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFRyYW5zZm9ybU9wZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1cm4gb3BzOyB9
CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNmb3JtT3JpZ2luWCgpIHsgcmV0dXJuIExl
bmd0aCg1MC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRyYW5zZm9y
bU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMCwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMg
RVBvaW50ZXJFdmVudHMgaW5pdGlhbFBvaW50ZXJFdmVudHMoKSB7IHJldHVybiBQRV9BVVRPOyB9
CkBAIC0xODI4LDcgKzE4MjgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxT
dHlsZURhc2hib2FyZFJlZ2lvbj4mIG5vbmVEYXNoYm9hcmRSZWdpb25zKCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGluaXRpYWxGaWx0ZXIoKSB7IERFRklORV9TVEFUSUNfTE9DQUwoRmlsdGVyT3BlcmF0aW9ucywg
b3BzLCAoKSk7IHJldHVybiBvcHM7IH0KKyAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgaW5pdGlhbEZpbHRlcigpIHsgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZpbHRl
ck9wZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1cm4gb3BzOyB9CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQogICAgIHN0YXRpYyBCbGVuZE1vZGUgaW5pdGlhbEJsZW5kTW9kZSgp
IHsgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKaW5kZXggNGJhYzJiMWRlYjM1NTY3YTAxZjQ5Y2ViYWFk
MDk3YzlkYmQ2NTEwMC4uM2Q3OWFlZDVhNjk3MDExZDEzYWE0NjIwNDE0MmQ5NzYxNGI1NmE0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguY3BwCkBA
IC0xMzEsNyArMTMxLDcgQEAgYm9vbCBSZW5kZXJTVkdQYXRoOjpzaG91bGRTdHJva2VaZXJvTGVu
Z3RoU3VicGF0aCgpIGNvbnN0CiAKIFBhdGgqIFJlbmRlclNWR1BhdGg6Onplcm9MZW5ndGhMaW5l
Y2FwUGF0aChjb25zdCBGbG9hdFBvaW50JiBsaW5lY2FwUG9zaXRpb24pIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0aCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0aCwgKCkpOwogCiAgICAgdGVtcFBhdGgu
Y2xlYXIoKTsKICAgICBpZiAoc3R5bGUoKS5zdmdTdHlsZSgpLmNhcFN0eWxlKCkgPT0gU3F1YXJl
Q2FwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdT
aGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNw
cAppbmRleCBjOTlmM2QwZDhlNGNkOTgyMTU3M2Q3YTYzY2JmNjBhMGYxMWM3YjE0Li44ZTAzYjIx
NWY4NjBkYTM0ODM2NTNkMzdkNjA5ZjQ2OTE3NzgzODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIHZv
aWQgUmVuZGVyU1ZHU2hhcGU6OmxheW91dCgpCiAKIFBhdGgqIFJlbmRlclNWR1NoYXBlOjpub25T
Y2FsaW5nU3Ryb2tlUGF0aChjb25zdCBQYXRoKiBwYXRoLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHN0cm9rZVRyYW5zZm9ybSkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgs
IHRlbXBQYXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgs
IHRlbXBQYXRoLCAoKSk7CiAKICAgICB0ZW1wUGF0aCA9ICpwYXRoOwogICAgIHRlbXBQYXRoLnRy
YW5zZm9ybShzdHJva2VUcmFuc2Zvcm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNTUwM2E3ZDFhMjRhMGJhZWVm
NmM4Yzc1MzBhMTkxOTM0MDI5MGJkZC4uYTE0NDcwOTYzN2VjZmMzMDRkYWIyNWIyZjE3NDdkMWNk
NmEwZDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBTVkdSZW5kZXJpbmdD
b250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBQYWkKIAogc3RhdGljIEFmZmluZVRyYW5zZm9ybSYgY3VycmVudENvbnRlbnRUcmFuc2Zvcm1h
dGlvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBZmZpbmVUcmFuc2Zvcm0sIHNfY3Vy
cmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbiwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBZmZpbmVUcmFuc2Zvcm0sIHNfY3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlv
biwgKCkpOwogICAgIHJldHVybiBzX2N1cnJlbnRDb250ZW50VHJhbnNmb3JtYXRpb247CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcAppbmRleCBm
NGNkNjIxZjRjOTk1M2I0YmQxOTYyNjczMzNkOWEzN2M2NjI1YjBlLi4wMDA1MGRhNTgzMDU2ZDVj
MDc1ZGQ3YmMxNDA4YzRkY2JlZjg5NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZXNvdXJjZXMuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFNWR1Jlc291cmNlczo6U1ZH
UmVzb3VyY2VzKCkKIAogc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgY2xpcHBlckZpbHRl
ck1hc2tlclRhZ3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNT
dHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKICAgICBpZiAoc190YWdM
aXN0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyAiY29udGFpbmVyIGVsZW1lbnRzIjogaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHMTEvaW50cm8uaHRtbCNUZXJtQ29udGFpbmVyRWxlbWVudAogICAg
ICAgICAvLyAiZ3JhcGhpY3MgZWxlbWVudHMiIDogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEv
aW50cm8uaHRtbCNUZXJtR3JhcGhpY3NFbGVtZW50CkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBI
YXNoU2V0PEF0b21pY1N0cmluZz4mIGNsaXBwZXJGaWx0ZXJNYXNrZXJUYWdzKCkKIAogc3RhdGlj
IEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgbWFya2VyVGFncygpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNfdGFnTGlzdCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNfdGFnTGlz
dCwgKCkpOwogICAgIGlmIChzX3RhZ0xpc3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNfdGFnTGlz
dC5hZGQoU1ZHTmFtZXM6OmxpbmVUYWcubG9jYWxOYW1lKCkpOwogICAgICAgICBzX3RhZ0xpc3Qu
YWRkKFNWR05hbWVzOjpwYXRoVGFnLmxvY2FsTmFtZSgpKTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBz
dGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBtYXJrZXJUYWdzKCkKIAogc3RhdGljIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiYgZmlsbEFuZFN0cm9rZVRhZ3MoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xp
c3QsICgpKTsKICAgICBpZiAoc190YWdMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICBzX3RhZ0xp
c3QuYWRkKFNWR05hbWVzOjphbHRHbHlwaFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgIHNfdGFn
TGlzdC5hZGQoU1ZHTmFtZXM6OmNpcmNsZVRhZy5sb2NhbE5hbWUoKSk7CkBAIC0xMjcsNyArMTI3
LDcgQEAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgZmlsbEFuZFN0cm9rZVRhZ3MoKQog
CiBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBjaGFpbmFibGVSZXNvdXJjZVRhZ3MoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xp
c3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9t
aWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKICAgICBpZiAoc190YWdMaXN0LmlzRW1wdHkoKSkg
ewogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNWR05hbWVzOjpsaW5lYXJHcmFkaWVudFRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQoU1ZHTmFtZXM6OmZpbHRlclRhZy5sb2Nh
bE5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Rl
eHRDaHVua0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0
Q2h1bmtCdWlsZGVyLmNwcAppbmRleCBjYjkzMDgzMTllNjVlYTA2NWU2YzQ4ZGM5ZWM0ZTM2ZTZi
ODE5YTk2Li4yYzQ3MjA0NjA1OGM0NTQyN2M3OTFkMjY3MjA5NGZlN2JkYzM1OTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dENodW5rQnVpbGRlci5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAgU1ZHVGV4dENodW5rQnVpbGRlcjo6U1ZHVGV4dENodW5rQnVp
bGRlcigpCiAKIHZvaWQgU1ZHVGV4dENodW5rQnVpbGRlcjo6dHJhbnNmb3JtYXRpb25Gb3JUZXh0
Qm94KFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3Jt
KSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQWZmaW5lVHJhbnNmb3Jt
LCBzX2lkZW50aXR5VHJhbnNmb3JtLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEFmZmluZVRyYW5zZm9ybSwgc19pZGVudGl0eVRyYW5zZm9ybSwgKCkpOwog
ICAgIGlmICghbV90ZXh0Qm94VHJhbnNmb3JtYXRpb25zLmNvbnRhaW5zKHRleHRCb3gpKSB7CiAg
ICAgICAgIHRyYW5zZm9ybSA9IHNfaWRlbnRpdHlUcmFuc2Zvcm07CiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5k
ZXggMmFjNWRiNGE3YzA1ZTFlMGYyYzU1YmU2ZTczYjlmNDA4NDI3ZTg0Ny4uZTdkMjgwZTI4Yjg3
NGViNWI2ZTE1MjBlNDE4ODFiNDNjZTg5MjdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgU3RvcmFnZU5hbWVzcGFjZSo+IExvY2FsU3RvcmFnZU5hbWVzcGFjZU1h
cDsKIAogc3RhdGljIExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCYgbG9jYWxTdG9yYWdlTmFtZXNw
YWNlTWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsU3RvcmFnZU5hbWVzcGFj
ZU1hcCwgbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCwgbG9jYWxTdG9yYWdlTmFt
ZXNwYWNlTWFwLCAoKSk7CiAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKaW5kZXggNzhmYmU3MDMy
OWM3N2NjMWZjNDMzOGVkMjVlYjc1OTcyZDc4ODJlMy4uYmJhMTIwZmJmOTU1ZjEwNmJmMGVkNmQ4
MjA5YjBiYjkwMDVkMGE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQu
Y3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBIYXNoU2V0
PFN0b3JhZ2VUaHJlYWQqPiYgYWN0aXZlU3RvcmFnZVRocmVhZHMoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0b3JhZ2VU
aHJlYWQqPiwgdGhyZWFkcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiwgdGhyZWFkcywgKCkpOwogICAgIHJldHVybiB0aHJl
YWRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBmY2E4YjdhM2Y4NWMw
NjdiM2JiYTAxMmQ4NDlkNDIzNGViZDYyZGU1Li5mMWViNzg4YzdmMWM0OGFiNWE5M2VjNTk5ODZi
MDA1MDNjMWViNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2
LDcgQEAgU3RyaW5nIFNWR0FFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAKIGJvb2wgU1ZHQUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5j
ZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAg
U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAKaW5kZXggY2RjNGZjNDgxMGQ5MGRjYTI4ZTMxMmZkM2Fm
NWY5M2QxMjgyNmE0ZS4uOTRlOGZiMmE2NzRjZDg2OTdjN2M2OGMzMGE2YTY4ODViMWNkNDY3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCkBAIC0xMTIsMTUgKzExMiwxNSBAQCBTdHJpbmcgU1ZH
QW5nbGU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogewogICAgIHN3aXRjaCAobV91bml0VHlwZSkg
ewogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGRlZ1N0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZGVnIikpKTsKKyAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVnU3RyaW5nLCAoQVNDSUlM
aXRlcmFsKCJkZWciKSkpOwogICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIobV92YWx1ZUlu
U3BlY2lmaWVkVW5pdHMpICsgZGVnU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFNWR19BTkdMRVRZ
UEVfUkFEOiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCByYWRTdHJpbmcs
IChBU0NJSUxpdGVyYWwoInJhZCIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHJhZFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgicmFkIikpKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSArIHJhZFN0
cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfQU5HTEVUWVBFX0dSQUQ6IHsKLSAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGdyYWRTdHJpbmcsIChBU0NJSUxpdGVyYWwoImdyYWQi
KSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBncmFk
U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJncmFkIikpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6
bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSArIGdyYWRTdHJpbmc7CiAgICAgfQogICAg
IGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAppbmRleCAyYTRhMjhiOGE5ZTRkOWFjMTIyZjVhNjg0
ZWJkZTlmZTVhMWMzNzM4Li45ZTFkYjEzOThjYjUxNjJlYjFkNWIxYjE0MWI3ZWVmZTAyMGVmMDI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gU1ZHQW5p
bWF0ZUNvbG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIHN0YXRpYyBib29sIGF0
dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VycmVudENvbG9yLCAoImN1
cnJlbnRDb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjdXJyZW50
Q29sb3IsICgiY3VycmVudENvbG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiB2YWx1ZSA9PSBjdXJyZW50Q29sb3I7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IDVjMGZhMjI3YTJj
OTMzODQ2NzcwYmI2NmJhOGFiNjVhYzdkZDk3YjYuLjM4ZWM0NjJhYzQzMGVmYzQyNDM5MWFiYmRi
NTUwNmNhZDhjZDhlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcApAQCAtOTcsNyArOTcsNyBAQCBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50OjpoYXNWYWxpZEF0dHJpYnV0ZU5hbWUoKQogCiBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBv
cnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OnBhdGhBdHRyKTsKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwpAQCAt
MTIyLDggKzEyMiw4IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgCiBTVkdBbmltYXRl
TW90aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6cm90YXRl
TW9kZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXV0b1JldmVy
c2UsICgiYXV0by1yZXZlcnNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBh
dXRvUmV2ZXJzZSwgKCJhdXRvLXJldmVyc2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByb3RhdGUgPSBnZXRBdHRyaWJ1dGUo
U1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAgIGlmIChyb3RhdGUgPT0gYXV0b1ZhbCkKICAgICAg
ICAgcmV0dXJuIFJvdGF0ZUF1dG87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50LmNwcAppbmRleCBlODZhMTYyNTFiOTBjYzIzOTk0MjhiNGFiOGZl
ZTZmNmVkNGE3MDFmLi5lNGMyZmE4MDAzMzI0OWMzYmI2ODQ1ODlkZGNjMDYwNDk0NDUxYzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6aGFz
VmFsaWRBdHRyaWJ1dGVUeXBlKCkKIAogYm9vbCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjp0eXBlQXR0cik7CiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCmluZGV4IDIxMWUxYTFiYjM2YzE5ZjkzYTRm
ODcyNGU3MzAwNWYwOWMxMjQ3ZGQuLmQ0MzBjMzYyNjJlZTJhZjdkNmQ1ZTAyNjRjNzQ2ODZlYWI0
OWRkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmNwcApAQCAtMzMs
NyArMzMsNyBAQCBTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1hdAogCiBzdGF0aWMgaW5saW5lIFNWR0xl
bmd0aCYgc2hhcmVkU1ZHTGVuZ3RoKFNWR0xlbmd0aE1vZGUgbW9kZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZUFzU3RyaW5nKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBzaGFy
ZWRMZW5ndGgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU1ZHTGVu
Z3RoLCBzaGFyZWRMZW5ndGgsICgpKTsKICAgICBzaGFyZWRMZW5ndGguc2V0VmFsdWVBc1N0cmlu
Zyh2YWx1ZUFzU3RyaW5nLCBtb2RlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByZXR1cm4g
c2hhcmVkTGVuZ3RoOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
Y3BwCmluZGV4IGNiYmIwOTBkMjFkOWJjMDc3ZDk3MTFkYjc3OTVlZWZkMWFhMmRhNzYuLmNlOTFm
MWJkODM0NTdhY2JmYmVjM2ZjMDEwZDVjNjlkMDk4ZmFhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgdm9p
ZCBwYXJzZUtleVNwbGluZXMoY29uc3QgU3RyaW5nJiBwYXJzZSwgVmVjdG9yPFVuaXRCZXppZXI+
JiByZXN1bHQpCiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5p
c0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CkBAIC0yOTEsMTAg
KzI5MSwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUo
KQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldENhbGNNb2RlKGNvbnN0IEF0b21pY1N0
cmluZyYgY2FsY01vZGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGRpc2NyZXRlLCAoImRpc2NyZXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBs
aW5lYXIsICgibGluZWFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwYWNlZCwgKCJwYWNl
ZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3BsaW5lLCAoInNwbGluZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkaXNjcmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaW5lYXIsICgibGluZWFyIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBhY2VkLCAoInBhY2VkIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNwbGluZSwgKCJzcGxpbmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgaWYgKGNhbGNNb2RlID09IGRpc2NyZXRl
KQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZURpc2NyZXRlKTsKICAgICBlbHNlIGlmIChj
YWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0zMDksOCArMzA5LDggQEAgdm9pZCBTVkdBbmltYXRpb25F
bGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNTdHJpbmcmIGNhbGNNb2RlKQogCiB2b2lk
IFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0ZVR5cGUoY29uc3QgQXRvbWljU3RyaW5n
JiBhdHRyaWJ1dGVUeXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBjc3MsICgiQ1NTIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB4bWwsICgiWE1M
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNzcywgKCJDU1MiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgeG1sLCAoIlhNTCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBpZiAoYXR0cmlidXRlVHlwZSA9PSBjc3Mp
CiAgICAgICAgIG1fYXR0cmlidXRlVHlwZSA9IEF0dHJpYnV0ZVR5cGVDU1M7CiAgICAgZWxzZSBp
ZiAoYXR0cmlidXRlVHlwZSA9PSB4bWwpCkBAIC0zMzcsMTQgKzMzNywxNCBAQCBTdHJpbmcgU1ZH
QW5pbWF0aW9uRWxlbWVudDo6ZnJvbVZhbHVlKCkgY29uc3QKIAogYm9vbCBTVkdBbmltYXRpb25F
bGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBmYXN0R2V0QXR0cmlidXRlKFNW
R05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVybiB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0
aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uOwogfQogCiBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6
OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHN1bSwgKCJzdW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OmFjY3VtdWxhdGVBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gc3VtICYmIGFuaW1hdGlv
bk1vZGUoKSAhPSBUb0FuaW1hdGlvbjsKIH0KQEAgLTY1Myw3ICs2NTMsNyBAQCB2b2lkIFNWR0Fu
aW1hdGlvbkVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRhbmNlKFNWR0VsZW1lbnQqIHRhcmdldEVs
ZW1lbnQsIGNvbnN0CiAKIHN0YXRpYyBib29sIGluaGVyaXRzRnJvbVByb3BlcnR5KFNWR0VsZW1l
bnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBTdHJpbmcmIHZh
bHVlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBpbmhl
cml0LCAoImluaGVyaXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaW5o
ZXJpdCwgKCJpbmhlcml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgdmFsdWUgIT0gaW5oZXJpdCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmlu
ZGV4IDdkMmFmMGYxODhiMGRiYjhlNjU0MThkMzkyOGFmY2RkMDU3NWFlNTEuLjMyOTFhMzkwNmY2
N2ZlZDBjMDBiZDY0ZDI2ODViOGE3NmNhNWNmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGFzc1JlZlB0cjxTVkdDaXJjbGVFbGVt
ZW50PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEK
IAogYm9vbCBTVkdDaXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewog
ICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGQ1NWE2NWIzYjQzNjFkYjg4MTUyNzY2OTBjNmU4
ZDgzYzhiMDc5ZWUuLjI2MTI3NzM3MTQwNGFjMTE2MDZlMWY0MjRmMTdmZmE1MmQ1ZWEyZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIFBhc3NSZWZQdHI8U1ZHQ2xpcFBhdGhFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0CiAKIGJvb2wgU1ZHQ2xpcFBhdGhFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1
cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAppbmRleCBiYmQxMTYzNGQ0NmVhMWI0MDQ1OGNj
M2MxYmQzNDc2NGU2OGYyM2EzLi5jNDllOTNiOGRlYjg4OWEwMTFhODhhODJkZTA3MTNmODEyNzE5
NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50KGNvbnN0IFEKIAogYm9vbCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnRhYmxlVmFsdWVzQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAKaW5kZXggZGU3YzViMzMxZDUzNzhmOTY4YzU0OWI4ODNlMmFiZWU2YmFlZDhh
Zi4uNzBkMzEyMGZjODU0ZDNjMjdhYmYwM2I2YjJhNTk2MTllNjk2YWQ2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCBTVkdDdXJzb3JF
bGVtZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCiAKIGJvb2wgU1ZHQ3Vyc29yRWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9y
dGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggZjAwN2Q4NWZkOTE4YzVjZGQ0Y2I4
YWU4OTg1Nzg4YzM5MTg1MTcxMC4uYjFlYmI5ODUyNjczOGNiMWY0Yzg3ZDBkYzhjN2M5ZTI3ZjI4
ODBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIHZv
aWQgU1ZHRWxlbWVudDo6cmVtb3ZlSW5zdGFuY2VNYXBwaW5nKFNWR0VsZW1lbnRJbnN0YW5jZSog
aW5zdGFuY2UpCiBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+JiBTVkdFbGVtZW50
OjppbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3ZnUmFyZURhdGEp
IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5j
ZSo+LCBlbXB0eUluc3RhbmNlcywgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiwgZW1wdHlJbnN0YW5jZXMsICgp
KTsKICAgICAgICAgcmV0dXJuIGVtcHR5SW5zdGFuY2VzOwogICAgIH0KICAgICByZXR1cm4gbV9z
dmdSYXJlRGF0YS0+ZWxlbWVudEluc3RhbmNlcygpOwpAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQg
U1ZHRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIAogYm9vbCBTVkdFbGVtZW50Ojpj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgaW52YWxpZFRleHRD
b250ZW50LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIGludmFsaWRUZXh0Q29udGVudCwgKCkpOwogCiAgICAgaWYgKGludmFs
aWRUZXh0Q29udGVudC5pc0VtcHR5KCkpIHsKICAgICAgICAgaW52YWxpZFRleHRDb250ZW50LmFk
ZChTVkdOYW1lczo6dGV4dFBhdGhUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5jcHAKaW5kZXggYTVkNzNmYTU4MzBiNTU5M2U3NWIzOGIyMDU4ZjdlNTk2NzI4ZjNkNS4u
ZDcwOTYzNWE2OTBhNWU5MzgyODNmOGY2OTJjMDk2NGYyY2NkZTNiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8
U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnCiAKIGJvb2wgU1ZHRWxsaXBzZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRl
cyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDg5ZDBkNDI2ZmY2ZjNjZTlj
ZWIzNjdlYTFiMjc2OTlhZTJiNTZiNjYuLjFkZmViZjBkY2ZiYWM3YzA2MDQ3ZGU2ZjRhYjc5NzQ2
MmE3NDI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcApAQCAt
NTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFNWR0ZFQmxlbmRFbGVtZW50PiBTVkdGRUJsZW5kRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZwogCiBib29sIFNWR0ZFQmxlbmRF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1
cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAg
IGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bW9kZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGIzYWExMTU2MjU2NTZmYzM0OGM5MmI1Mjc4
ZDgyNjU4ZjViNWYzNTguLjdlZDI4NDE0ZDY2MmMwNmY1Nzk3MjU4ODgzMmRmMzQ3ZWZkM2YyYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcApA
QCAtNTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50PiBTVkdG
RUNvbG9yTWF0cml4RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZgogCiBib29sIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywg
KCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHlwZUF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dmFsdWVzQXR0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAppbmRleCAy
ZjdlMTg2YWY1ZDQ3YmFjMTczMDBkMTVhNzM4NjkyMjRjZWQ4YmMxLi5iZDQ1OWE2Yzc2ZTkwNTZh
NjcwNzMwODE5YTA2ZDk2YTQzMTVkMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUGFz
c1JlZlB0cjxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudD4gU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6OmNyZWF0ZSgKIAogYm9vbCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmluZGV4IDk3MWRiYzM4M2Ew
ZTY0NjY0OWMyNjM2NjJkOGE4YmU3YTNlZTJlZDQuLjFlNmNkOGU5ODYzYzYxZDc0YmJmOWUyYmNk
OGNiZGNiZjZjYWZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
c2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVt
ZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROCiAKIGJv
b2wgU1ZHRkVDb21wb3NpdGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluMkF0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggM2Qx
NTkzZTQ3ZTkxZDAwNjRlM2VhNmM1Y2FkMWNjZDc4OWMzYmQ1ZC4uYmVlZWYyNGUzYmIxMTQ4NDc2
MDg4YTEyMmJkMzRmODdlMjY2ZDBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC03OSwzMSArNzksMzEgQEAgUGFzc1JlZlB0
cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
OmNyZWF0ZShjb25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0
aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tl
cm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdL
ZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6b3JkZXJYSWRlbnRpZmllcigpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdPcmRlclgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yZGVyWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JkZXJZIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKIGJvb2wgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpp
bkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b3JkZXJB
dHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5jcHAKaW5kZXggMTcxYTMzZDEwY2M4MDEyN2I2ZTYzZGVmOGNhMTcxZDg2OTU2ZTU4ZS4u
MDEzNTMxM2JhZjEwYWE3ODkwODU5ZDYyN2M0YTc3YTU1ZTAyNWY4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTY3LDE5
ICs2NywxOSBAQCBQYXNzUmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29ucwogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVy
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVy
LCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExl
bmd0aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlm
aWVyOwogfQogCiBib29sIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpk
aWZmdXNlQ29uc3RhbnRBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5jcHAKaW5kZXggMzhiOWE1Yzc2MDk0ZWE1NDgwY2ZiYzNkNDE0
Nzc5M2I1M2M1ZTdhYi4uMTQxODY1NGQyMmI3NmRkYTI3N2YwZTlmY2MwOGFhNjRlMWY4YjMxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnMKIAogYm9vbCBT
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW4yQXR0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKaW5kZXggY2FhYTIxZjNh
NDBhMTdlOGE4OTAwYTA3M2YwYWY3ZWNjZTIwMjAwYy4uNzFmY2UwYjk5MThkNGEzOTcyZDcyMmRi
YjZlNGQ2NzQ1NWEzZTBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmNwcApAQCAtNjYsMTMgKzY2LDEzIEBAIFBhc3NSZWZQdHI8U1ZHRkVEcm9wU2hh
ZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3RkRGV2aWF0
aW9uWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlv
bllJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
c19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblkiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIApA
QCAtODUsNyArODUsNyBAQCB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnNldFN0ZERldmlh
dGlvbihmbG9hdCB4LCBmbG9hdCB5KQogCiBib29sIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBv
cnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6ZHhBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5jcHAKaW5kZXggYzVhMmUxNzFmYzg1NjkzMjNlMDEzZmQ4ZDA3NjEzZjM4MmE4
YjMzMi4uMjI2YjIxMDk2NmYzYWYxYWNlN2RiZWFhYzQ2MjQ3MzY4NjFjMzcwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTYxLDEz
ICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4gU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
U3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2aWF0aW9uWUlkZW50aWZpZXIoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
U3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCkBAIC04MCw3ICs4MCw3IEBAIHZv
aWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxv
YXQgeSkKIAogYm9vbCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpp
bkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c3RkRGV2
aWF0aW9uQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRl
eCBjODRkZWIzMTViZTY1ODczOWEzNGJhMWZiNzM3YjllNTdhYjg1MWNkLi43YzE2NTYxNWU3ODJl
ZmI0ZGZmN2RjOGFjMzAwMTNjMTc3YTU3YTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50
OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAKIGJvb2wgU1ZHRkVJbWFnZUVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1Nw
YWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKaW5kZXggMWRlMTU0ZWEyYzNlNTk2ZmQx
ODUxYzNjZDZkNDU3ZjEzY2I2MGI5Ny4uOWI5YzhiOTY4YTYwYTI0ODlmM2ZmNWFkZWIzNjdjMTNm
YTJlNjYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFTGlnaHRFbGVtZW50Ojpm
aW5kTGlnaHRTb3VyY2UoY29uc3QgU1ZHRWxlbWVudCogc3ZnCiAKIGJvb2wgU1ZHRkVMaWdodEVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjphemltdXRoQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjplbGV2YXRpb25BdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKaW5kZXggNTI5YTRhZDg5NWYyYmFjMDQ1ZWNj
ODFmOTJlZWU0NjE2Njg4M2I3NS4uZDJhMzA3MWMwNzFlZmRjZGY5MzIyZDQwYjNhMDMwMWM3MDdm
NTQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgUGFzc1JlZlB0cjxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ+IFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE4KIAogYm9vbCBTVkdGRU1l
cmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCmlu
ZGV4IGRmMzUzMTdkNGFhOWVjNGRhZGNlNWE5YWU2Y2FmZjY0YWQ2MzEzZTEuLjdmOWYyZDc5YWE5
ZTAzYzBiMDk4MjhjNmNmOTUzMDgwOTgwNTUxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTYwLDEzICs2MCwxMyBAQCBQYXNzUmVmUHRy
PFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ+IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFTW9ycGhvbG9neUVsZW1l
bnQ6OnJhZGl1c1hJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1c1giLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpyYWRpdXNZSWRlbnRpZmll
cigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdSYWRpdXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRp
ZmllciwgKCJTVkdSYWRpdXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMoZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9v
bCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9wZXJhdG9yQXR0cik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCmluZGV4IDMxYWI2MDZjMjIwODhk
ZGQ0NzBkYTcwOWYxMjc5Njk0NDljMjczNmYuLjI4YTQ2ZjY5MWRjZjQ0YzI3YzBjZTBkZTI5ZGI5
MzIyYzY4Zjc2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3Bw
CkBAIC01Nyw3ICs1Nyw3IEBAIFBhc3NSZWZQdHI8U1ZHRkVPZmZzZXRFbGVtZW50PiBTVkdGRU9m
ZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0CiAKIGJvb2wgU1ZHRkVP
ZmZzZXRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR4QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMjAxY2UwZWZmNTA2
MDlhNWM3ZDJlMmEwNGQwZTUxNjg4ZWYyNGU2ZS4uYzU3NmNlY2IwY2EwYjAxY2M2ZDBjOGFmOWI0
YTk3MGZkNzlmM2M5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNzEsMTkgKzcxLDE5IEBAIFBhc3NSZWZQdHI8U1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6
Y3JlYXRlKGNvCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhY
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJu
ZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRMZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdL
ZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50
aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogYm9vbCBTVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAppbmRleCA3NDJmYTE1ZjRiZDAw
YWQ1Mjk4OTk1MzBjMjNjMmIxNDk0NGM5NzUyLi43ZDBlMWZjMWQwMDllYzAyOGQzOTM0MjQwNDcx
MzQ3YTc1NTFlMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIFBhc3NSZWZQdHI8U1ZHRkVUaWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGJvb2wgU1ZHRkVUaWxl
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggYjlk
YTc4ZTdkN2JhZDE0NWIzNjg3NDY0NmY3OThlMzEyOTlhOTg1My4uMjM5ZjEzNDVhNTdjYTJhOTI3
ZGViN2ZiYjAwZmY5MDdkMmM3MTM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNjUsMTkgKzY1LDE5IEBAIFBhc3NSZWZQdHI8U1ZHRkVU
dXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YmFz
ZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VGcmVxdWVuY3lYIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlm
aWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJh
c2VGcmVxdWVuY3lZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNlRnJlcXVlbmN5WSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHQmFzZUZyZXF1ZW5jeVkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRp
ZmllcjsKIH0KIAogYm9vbCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1l
Piwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
YmFzZUZyZXF1ZW5jeUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6bnVtT2N0YXZlc0F0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwCmluZGV4IDZkNWMzODhiYmExMjJjMTFiMzJkMTQxMGUyZmRlZGNmYjA5ZWNkYmEuLmQ5OThk
ZGYzZmQ3MzViYjBlMDBiOTcxNzhmYTgzNmZkZmQ4ZDliYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTg0LDEzICs4NCwxMyBAQCBQYXNzUmVmUHRyPFNWR0Zp
bHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJl
c1hJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
c19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50OjpmaWx0ZXJSZXNZSWRlbnRpZmllcigpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmll
ciwgKCJTVkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lk
IFNWR0ZpbHRlckVsZW1lbnQ6OnNldEZpbHRlclJlcyh1bnNpZ25lZCBmaWx0ZXJSZXNYLCB1bnNp
Z25lZCBmaWx0ZXJSZXNZKQogCiBib29sIFNWR0ZpbHRlckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpAQCAtMjAwLDcgKzIwMCw3
IEBAIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJiBjaGlsZCkgY29uc3QKIAogICAgIGNvbnN0IFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQg
PSB0b1NWR0VsZW1lbnQoY2hpbGQpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncywgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBhbGxvd2Vk
Q2hpbGRFbGVtZW50VGFncywgKCkpOwogICAgIGlmIChhbGxvd2VkQ2hpbGRFbGVtZW50VGFncy5p
c0VtcHR5KCkpIHsKICAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVz
OjpmZUJsZW5kVGFnKTsKICAgICAgICAgYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuYWRkKFNWR05h
bWVzOjpmZUNvbG9yTWF0cml4VGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKaW5kZXggZjc4MTk4
OWIyM2Q1ZTRhYWRhODg5NzQ0NDhjNGNlM2ZlZTMzNGE1OC4uYjEyNDIxNWVmMmYyYTRiNjFmZGQ4
ZDRiODQ4ODEyNGVmMGViZTJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTY2LDcgKzY2
LDcgQEAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QKIAogYm9vbCBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7CiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAppbmRleCA0MTkzNjY3MmNkMTI5ODVjZDYz
MmExMzJlYTYyZTAxZDI4ZjY3ZTQ2Li5mMWExYzY4MGZiYzE3NjdjMjZlN2ZiMGYzYzA2ZThlYzAy
MWM5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgUGFzc1JlZlB0cjxTVkdGb3JlaWduT2JqZWN0RWxlbWVu
dD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWYKIAogYm9vbCBT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVu
dC5jcHAKaW5kZXggMTNiZWM5MzljZTVkMDVkYjg4ZGNiODhiMTM5MDg4ZjEyNGNiMGNhYy4uMzc1
ZWMxMTVjZGFkYWIzNzFiYTY1NmRkZDNmZjA5YWU2NzQwZDc0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFBhc3NSZWZQdHI8U1ZHR0VsZW1lbnQ+IFNW
R0dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAK
IGJvb2wgU1ZHR0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaE1hcC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgKaW5k
ZXggMDhiZmE1OTgxYzRmZjJmMjRkMWU2YWFiM2QxMTg0MTk3YzcyODZhZi4uMDBmODdhNThjZTA4
MDUwNWJlMjk5NWRiNzdjMTNkOGU4YzVmYjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dseXBoTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgK
QEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU1ZHR2x5cGgmIHN2Z0dseXBo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIWdseXBoIHx8
IGdseXBoID4gbV9nbHlwaFRhYmxlLnNpemUoKSkgewotICAgICAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTVkdHbHlwaCwgZGVmYXVsdEdseXBoLCAoKSk7CisgICAgICAgICAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU1ZHR2x5cGgsIGRlZmF1bHRHbHlwaCwgKCkpOwogICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRHbHlwaDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
bV9nbHlwaFRhYmxlW2dseXBoIC0gMV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVs
ZW1lbnQuY3BwCmluZGV4IGMwZWFiOGI0NTk5NWVkOTcxNjQ1ZDNjZTBiZmVkN2E4ZWNhNGM5YmIu
LmQxOTVkZDA0MjJhYTZiMTQ3MmMzNGRhNGIyN2NjMWI1MGM2MjgxNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIFNWR0dyYWRp
ZW50RWxlbWVudDo6U1ZHR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkCiAKIGJvb2wgU1ZHR3JhZGllbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0
dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IDBhMmMyNzk4
YWQ2ZTFmOTQ1N2M5YjU2YWNkNWExNDUyYmYyNzRiMzcuLjAyOTZjYmY4NDU0NGRiNjA5OTQ4NmVi
NGU1Y2Y4OGRmZmE1NTQwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFw
aGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1l
bnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIEFmZmluZVRyYW5zZm9ybSogU1ZHR3JhcGhpY3NFbGVt
ZW50OjpzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKQogCiBib29sIFNWR0dyYXBoaWNzRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKaW5kZXggOWZjMmI1ZDQwYWNmZjU3M2YxY2I1MThmNDU4OTlmMTQx
MWYyZTUxNC4uNjRjNWZkYTI0NzA0YmM1ZGZjMmEyMjIyMjlkMTdlOTdiMmVmNWJmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUGFzc1Jl
ZlB0cjxTVkdJbWFnZUVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUKIAogYm9vbCBTVkdJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKaW5kZXggZDQ0OGVmMDhmOWU3YjFiZThmMDdiOWMx
ODRkNjQ5ODQ0ODg3ZGVmYi4uMGM3OTQ3ODM4MDNmNzI2Zjg3OWNjYjJjNjhmNjBkYWZkZmVmMzRk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgdm9p
ZCBTVkdMYW5nU3BhY2U6OnNldFhtbGxhbmcoY29uc3QgQXRvbWljU3RyaW5nJiB4bWxMYW5nKQog
Y29uc3QgQXRvbWljU3RyaW5nJiBTVkdMYW5nU3BhY2U6OnhtbHNwYWNlKCkgY29uc3QKIHsKICAg
ICBpZiAoIW1fc3BhY2UpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVsdCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFN0cmluZywgKCJkZWZhdWx0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZGVmYXVsdFN0cmlu
ZzsKICAgICB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBTVkdMYW5nU3BhY2U6OmlzS25vd25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgCiB2b2lkIFNWR0xh
bmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCB4bWxQcmVmaXgsICgieG1sIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHht
bFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAK
ICAgICBRdWFsaWZpZWROYW1lIGxhbmdXaXRoUHJlZml4ID0gWE1MTmFtZXM6OmxhbmdBdHRyOwog
ICAgIGxhbmdXaXRoUHJlZml4LnNldFByZWZpeCh4bWxQcmVmaXgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoLmNwcAppbmRleCBmMzM2MTU4ODEzZGZmMTUxODVlYTZjYmUxZmU4NzcwNDQ2Y2UxMDFhLi4z
Y2YyZDI0YTQzMWNkNWJjNjAwNjcyN2NlYzY0NTJmNjY1ZTg3MjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmNwcApAQCAtMzc4LDcgKzM3OCw3IEBAIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IFNWR0xlbmd0aDo6dG9DU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTVkdMZW5ndGgmIGxlCiBT
VkdMZW5ndGhNb2RlIFNWR0xlbmd0aDo6bGVuZ3RoTW9kZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIHR5cGVkZWYgSGFzaE1h
cDxRdWFsaWZpZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBMZW5ndGhNb2RlRm9yTGVuZ3RoQXR0cmli
dXRlTWFwOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJp
YnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKExlbmd0aE1vZGVGb3JMZW5ndGhBdHRyaWJ1dGVNYXAsIHNfbGVuZ3RoTW9kZU1h
cCwgKCkpOwogICAgIAogICAgIGlmIChzX2xlbmd0aE1vZGVNYXAuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6OnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5kZXggOWEyMzcxMDAzYTUyNWE3
ZWI0ZTNhYjEwNzk2MDA2ZDRmMzllNDlkZS4uY2M0ODc0MGZjZTE0ZWUyNzQzMWJjODI0M2RhNmI4
ODA3Y2RkNzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCkBAIC02NSw3
ICs2NSw3IEBAIFBhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+IFNWR0xpbmVFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKIAogYm9vbCBTVkdMaW5lRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0
dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcAppbmRleCA0ZDA5NjIyMmVhMjliMGEyZjE4YTFiNjJlMzE5YmVjYTE3YmNiNjEzLi45
ZDlmMTMxYTNkN2UyYmFiMWVhYzk3OGUwY2Q4NjBhN2I1ZTVjYzFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApAQCAtNzEsNyArNzEsNyBA
QCBQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBib29sIFNWR0xpbmVhckdyYWRpZW50RWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OngxQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjp4MkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNw
cAppbmRleCBjODljNzkwM2FjZTcxZDBjOTY1ZWY0MDU3MDJiMjA3NzIyMDI3NWMyLi5iZGY2MzFl
YWQxYmEyMmY4Y2NjNGFlM2M1OTg0MGZiMGE1OTVmMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TVBhdGhFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHTVBhdGhFbGVtZW50
OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiByb290UGFyZW50KQogCiBib29sIFNWR01QYXRo
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVm
ZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCmluZGV4IDAxZTRhYmQxMzc2MGRkYTU4NjkyZjQxY2IzMDY5OTA2OTExZjk5NzcuLjc2NDQz
YzgzODBjN2RiYzk5ZDEyNGU5ZTE4NjhlY2NmYzgyZjBjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTkyLDEzICs5MiwxMyBAQCBQYXNzUmVmUHRyPFNWR01h
cmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR01hcmtlckVsZW1lbnQ6Om9yaWVudFR5
cGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
c19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnRBbmdsZUlkZW50aWZpZXIoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHT3JpZW50QW5nbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlm
aWVyLCAoIlNWR09yaWVudEFuZ2xlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBB
ZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2VyRWxlbWVudDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShm
bG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAKIGJvb2wgU1ZHTWFya2VyRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRB
dHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c3luY2hyb25pemVP
cmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgIGlmIChvd25lclR5cGUt
Pm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJPcmllbnRBdXRvKQogICAgICAgICByZXR1
cm47CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXV0b1N0cmluZywg
KCJhdXRvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGF1dG9TdHJpbmcsICgiYXV0
byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBvd25lclR5cGUt
Pm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZShvd25lclR5cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUlu
Zm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0cmluZyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuY3BwCmluZGV4IDczMjlkNzRmNjIzYWZjNTRhYjdlNDJkYjkxM2RjYzU3NGM3
ZTI0ZWMuLjQ2ODIxOGYxYjA2NDA4MDhhMGU1ZGE5MWU0NDU1Yjk5YTgyYTVhOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCBQYXNzUmVmUHRy
PFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsCiAKIGJvb2wgU1ZHTWFza0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJp
YnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50
LmNwcAppbmRleCBjMDhmNDEzNGQzMjE3YmJjMmYyMTVjMjdjZGFkOTdmMDBmYzY5Y2MwLi43MTYz
NmRkYmQ0ZjczM2MyYjY2MjRjMGY3MWM0MGVjZGM4ZTEwYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoRWxlbWVudC5jcHAKQEAgLTIxMyw3ICsyMTMsNyBAQCBQYXNzUmVmUHRyPFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsPiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0
aFNlZwogCiBib29sIFNWR1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVk
QXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkg
ewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVk
QXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1
cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA3ZWY3M2M4NTgxYWEzYzc1NzZmMGFjYzk3ZWZm
ODQ0YzAzYWJkNDIzLi4xMWVjOWEyYTdiMmM5MmUxOWU2YWQ3OGFkMWZhMDA2OTc0YThjYTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcg
QEAgUGFzc1JlZlB0cjxTVkdQYXR0ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogYm9vbCBTVkdQYXR0ZXJuRWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9y
dGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdUZXN0
czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCmluZGV4IGIwYTI2ZTJiOTllOTZiYTI2ZGY4MzBjYTQ0
NjlhYjYwMjcxZTZmZTQuLmQ5NjAxZDk0YjNmNjY3OWFhYzQ3NmU5YWFlYmJmZWQzMGYwYzlmNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCBT
VkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogCiBib29sIFNWR1BvbHlFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0
dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCmlu
ZGV4IGNjYzIwZjFkNzI5MDc1MTA5OGZkNGU3YjY1MmMwNjU4YTVhMDg2MTkuLjIxM2RiMjYxNDYz
ZjNiYzYxOTAzZDc1NmRlNzZkNjFmNjM5NDc0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFBhc3NSZWZQ
dHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsCiAKIGJvb2wgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6Y3hBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmN5QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCAxMTNm
YjVkZjI2YTVmYTNmN2Y2YjU3ZmFiNzBhODk5NTI2YmQ2NGMyLi44OWU2YjI5N2RhMWZmZmY1ZGE5
OTJhM2M2ZGQ3NTRkYzk2ZDI5MjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5j
cHAKQEAgLTcxLDcgKzcxLDcgQEAgUGFzc1JlZlB0cjxTVkdSZWN0RWxlbWVudD4gU1ZHUmVjdEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAogCiBib29sIFNWR1Jl
Y3RFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5n
U3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMo
c3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5k
ZXggZDg1OGMzNGNlNjdkOGYxYjAzNTBlYmFkMzg5YWE2NWMxOTlhNzljNC4uMWYyNmI4M2Y5OWY1
YjdjZDZjZTQ5ZTEzNGRlZTNkYzM4NGE4YjRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6ZGlkTW92ZVRv
TmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IFNWR1NWR0VsZW1lbnQ6OmNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvZWNt
YXNjcmlwdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFs
dWUsICgidGV4dC9lY21hc2NyaXB0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFt
ZXM6OmNvbnRlbnRTY3JpcHRUeXBlQXR0cik7CiAgICAgcmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZh
dWx0VmFsdWUgOiBuOwogfQpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6
c2V0Q29udGVudFNjcmlwdFR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6OmNvbnRlbnRTdHlsZVR5cGUoKSBjb25zdAogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUs
ICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVs
dFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6
OmNvbnRlbnRTdHlsZVR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRW
YWx1ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
MTQ3MDVhYTUzYzU1YTg0ZTU3YjZkMmNhZmY4ZGJkMzAwOGZhNzJkZC4uMzUyNzE1ODQwNGYzNjk4
MjBlOTg1Yjc1NjBjYTZmOTcyYTE4Mzg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRF
bGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBQYXNzUmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+
IFNWR1NjcmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBi
b29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Rv
cEVsZW1lbnQuY3BwCmluZGV4IDdmN2Y0MGFmMGU2NmM4YzQyYTcxMTJmN2NlMzA2ODgwNWFmM2M2
MTYuLmZlOTRhMWYxNDM3M2Q0N2FlMTA4ZWE3OGQ3MTM0N2MwOWI2ZmE5OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCBQYXNzUmVmUHRyPFNW
R1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsCiAKIGJvb2wgU1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0
eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b2Zmc2V0QXR0
cik7CiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVu
dC5jcHAKaW5kZXggYzcxYjNkMjE1YjhhNjk5MWJjZGRiN2QwNDg5ODE5ZTNmYjA0NTVhOC4uNDFi
MWEwYWZmYTFhODk3MTg5MzAzOGI3ZjkxMmU3ODAyZGExMGI0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1l
bnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJ0ZXh0L2NzcyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICByZXR1cm4gbi5p
c051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgU1ZH
U3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgRXhjZXB0aW9u
Q29kZSYpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50OjptZWRpYSgpIGNv
bnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1
bHRWYWx1ZSwgKCJhbGwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVm
YXVsdFZhbHVlLCAoImFsbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjpt
ZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgpID8gZGVmYXVsdFZhbHVlIDogbjsKIH0K
QEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0
b21pY1N0cmluZyYgdGl0bGUsIEV4Y2VwdGlvbkNvZGUmKQogCiBib29sIFNWR1N0eWxlRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dGl0bGVBdHRyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAppbmRleCA2MDc0MWY2Y2E5MjI1ZGRjZTNlMWFjY2E4ZmE0
MDNiNDU2YzVjMGJhLi40OWY1OTc0NDA5Mzg4ZjM0MTIyZDE2MTA3YWZlMjhjYjdkOTVhOWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IFBhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGJvb2wgU1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVk
QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggMDZmOWE2ZjVhODRl
ZmJiN2UxZDRiZGI4NGFiNzk3NzdkYmY3Y2NhMC4uYzViOGVhMDlmYzM5NDgxYjA4OWE4MzNmZTMz
ODc0ODU0MmRmYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0x
NzksNyArMTc5LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KCkKIAogYm9v
bCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIFNW
R1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAKaW5kZXggODE4
MDFjYTIyYjdkY2RlM2JkODBlZjgwNDAzYjlmYzYwZDA2NGYyYy4uZjQ3MzA1ZWU3NWVmNDg5Njgw
MGY0NjE0MWFhNzY5OTYzZmI4NmQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCkBAIC04OSw3
ICs4OSw3IEBAIFNWR1Rlc3RzOjpTVkdUZXN0cygpCiAKIFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlN
YXAmIFNWR1Rlc3RzOjphdHRyaWJ1dGVUb1Byb3BlcnR5TWFwKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIG1hcCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwLCBtYXAs
ICgpKTsKICAgICBpZiAoIW1hcC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtYXA7CiAgICAg
bWFwLmFkZFByb3BlcnR5KHJlcXVpcmVkRmVhdHVyZXNQcm9wZXJ0eUluZm8oKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGEyNGU4NjhiNjE0
ZGJkNzliM2NjMGRmYTdjNDc0YTY1Nzk5NmI4NTAuLjNmOWEyZjJkMTNkMTE2NDI1M2EzNTY4Yjcz
ZmIyNzU2NTY5MTU4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0
eT4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpsb29rdXBPckNyZWF0ZVRleHRMZW5ndGhXCiAKIFBh
c3NSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1RleHRDb250ZW50RWxlbWVudDo6dGV4dExl
bmd0aEFuaW1hdGVkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0xlbmd0aCwgZGVm
YXVsdFRleHRMZW5ndGgsIChMZW5ndGhNb2RlT3RoZXIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBkZWZhdWx0VGV4dExlbmd0aCwgKExlbmd0aE1vZGVP
dGhlcikpOwogICAgIGlmIChtX3NwZWNpZmllZFRleHRMZW5ndGggPT0gZGVmYXVsdFRleHRMZW5n
dGgpCiAgICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZS5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExl
bmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExlbmd0aCgpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpz
ZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwgdW5zaWduZWQgbmNoYXJzLCBFCiAKIGJv
b2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0
cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewog
ICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CkBAIC0yMzEsNyArMjMxLDcgQEAg
dm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWQKICAgICBpZiAoIWlzU3VwcG9ydGVkQXR0cmlidXRlKG5h
bWUpKQogICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogICAgIGVsc2UgaWYgKG5hbWUubWF0
Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJpbmcsICgicHJlc2VydmUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHByZXNlcnZlU3RyaW5nLCAoInByZXNl
cnZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgICAgIGlm
ICh2YWx1ZSA9PSBwcmVzZXJ2ZVN0cmluZykKICAgICAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NW
YWx1ZVByZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4
IDg2NjNjZDUxNzdkMjFjNGVkNzU1MWQ5NTg3ZWE2OGIyYzkyN2Q4OTQuLjM2NTg0YjNiYmU3ZGUz
YmZiMThiMDNkNWNjNjNhYWE0ODM4M2FlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50
OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAKIGJvb2wgU1ZHVGV4dFBhdGhFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCmluZGV4IGEwYTcy
OWEwYTllYTk0NTgzOGRlYzQ1YjFiMTg0OTU0MTExYWQyODMuLjEyYjYzMjI3OWZiNmJiMTdkYzEy
NWY5N2RkYzA1NWI1NWQxMTZkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW0KIAogYm9vbCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6eEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0
dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAppbmRleCBmZTM2YTIyM2MwYmRlZWNl
NWVhODc1MzEwNGVjNTFjZTFhNjk3MjZlLi5mNzViNjdlMmVmMDkyNTAxYzZkMjg3ODM5NjQ0NjZm
M2U5ZTEyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcApAQCAtMTM1LDI3ICsx
MzUsMjcgQEAgY29uc3QgU3RyaW5nJiBTVkdUcmFuc2Zvcm06OnRyYW5zZm9ybVR5cGVQcmVmaXhG
b3JQYXJzaW5nKFNWR1RyYW5zZm9ybVR5cGUgdHlwZSkKICAgICBjYXNlIFNWR19UUkFOU0ZPUk1f
VU5LTk9XTjoKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgY2FzZSBTVkdfVFJB
TlNGT1JNX01BVFJJWDogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWF0
cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJtYXRyaXgoIikpKTsKKyAgICAgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWF0cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFs
KCJtYXRyaXgoIikpKTsKICAgICAgICAgcmV0dXJuIG1hdHJpeFN0cmluZzsKICAgICB9CiAgICAg
Y2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikp
KTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhbnNs
YXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpKTsKICAgICAgICAgcmV0dXJu
IHRyYW5zbGF0ZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1NDQUxFOiB7
Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzY2FsZVN0cmluZywgKEFTQ0lJ
TGl0ZXJhbCgic2NhbGUoIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgc2NhbGVTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNjYWxlKCIpKSk7CiAgICAg
ICAgIHJldHVybiBzY2FsZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JP
VEFURTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcm90YXRlU3RyaW5n
LCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUoIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgcm90YXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUo
IikpKTsKICAgICAgICAgcmV0dXJuIHJvdGF0ZVN0cmluZzsKICAgICB9ICAgIAogICAgIGNhc2Ug
U1ZHX1RSQU5TRk9STV9TS0VXWDogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
Zywgc2tld1hTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNrZXdYKCIpKSk7CisgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNrZXdYU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJza2V3WCgiKSkpOwogICAgICAgICByZXR1cm4gc2tld1hTdHJpbmc7CiAgICAgfQogICAg
IGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgc2tld1lTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNrZXdZKCIpKSk7CisgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNrZXdZU3RyaW5nLCAoQVND
SUlMaXRlcmFsKCJza2V3WSgiKSkpOwogICAgICAgICByZXR1cm4gc2tld1lTdHJpbmc7CiAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBlMzQwMTQ0MDM5
MDE5MzBkNmU2Yjc3M2JhYjRhZDc5NmMzNmE4ODk2Li5kMmU1Y2JmMjUwMzFmY2VkNWMzNjU5YjJl
ZGY2OGQ1NWI3NDZjYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0x
MjksNyArMTI5LDcgQEAgU1ZHRWxlbWVudEluc3RhbmNlKiBTVkdVc2VFbGVtZW50OjphbmltYXRl
ZEluc3RhbmNlUm9vdCgpIGNvbnN0CiAKIGJvb2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpA
QCAtMzM0LDcgKzMzNCw3IEBAIHN0YXRpYyBib29sIGlzRGlzYWxsb3dlZEVsZW1lbnQoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQuaXNTVkdFbGVtZW50KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBhbGxvd2VkRWxlbWVudFRhZ3MsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgYWxsb3dlZEVsZW1lbnRUYWdz
LCAoKSk7CiAgICAgaWYgKGFsbG93ZWRFbGVtZW50VGFncy5pc0VtcHR5KCkpIHsKICAgICAgICAg
YWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6YVRhZyk7CiAgICAgICAgIGFsbG93ZWRF
bGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmNpcmNsZVRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmNwcAppbmRleCAyZTkxYmVmNDViMjM1OTAzYTk0MDk2MmZhYjAwZTYzYjI2YWNi
YTNkLi45NzRmOTgxYjEyMmFiYWU4YTc2M2UwZDQzZTRiMjg2OTNiOTA4MGY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUGFzc1JlZlB0cjxT
VkdWaWV3RWxlbWVudD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLAogCiBib29sIFNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1w
dHkoKSkgewogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdGaXRUb1ZpZXdC
b3g6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCBhYzI0NTczNjRlMzU0MTU1NWZhMjRmYTM0MjEzZGU3
ZDgyMTEyNzViLi4yOTg1YWIxZDE2ZjQ1YmY5NWFkNzIyMDVkZjQ3NjE4ZTNmODQwNWE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTg1LDE5ICs4NSwxOSBAQCBTVkdWaWV3U3Bl
Yzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgU1ZHVmlld1NwZWM6OnZpZXdCb3hJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjVmll
d0JveEF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnByZXNlcnZlQXNwZWN0UmF0aW9JZGVudGlmaWVyKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAo
IlNWR1ZpZXdTcGVjUHJlc2VydmVBc3BlY3RSYXRpb0F0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVj
dFJhdGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmll
d1NwZWM6OnRyYW5zZm9ybUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1
dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1Zp
ZXdTcGVjVHJhbnNmb3JtQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggODI0MjYzMzgxMTI5MTc1
OGI5Y2Y1ZTI2ZDU4YzIxYWNhNTM2NmJkZC4uNmI4MDRhMTE2MTcwODIxMjJmMTJjM2I0MTY1ZDhj
ZWY0NTlkMmYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdT
TUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlM
RWxlbWVudC5jcHAKQEAgLTMwOSw3ICszMDksNyBAQCBTTUlMVGltZSBTVkdTTUlMRWxlbWVudDo6
cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0YSkKICAgICAKICAgICBTdHJpbmcgcGFy
c2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmlu
aXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmIChwYXJz
ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0
ZSgpOwogCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBTVkdTTUlMRWxlbWVudDo6cGFyc2VCZWdp
bk9yRW5kKGNvbnN0IFN0cmluZyYgcGFyc2VTdHJpbmcsIEJlZ2luT3JFbmQgYmVnaW4KIAogYm9v
bCBTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmJlZ2luQXR0cik7CiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjplbmRBdHRyKTsKQEAgLTYyMSw4ICs2MjEs
OCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc0Zyb3plbigpIGNvbnN0CiAgICAgCiBTVkdTTUlM
RWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiB7ICAgIAot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXZlciwgKCJuZXZl
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2hlbk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0
aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG5ldmVyLCAoIm5ldmVy
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHdoZW5Ob3RBY3RpdmUsICgi
d2hlbk5vdEFjdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZmFzdEdldEF0dHJpYnV0ZShTVkdOYW1lczo6
cmVzdGFydEF0dHIpOwogICAgIGlmICh2YWx1ZSA9PSBuZXZlcikKICAgICAgICAgcmV0dXJuIFJl
c3RhcnROZXZlcjsKQEAgLTYzMyw3ICs2MzMsNyBAQCBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBT
VkdTTUlMRWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6Rmls
bE1vZGUgU1ZHU01JTEVsZW1lbnQ6OmZpbGwoKSBjb25zdAogeyAgIAotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmcmVlemUsICgiZnJlZXplIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZyZWV6ZSwgKCJmcmVlemUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmZpbGxBdHRyKTsKICAgICByZXR1cm4gdmFs
dWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxSZW1vdmU7CiB9CkBAIC02NjYsNyArNjY2
LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJlcGVhdENvdW50KCkgY29uc3QKICAgICBp
ZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6dW5yZXNvbHZlZCgp
OwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5p
dGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmICh2YWx1ZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAg
ICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogICAgIGJvb2wgb2s7CkBAIC0xMTE2
LDcgKzExMTYsNyBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojpwcm9ncmVzcyhTTUlMVGltZSBlbGFw
c2VkLCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCwgYgogdm9pZCBTVkdTTUlMRWxlbWVu
dDo6bm90aWZ5RGVwZW5kZW50c0ludGVydmFsQ2hhbmdlZChOZXdPckV4aXN0aW5nSW50ZXJ2YWwg
bmV3T3JFeGlzdGluZykKIHsKICAgICBBU1NFUlQobV9pbnRlcnZhbEJlZ2luLmlzRmluaXRlKCkp
OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTVkdTTUlMRWxlbWVudCo+LCBsb29w
QnJlYWtlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFNWR1NNSUxFbGVtZW50Kj4sIGxvb3BCcmVha2VyLCAoKSk7CiAgICAgaWYgKGxvb3BCcmVha2Vy
LmNvbnRhaW5zKHRoaXMpKQogICAgICAgICByZXR1cm47CiAgICAgbG9vcEJyZWFrZXIuYWRkKHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eU1hY3Jvcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCmluZGV4IGU1MWYyOTYyYjc5NWUzNTYzMzgyNTdiZjM4M2Zk
OGZkNDA0MjY4ZjUuLjQ4NDVhMjA2M2UxMzQ5MGRkNjM3ZDJiNGZhYzJkNmNiYTE3NzY2YzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVy
dHlNYWNyb3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5TWFjcm9zLmgKQEAgLTcwLDcgKzcwLDcgQEAgc3RydWN0IFNWR1N5bmNocm9uaXph
YmxlQW5pbWF0ZWRQcm9wZXJ0eSB7CiAjZGVmaW5lIEJFR0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BS
T1BFUlRJRVMoT3duZXJUeXBlKSBcCiBTVkdBdHRyaWJ1dGVUb1Byb3BlcnR5TWFwJiBPd25lclR5
cGU6OmF0dHJpYnV0ZVRvUHJvcGVydHlNYXAoKSBcCiB7IFwKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIHNfYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCwg
KCkpOyBcCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRv
UHJvcGVydHlNYXAsIHNfYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCwgKCkpOyBcCiAgICAgcmV0dXJu
IHNfYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcDsgXAogfSBcCiBcCkBAIC05Miw3ICs5Miw3IEBAIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0aWVzRm9yIyNPd25lclR5cGUoKSBcCiAv
LyBQcm9wZXJ0eSBkZWZpbml0aW9uIGhlbHBlcnMgKHVzZWQgaW4gU1ZHKi5jcHAgZmlsZXMpCiAj
ZGVmaW5lIERFRklORV9BTklNQVRFRF9QUk9QRVJUWShBbmltYXRlZFByb3BlcnR5VHlwZUVudW0s
IE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBTVkdET01BdHRyaWJ1dGVJZGVudGlmaWVyLCBVcHBl
clByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBjb25zdCBTVkdQcm9wZXJ0eUluZm8qIE93bmVy
VHlwZTo6TG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZvKCkgeyBcCi0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTVkdQcm9wZXJ0eUluZm8sIHNfcHJvcGVydHlJbmZvLCBcCisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFNWR1Byb3BlcnR5SW5mbywgc19wcm9w
ZXJ0eUluZm8sIFwKICAgICAgICAgICAgICAgICAgICAgICAgIChBbmltYXRlZFByb3BlcnR5VHlw
ZUVudW0sIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eUlzUmVhZFdyaXRlLCBc
CiAgICAgICAgICAgICAgICAgICAgICAgICAgRE9NQXR0cmlidXRlLCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZs
LmNwcAppbmRleCA1ZTlhYzllYTgwNzQwNjE2NTE2N2E1ZmJlNDZhNzU4NTNmOTI3OWNjLi5lNDRk
ZmE0ZDNlNDkyYWVlZjhmMzNkZTU0Y2M0NDNkZTZhOWU2YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHZvaWQgUGxh
dGZvcm1TdHJhdGVnaWVzRWZsOjppbml0aWFsaXplKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFBsYXRmb3JtU3RyYXRlZ2llc0VmbCwgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc0VmbCwgcGxh
dGZvcm1TdHJhdGVnaWVzLCAoKSk7CiAgICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKCZwbGF0Zm9y
bVN0cmF0ZWdpZXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X21haW4uY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAppbmRleCA3MmZm
Y2Q2MGY3NjcyMTk5YTc3MTM0M2ZhZTczOThlYmI2ZWFjZjg0Li4yNjk4NzYyZGZkMjBkMWQyNzk0
ODc2OGU4NWQ1MjE4ZDQ2NGFkZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX21haW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKQEAg
LTE2Myw3ICsxNjMsNyBAQCBpbnQgZXdrX3NodXRkb3duKHZvaWQpCiAKIHN0YXRpYyBXZWJDb3Jl
OjpTdG9yYWdlVHJhY2tlckNsaWVudEVmbCogdHJhY2tlckNsaWVudCgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlckNsaWVudEVmbCwgdHJhY2tlckNs
aWVudCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChXZWJDb3JlOjpT
dG9yYWdlVHJhY2tlckNsaWVudEVmbCwgdHJhY2tlckNsaWVudCwgKCkpOwogICAgIHJldHVybiAm
dHJhY2tlckNsaWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9F
bW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvaW9zL01pc2MvRW1v
amlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXggZDViZTBjYTY2ZmQzZjdkZjFkYjg1YjY5
ZjVjMzQ1NjcxZjA1YjQyMy4uZjQ2NGE3ZmJhNDg3OGFmMjNkYThhYTA2ZWM0MWYzNjBmNDVkMmZj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNl
bGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250
U2VsZWN0b3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBQYXNzUmVmUHRyPEZvbnREYXRhPiBFbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yOjpnZXRGYWxs
YmFja0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBzaXpl
X3QpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGFwcGxlQ29sb3JF
bW9qaSwgKCJBcHBsZSBDb2xvciBFbW9qaSIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhcHBsZUNvbG9yRW1vamksICgiQXBwbGUgQ29sb3IgRW1v
amkiKSk7CiAgICAgUmVmUHRyPEZvbnREYXRhPiBmb250RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRD
YWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGFwcGxlQ29sb3JFbW9qaSk7CiAgICAgaWYg
KCFmb250RGF0YSkgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBnZXQgXCJBcHBsZSBD
b2xvciBFbW9qaVwiIGZyb20gdGhlIGZvbnQgY2FjaGUuIFVzaW5nIHRoZSBsYXN0IHJlc29ydCBm
YWxsYmFjayBmb250IGluc3RlYWQuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29udGVudC5tbSBiL1NvdXJjZS9XZWJLaXQv
aW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCmluZGV4IDgwNzQz
M2VmZGNmZDM4MGQ2YmE0MDUyMWI1ZjkyZDg4NDdkZjRkYmUuLmU4NjMwZWIzOWM3NzExZDkxYjMw
MmMzY2M4MjVhMDQ3YWE0YjgzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNv
cmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50Lm1tCkBAIC01MCw3ICs1
MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0YXRpYyBNdXRleCYgV2ViRml4ZWRQb3Np
dGlvbkNvbnRlbnREYXRhTG9jaygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwg
bXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11
dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGY2YWE1YzI4NWM3YTRlYzRiNGZj
MTI1ZmQ0Y2MzN2RhM2Q1ZmJiMmYuLmM1OWZmZGM2NGM2OTAxYWUyY2Y5MGRmYzFlNzNkNTJmNDc2
NDcwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0Zvcndh
cmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRM
aXN0Lm1tCkBAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgSGFzaE1hcDxCYWNrRm9yd2FyZExpc3Qq
LCBXZWJCYWNrRm9yd2FyZExpc3QqPiBCYWNrRm9yd2FyZExpc3RNYXA7CiAvLyB3aXRoIGEgcG9p
bnRlciB0byBhIFdlYkJhY2tGb3J3YXJkTGlzdCBpbiBpdC4KIHN0YXRpYyBCYWNrRm9yd2FyZExp
c3RNYXAmIGJhY2tGb3J3YXJkTGlzdHMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQmFj
a0ZvcndhcmRMaXN0TWFwLCBzdGF0aWNCYWNrRm9yd2FyZExpc3RzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJhY2tGb3J3YXJkTGlzdE1hcCwgc3RhdGljQmFja0Zv
cndhcmRMaXN0cywgKCkpOwogICAgIHJldHVybiBzdGF0aWNCYWNrRm9yd2FyZExpc3RzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBlMDFl
NGI1MzQxOWQ1MTAwY2IzMWQ5M2M0ZmQ3ZGY1ZWY0ODM4NzNkLi45ZjE4OWNiMGI2MDZiMzRhMjVj
MmUwOGFkZjhiOTI2MTk3NzEwYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0
b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2Vi
SGlzdG9yeUl0ZW0ubW0KQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkNvcmVI
aXN0b3J5SXRlbSogY29yZShXZWJIaXN0b3J5SXRlbVByaXZhdGUqIGl0ZW1Qcml2YXRlKQogCiBz
dGF0aWMgSGlzdG9yeUl0ZW1NYXAmIGhpc3RvcnlJdGVtV3JhcHBlcnMoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSGlzdG9yeUl0ZW1NYXAsIGhpc3RvcnlJdGVtV3JhcHBlcnMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGlzdG9yeUl0ZW1NYXAsIGhpc3Rv
cnlJdGVtV3JhcHBlcnMsICgpKTsKICAgICByZXR1cm4gaGlzdG9yeUl0ZW1XcmFwcGVyczsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpp
bmRleCBiY2M1ZjE5ZGM2MjA4OWExZjNiYzdiNTE4YzZjYWQ2MTA2ZTQ2YzFiLi45ODZhYjg0ODdl
ZmM3NjUzNmFkOTUyMzNlZDAyMTVhNWFmNmZlZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtNTksNyArNTksNyBAQCBOU1N0cmlu
ZyAqV2ViVVJMTmFtZVBib2FyZFR5cGUgPSBAInB1YmxpYy51cmwtbmFtZSI7CiAKICsgKE5TQXJy
YXkgKilfd2ViX3dyaXRhYmxlVHlwZXNGb3JVUkwKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFJldGFpblB0cjxOU0FycmF5PiwgdHlwZXMsIChbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2Jq
ZWN0czoKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPE5TQXJy
YXk+LCB0eXBlcywgKFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOgogICAgICAgICBX
ZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUsCiAgICAgICAgIE5TVVJMUGJvYXJkVHlwZSwKICAg
ICAgICAgV2ViVVJMUGJvYXJkVHlwZSwKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIGlubGluZSBO
U0FycmF5ICpfY3JlYXRlV3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aG91dEFyY2hpdmUoKQogCiBz
dGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhvdXRBcmNoaXZlICh2b2lk
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPE5TQXJyYXk+LCB0eXBlcywg
KF9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRob3V0QXJjaGl2ZSgpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0cjxOU0FycmF5PiwgdHlwZXMsIChf
Y3JlYXRlV3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aG91dEFyY2hpdmUoKSkpOwogICAgIHJldHVy
biB0eXBlcy5nZXQoKTsKIH0KIApAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgaW5saW5lIE5TQXJy
YXkgKl9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSgpCiAKIHN0YXRpYyBO
U0FycmF5ICpfd3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aEFyY2hpdmUgKHZvaWQpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNBcnJheT4sIHR5cGVzLCAoX2NyZWF0ZVdy
aXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZlKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPE5TQXJyYXk+LCB0eXBlcywgKF9jcmVhdGVXcml0YWJs
ZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSgpKSk7CiAgICAgcmV0dXJuIHR5cGVzLmdldCgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRv
ci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tCmluZGV4
IDM0NWEyZGY3MWY3N2IzZWU4ZWExZmY5YjlhMjcxYzYzY2M1NGNjZTUuLmYzZWVhNjFkNTYwYjYx
YWI0YmVjOTY5OTg5NDNlYmU3MDc1NjE4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViU3RyaW5nVHJ1bmNhdG9yLm1tCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBOU0ZvbnQgKmRl
ZmF1bHRNZW51Rm9udCgpCiBzdGF0aWMgRm9udCYgZm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250
KQogewogICAgIHN0YXRpYyBOU0ZvbnQgKmN1cnJlbnRGb250OwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoRm9udCwgY3VycmVudFJlbmRlcmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEZvbnQsIGN1cnJlbnRSZW5kZXJlciwgKCkpOwogCiAgICAgaWYgKFtmb250
IGlzRXF1YWw6Y3VycmVudEZvbnRdKQogICAgICAgICByZXR1cm4gY3VycmVudFJlbmRlcmVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggMWI1MzY4MGY5MTIwM2VhMmM4ZWVhOGEzOWE2
MjQ1NTg0MDAzNDI4OS4uYjBhOGY3OTY1ZjY2ZTA3ODMwYzQ2YmE2NTIzYzczMDhiMDA4YjJjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyJiBOZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyOjpzaGFyZWQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTmV0c2NhcGVQbHVn
aW5Ib3N0TWFuYWdlciwgcGx1Z2luSG9zdE1hbmFnZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciwgcGx1Z2luSG9zdE1h
bmFnZXIsICgpKTsKICAgICAKICAgICByZXR1cm4gcGx1Z2luSG9zdE1hbmFnZXI7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhv
c3RQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSG9zdFByb3h5Lm1tCmluZGV4IDg1ZmQ3YmRhNTNjNDRmMzg5YTk1ZjEzNzU0M2U4ZmVkMDZk
ZDdhZjkuLmRiNTNiOWQ0M2U2ZTkyM2I2OGU0ODZhMDljYWY0YWExOTYzOTM3NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFBy
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSG9zdFByb3h5Lm1tCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiB0eXBlZGVmIEhhc2hN
YXA8bWFjaF9wb3J0X3QsIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5Kj4gUGx1Z2luUHJveHlNYXA7
CiBzdGF0aWMgUGx1Z2luUHJveHlNYXAmIHBsdWdpblByb3h5TWFwKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFBsdWdpblByb3h5TWFwLCBwbHVnaW5Qcm94eU1hcCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5Qcm94eU1hcCwgcGx1Z2luUHJveHlN
YXAsICgpKTsKICAgICAKICAgICByZXR1cm4gcGx1Z2luUHJveHlNYXA7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0KaW5kZXggM2JjYTczZTIxY2YwYWQwODRhODUwYjA3ODllM2YzYjYz
ZWExOTEzMi4uNTM4NjFkNTEwZDI3ZjU5NTkwZWMwMTRmMzBhMjE2NWEzYWMyMTQzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTY2Myw3ICsxNjYzLDcgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnByaXZhdGVCcm93c2luZ01vZGVEaWRDaGFuZ2UoYm9v
bCBpc1ByaXZhdGVCcm8KIAogc3RhdGljIFN0cmluZyYgZ2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3RyaW5nLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZXhjZXB0aW9uU3Ry
aW5nLCAoKSk7CiAgICAgcmV0dXJuIGV4Y2VwdGlvblN0cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KaW5kZXggMjY5YzFm
YzA2NmM3Y2ZlZjU2MGEzZDRmNmU3ODEyZTYyZDVlOTg1NC4uNzgzMTYzZWEyYWY2NmFlYzUwZGU3
ZGI2NGU2OTE2NmU0ZGNlYjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC02NSw3ICs2NSw3IEBAIEZpZWxkKiBQcm94eUNs
YXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0
YW5jZSkgY29uCiAKIHN0YXRpYyBQcm94eUNsYXNzKiBwcm94eUNsYXNzKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFByb3h5Q2xhc3MsIHByb3h5Q2xhc3MsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHJveHlDbGFzcywgcHJveHlDbGFzcywgKCkpOwogICAg
IHJldHVybiAmcHJveHlDbGFzczsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCmluZGV4IDhjYTJhYTRiZGRiNmQ3
YTlmZGNkYWMyYTUyNzRiN2QwMzE3M2Q2ZjAuLjZiYjgyOTdiYzExZDg1M2E0ZDgzOTIxNjU2Zjk0
NDc2MzZmNzQyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblN0cmVhbS5tbQpAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogdHlwZWRl
ZiBIYXNoTWFwPE5QU3RyZWFtKiwgTlBQPiBTdHJlYW1NYXA7CiBzdGF0aWMgU3RyZWFtTWFwJiBz
dHJlYW1zKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmVhbU1hcCwgc3RhdGljU3Ry
ZWFtcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJlYW1NYXAs
IHN0YXRpY1N0cmVhbXMsICgpKTsKICAgICByZXR1cm4gc3RhdGljU3RyZWFtczsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQppbmRleCBl
YmJhZWIwN2U1NjY5NGUzMDNlOGY4OTE0ZjQwYWEwNWVmOWFjMWY1Li42YTc3M2U3NmUyY2MzZGQw
MTEwNTdmYjBkYWYzM2U0YTQ0YzA5NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9T
dG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9y
YWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBib29s
IGlzRmlsZUhpZGRlbihOU1N0cmluZyAqZmlsZSkKIAogc3RhdGljIE11dGV4JiB0cmFuc2FjdGlv
bkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmlu
ZGV4IDA2MmM1ZTQ2MjAzZWExYjlmZGQyZmE3ZWVjMDk0Nzc2Mjk4Yzg2N2QuLjFhNjQ0MGQ5NWZh
M2FkYjRmMmQ5NTcwMGQwYjkxZGFkZDdhOGFkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTU2LDcgKzU2
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiwgUmV0YWluUHRy
PFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyPj4KIAogc3RhdGljIFVzZXJNZWRpYVJlcXVlc3Rz
TWFwJiB1c2VyTWVkaWFSZXF1ZXN0c01hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChV
c2VyTWVkaWFSZXF1ZXN0c01hcCwgcmVxdWVzdHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVXNlck1lZGlhUmVxdWVzdHNNYXAsIHJlcXVlc3RzLCAoKSk7CiAgICAg
cmV0dXJuIHJlcXVlc3RzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IGI0NzIxNDIzNjI0NWJmMTQ3ZGI4ZGFmOTJh
ZjNhNWY5ZjFhZTlmMzEuLjdlMWZlNWRmZDBjYmQwYThiNzRlNzIxNmRmZTE1YmRlOWIyODhhYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0
aW9uLm1tCkBAIC0zNjMsOCArMzYzLDggQEAgc3RhdGljIFJlZ3VsYXJFeHByZXNzaW9uKiByZWdF
eHBGb3JMYWJlbHMoTlNBcnJheSAqbGFiZWxzKQogICAgIC8vIHRoYXQgdGhlIGFwcCB3aWxsIHVz
ZSBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaXMgdXNlZCBpbiBzZWFyY2hpbmcu
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCByZWdFeHBDYWNoZVNpemUgPSA0OwogICAg
IHN0YXRpYyBOU011dGFibGVBcnJheSogcmVnRXhwTGFiZWxzID0gbmlsOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoVmVjdG9yPFJlZ3VsYXJFeHByZXNzaW9uKj4sIHJlZ0V4cHMsICgpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZ3VsYXJFeHByZXNzaW9uLCB3b3JkUmVnRXhwLCAoIlxc
dyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFZlY3RvcjxSZWd1bGFyRXhwcmVzc2lvbio+LCByZWdFeHBzLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZ3VsYXJFeHByZXNzaW9uLCB3b3JkUmVnRXhwLCAo
IlxcdyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CiAKICAgICBSZWd1bGFyRXhwcmVzc2lvbiogcmVz
dWx0OwogICAgIGlmICghcmVnRXhwTGFiZWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGY0ZmIxYmM3YzAyNzIxNWZjZWU0MDZlY2MwNWQxNzRiMGNhNjc0OTkuLjQ5Nzll
MGVjYmI1YTYzZjU3NDc1ZjMyYjBiNzYzMTE4Y2VhZWVjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KQEAgLTY3OTEsNyArNjc5MSw3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnRE
ZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSBqCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAob2JqZWN0LT5p
bmhlcml0cyhKU0FycmF5OjppbmZvKCkpKSB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8SlNPYmplY3QqPiwgdmlzaXRlZEVsZW1zLCAoKSk7CisgICAgICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxKU09iamVjdCo+LCB2aXNpdGVk
RWxlbXMsICgpKTsKICAgICAgICAgICAgIGlmICghdmlzaXRlZEVsZW1zLmNvbnRhaW5zKG9iamVj
dCkpIHsKICAgICAgICAgICAgICAgICB2aXNpdGVkRWxlbXMuYWRkKG9iamVjdCk7CiAgICAgICAg
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCA2MTdkN2U1OGMzNDNlMjc3ZjU4YTQz
NWQzOTI1ODkzZDY1MTk3YjNkLi45YmE2NTM3NDY5Yzg4OGY3MTQ1YTA1NGI0OTAxNzczZjhlMWQ0
MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYlBsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZv
cm1TdHJhdGVnaWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdl
YlBsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CiB9CiAKIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViSGlz
dG9yeS5jcHAKaW5kZXggNzFkMWU2ZDZkM2Q1YTI3YzQwMWZiNzYxYTkwYjUzZDY3OTczNTIyZS4u
NjMxOGI1NzAwM2Q0ZTBhMDcwNjI0N2VkMDY5MWFhMWE0YWQ3OGFiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
SGlzdG9yeS5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCBVTE9ORyBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJIaXN0b3J5OjpSZWxlYXNlKHZvaWQpCiAKIHN0YXRpYyBpbmxpbmUgQ09NUHRyPFdlYkhpc3Rv
cnk+JiBzaGFyZWRIaXN0b3J5U3RvcmFnZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
T01QdHI8V2ViSGlzdG9yeT4sIHNoYXJlZEhpc3RvcnksICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQ09NUHRyPFdlYkhpc3Rvcnk+LCBzaGFyZWRIaXN0b3J5LCAoKSk7
CiAgICAgcmV0dXJuIHNoYXJlZEhpc3Rvcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJM
b2NhbGl6YWJsZVN0cmluZ3MuY3BwCmluZGV4IDk1N2IzYWRlOTA2ZTUyZmM2YzZlZjc0OTVhZGZi
MTU1MmI2MDZlZWYuLjRkZDExZDRkOGU3MzEzZmQ1ZDg3M2Q4ODdiYTBmYmExNmRjY2E1YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFibGVTdHJpbmdzLmNwcApAQCAtNDcsMjUg
KzQ3LDI1IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIExvY2FsaXplZFN0cmluZyo+IExvY2Fs
aXplZFN0cmluZ01hcDsKIAogc3RhdGljIE11dGV4JiBtYWluQnVuZGxlTG9jU3RyaW5nc011dGV4
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKICAgICByZXR1
cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBMb2NhbGl6ZWRTdHJpbmdNYXAmIG1haW5CdW5kbGVMb2NT
dHJpbmdzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwg
bWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsaXplZFN0
cmluZ01hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIAogc3RhdGljIE11dGV4JiBm
cmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0
ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4
LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsKIH0KIAogc3RhdGljIExvY2FsaXplZFN0
cmluZ01hcCBmcmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA2YTIyNTJmNjg1NTM3ZDIyZDgwYzY3ZjlmMDM2
MjM0YWQ5N2UxMTY0Li4zMDY2OTgzY2VhZTM5YjRmZDJmNGQ0ZTg4MGQxYmYxZGYyOWUxZWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTMyMSw4ICsxMzIxLDggQEAgYm9vbCBXZWJWaWV3Ojpj
YW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
IAogU3RyaW5nIFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgb3NWZXJzaW9uLCAod2luZG93c1ZlcnNpb25Gb3JVQVN0cmluZygpKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZlcnNpb24sICh3ZWJLaXRWZXJzaW9u
U3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBv
c1ZlcnNpb24sICh3aW5kb3dzVmVyc2lvbkZvclVBU3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCAod2ViS2l0VmVyc2lv
blN0cmluZygpKSk7CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKCIsIG9z
VmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2Ug
R2Vja28pIiwgYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/ICIiIDogIiAiLCBhcHBsaWNhdGlv
bk5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggZGU4ZGE0ZDAxNDMyNWVh
OWNjZDZkZGFjNGEzNGU5OTA1ODhkMWI4NS4uNGM2MWRiYjBmNGMxM2ZmZjM5Y2QwZDM4NTBhZmE1
ZmFiNGY1MDg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6On5GcmFtZUxvYWRlckNsaWVudFdpbkNFKCkKIAogU3Ry
aW5nIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnVzZXJBZ2VudChjb25zdCBVUkwmKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1c2VyQWdlbnRTdHJpbmcsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1c2VyQWdlbnRTdHJpbmcsICgp
KTsKIAogICAgIGlmICh1c2VyQWdlbnRTdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgU3RyaW5n
IHdlYktpdFZlcnNpb24gPSBTdHJpbmc6OmZvcm1hdCgiJWQuJWQiLCBXRUJLSVRfTUFKT1JfVkVS
U0lPTiwgV0VCS0lUX01JTk9SX1ZFUlNJT04pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcApp
bmRleCAyZGM5OWNkZjY2MjdiNzFhNTVmYjg1ZjVlMDViNjBiNGRhYmE1YTU2Li5jNjUxOTM4ZmRl
MTc4MjhhODBmNmRlNDlmMjczOWQyMjVkNDU2YzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNF
LmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9pZCBQ
bGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRSwgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFLCBwbGF0Zm9ybVN0cmF0ZWdpZXMsICgpKTsKIH0KIAogUGxhdGZvcm1TdHJhdGVnaWVzV2lu
Q0U6OlBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJD
dXJzb3IuY3BwCmluZGV4IDVkZTM1OTBmMjEyNzk3OGNmNGUzNTM4MWIzOWI0ZDczZGI2NTQzM2Uu
LjkzMmJmNzM4YWUwMmUwODc4YTMwNjBkOTBjMzNmMDQ5NDlhNWZjZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1
cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9z
cWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAtNjksNyArNjksNyBAQCBTUUxpdGVJREJDdXJz
b3I6OlNRTGl0ZUlEQkN1cnNvcihTUUxpdGVJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGNv
bnN0IElEQklkZQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRJbmRleFN0YXRlbWVudChib29s
IGhhc0xvd2VyS2V5LCBib29sIGlzTG93ZXJPcGVuLCBib29sIGhhc1VwcGVyS2V5LCBib29sIGlz
VXBwZXJPcGVuLCBib29sIGRlc2NlbmRpbmcsIGJvb2wgdW5pcXVlKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIGluZGV4U3RhdGVtZW50cywgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwgaW5kZXhTdGF0ZW1l
bnRzLCAoKSk7CiAKICAgICBpZiAoaW5kZXhTdGF0ZW1lbnRzLmlzRW1wdHkoKSkgewogICAgICAg
ICBpbmRleFN0YXRlbWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxMik7CkBAIC0xMTUsNyAr
MTE1LDcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgZ2V0SW5kZXhTdGF0ZW1lbnQoYm9vbCBoYXNM
b3dlcktleSwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbAogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBn
ZXRPYmplY3RTdG9yZVN0YXRlbWVudChib29sIGhhc0xvd2VyS2V5LCBib29sIGlzTG93ZXJPcGVu
LCBib29sIGhhc1VwcGVyS2V5LCBib29sIGlzVXBwZXJPcGVuLCBib29sIGRlc2NlbmRpbmcpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwgc3RhdGVtZW50cywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwgc3Rh
dGVtZW50cywgKCkpOwogCiAgICAgaWYgKHN0YXRlbWVudHMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IHN0YXRlbWVudHMucmVzZXJ2ZUNhcGFjaXR5KDgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCmlu
ZGV4IDVjY2FiMTYxMWI2YjA0ZTgzODYyOWI4NjlhMGZmOTgzY2ZjMzFiYWQuLjU4ZTczZjkxZjdj
YmI0NTFmMjRiNDkxZjVlZDdmOWJmZWRmYTlkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNjb21wQnJva2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZpbHRlcnMvU2VjY29tcEJyb2tlci5jcHAK
QEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCByZWdpc3RlclNJR1NZU0hhbmRsZXIoKQog
CiBTZWNjb21wQnJva2VyQ2xpZW50JiBTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQoaW50IHNv
Y2tldCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNlY2NvbXBCcm9rZXJDbGllbnQsIGJy
b2tlckNsaWVudCwgKHNvY2tldCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTZWNjb21wQnJva2VyQ2xpZW50LCBicm9rZXJDbGllbnQsIChzb2NrZXQpKTsKIAogICAgIHJl
dHVybiBicm9rZXJDbGllbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5jcHAKaW5kZXgg
OGY2ODlhYzY3YTczYThjOTQ0MjQwNTA1MzgwZjIwZGY3MjkxM2U5NS4uNTEzNWY5Mjc1ZjZhY2My
OTNkMThiYTUzYzJkZjZiMmY2OWMxMTBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNw
cApAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgV2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZl
V2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0KFdlYlNvY2tldFNlcnZlckNvCiAgICAgU3RyaW5n
IHBhdGggPSByZXF1ZXN0LT51cmwoKTsKIAogICAgIC8vIE5PVEU6IEtlZXAgdGhpcyBpbiBzeW5j
IHdpdGggV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcy4KLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlv
blBhdGhQcmVmaXgsIChBU0NJSUxpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW5zcGVjdG9yV2ViU29j
a2V0Q29ubmVjdGlvblBhdGhQcmVmaXgsIChBU0NJSUxpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIp
KSk7CiAKICAgICAvLyBVbmtub3duIHBhdGggcmVxdWVzdGVkLgogICAgIGlmICghcGF0aC5zdGFy
dHNXaXRoKGluc3BlY3RvcldlYlNvY2tldENvbm5lY3Rpb25QYXRoUHJlZml4KSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMzM4YTRiYjYwZDA0
YjA4NjY4MmQxNmJiOGU4NWMzODY5OTU0ZTNjLi40NjI1MDFjY2YzZmZjMWQxOWVkMzE5NDE1ZDhj
MjhlM2UwYWMyMzY1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDMtMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4g
IDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVuYW1lIERFRklORV9TVEFUSUNfTE9D
QUwgdG8gREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2MTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgbmV3IGNvZGUgdXNlIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxUPiBpbnN0ZWFkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvSmF2YVNj
cmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChqYXZhU2NyaXB0VGhyZWFkc011dGV4KToKKyAg
ICAgICAgKGphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwv
RXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAodG91Y2hQb2ludExpc3QpOgorICAgICAgICAoZGVs
YXllZEV2ZW50UXVldWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9GcmFtZUxvYWRE
ZWxlZ2F0ZS5jcHA6CisgICAgICAgIChkZWxlZ2F0ZXNXaXRoRGVsYXllZFdvcmspOgorICAgICAg
ICAqIFNjcmlwdHMvY2hlY2stZm9yLWV4aXQtdGltZS1kZXN0cnVjdG9yczoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2VjY29tcEZpbHRlcnMuY3BwOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHA6CisgICAg
ICAgICh0ZXN0c01hcCk6CisKIDIwMTQtMDMtMTIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW0NNQUtFXSBUb28gdmVyYm9zZSBidWlsZCBv
dXRwdXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRp
bmcuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKaW5k
ZXggNWQ2NzNiODcwYWRkZTQ1YzVjNzBjNGJhNTJjNzkyN2Y1ZjVlMWQ2MS4uMWM5MjYyZTA3ZWZk
YzcxMjk5NjM2MjI3MmVkMTc3YWNkMzc2MzhiYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
SmF2YVNjcmlwdFRocmVhZGluZy5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBAQCBzdGF0aWMgSlNDb250
ZXh0R3JvdXBSZWYgamF2YVNjcmlwdFRocmVhZHNHcm91cDsKIAogc3RhdGljIE11dGV4JiBqYXZh
U2NyaXB0VGhyZWFkc011dGV4KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBz
dGF0aWNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgc3RhdGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9CiAKIHR5cGVk
ZWYgSGFzaFNldDxUaHJlYWRJZGVudGlmaWVyPiBUaHJlYWRTZXQ7CiBzdGF0aWMgVGhyZWFkU2V0
JiBqYXZhU2NyaXB0VGhyZWFkcygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChUaHJlYWRT
ZXQsIHN0YXRpY0phdmFTY3JpcHRUaHJlYWRzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFRocmVhZFNldCwgc3RhdGljSmF2YVNjcmlwdFRocmVhZHMsICgpKTsKICAg
ICBBU1NFUlQoIWphdmFTY3JpcHRUaHJlYWRzTXV0ZXgoKS50cnlMb2NrKCkpOwogICAgIHJldHVy
biBzdGF0aWNKYXZhU2NyaXB0VGhyZWFkczsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZl
bnRTZW5kZXIuY3BwCmluZGV4IDkyYjc4ODk5MTIxY2E4YTRiMGUwMmUxMjM0YWUzM2M1MmY4OTUz
ZTUuLmY5ODczZjI3ZmE5MjQ1NGYwZTNkOWQ0ZGViMzBkMTY5MGM2YTJiYmEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcApAQCAtMTY5LDEzICsxNjksMTMgQEAgc3Rh
dGljIHVuc2lnbmVkIHRvdWNoTW9kaWZpZXJzOwogCiBXVEY6OlZlY3RvcjxUb3VjaEV2ZW50SW5m
bz4mIHRvdWNoUG9pbnRMaXN0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VmVj
dG9yPFRvdWNoRXZlbnRJbmZvPiwgc3RhdGljVG91Y2hQb2ludExpc3QsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpWZWN0b3I8VG91Y2hFdmVudEluZm8+LCBz
dGF0aWNUb3VjaFBvaW50TGlzdCwgKCkpOwogICAgIHJldHVybiBzdGF0aWNUb3VjaFBvaW50TGlz
dDsKIH0KIAogV1RGOjpWZWN0b3I8RGVsYXllZEV2ZW50PiYgZGVsYXllZEV2ZW50UXVldWUoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpWZWN0b3I8RGVsYXllZEV2ZW50Piwgc3Rh
dGljRGVsYXllZEV2ZW50UXVldWUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoV1RGOjpWZWN0b3I8RGVsYXllZEV2ZW50Piwgc3RhdGljRGVsYXllZEV2ZW50UXVldWUs
ICgpKTsKICAgICByZXR1cm4gc3RhdGljRGVsYXllZEV2ZW50UXVldWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRnJhbWVMb2FkRGVsZWdhdGUuY3BwCmluZGV4IDBlYTQwZmEx
N2E0YmEyOTg0MDc3YjRiOTYzMmY4YTFjZjFkMDJlY2MuLmFmNDU4ZmJiMjQ3NGMyMzQ3MTQ1YzIw
MjMwY2IxY2Y4YmQ4YzdiMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9G
cmFtZUxvYWREZWxlZ2F0ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0ZyYW1l
TG9hZERlbGVnYXRlLmNwcApAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgRnJhbWVMb2FkRGVsZWdh
dGU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogdHlwZWRlZiBWZWN0b3I8Q09NUHRyPEZyYW1l
TG9hZERlbGVnYXRlPiA+IERlbGVnYXRlVmVjdG9yOwogc3RhdGljIERlbGVnYXRlVmVjdG9yJiBk
ZWxlZ2F0ZXNXaXRoRGVsYXllZFdvcmsoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRGVs
ZWdhdGVWZWN0b3IsIGRlbGVnYXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChEZWxlZ2F0ZVZlY3RvciwgZGVsZWdhdGVzLCAoKSk7CiAgICAgcmV0dXJuIGRlbGVn
YXRlczsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9jaGVjay1mb3ItZXhpdC10aW1l
LWRlc3RydWN0b3JzIGIvVG9vbHMvU2NyaXB0cy9jaGVjay1mb3ItZXhpdC10aW1lLWRlc3RydWN0
b3JzCmluZGV4IGFlOGZjMGQ1OTY3OWZjNDEzYjQwMjlkYzgyOTMxNjc2MDk2ZTY2ZGQuLmE2MDY3
NWMwN2IzYmFkYmQ0MmMxYmY5MWQ2YWRmZWZkMzIzZDYyOGQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvY2hlY2stZm9yLWV4aXQtdGltZS1kZXN0cnVjdG9ycworKysgYi9Ub29scy9TY3JpcHRz
L2NoZWNrLWZvci1leGl0LXRpbWUtZGVzdHJ1Y3RvcnMKQEAgLTk3LDcgKzk3LDcgQEAgZm9yIG15
ICRmaWxlIChzb3J0IEBmaWxlcykgewogfQogCiBpZiAoJHNhd0Vycm9yIGFuZCAhJGNvdmVyYWdl
QnVpbGQpIHsKLSAgICBwcmludCAiRVJST1I6IFVzZSBERUZJTkVfU1RBVElDX0xPQ0FMIGZyb20g
PHd0Zi9TdGRMaWJFeHRyYXMuaD5cbiI7CisgICAgcHJpbnQgIkVSUk9SOiBVc2UgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMIGZyb20gPHd0Zi9TdGRMaWJFeHRyYXMuaD5cbiI7CiAgICAg
dW5saW5rICRleGVjdXRhYmxlUGF0aDsKICAgICBleGl0IDE7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2VjY29tcEZpbHRlcnMuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1NlY2NvbXBGaWx0ZXJzLmNwcAppbmRleCBjNjY2
YmY2ODcyY2JkZTg1ZTlkNDQ0ZTljMWZjZjJkOGRjZmE5NGY5Li4zODkxZDhlMzQ0ZDk0OTBjNTY1
NjJlYjIzMmZlZTUzNmM2OThiZmUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvU2VjY29tcEZpbHRlcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9TZWNjb21wRmlsdGVycy5jcHAKQEAgLTQyLDE2ICs0MiwxNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLURFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCByb290RGlyLCAoQVNDSUlMaXRlcmFsKCIvIikpKTsKLURF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBob21lRGlyLCAoU3RyaW5nKGdldGVudigiSE9NRSIp
KSkpOwotREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHVzckRpciwgKEFTQ0lJTGl0ZXJhbCgi
L3VzciIpKSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdXNyU2JpbkRpciwgKEFTQ0lJ
TGl0ZXJhbCgiL3Vzci9zYmluIikpKTsKLURFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0
RGlyUmVhZCwgKEFTQ0lJTGl0ZXJhbCgiL3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0UmVh
ZCIpKSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdGVzdERpcldyaXRlLCAoQVNDSUlM
aXRlcmFsKCIvdG1wL1dlYktpdFNlY2NvbXBGaWx0ZXJzL3Rlc3RXcml0ZSIpKSk7Ci1ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgdGVzdERpclJlYWRBbmRXcml0ZSwgKEFTQ0lJTGl0ZXJhbCgi
L3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0UmVhZEFuZFdyaXRlIikpKTsKLURFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0RGlyTm90QWxsb3dlZCwgKEFTQ0lJTGl0ZXJhbCgiL3Rt
cC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0Tm90QWxsb3dlZCIpKSk7Ci1ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgdGVzdEZpbGVOb3RBbGxvd2VkLCAodGVzdERpclJlYWRBbmRXcml0ZSAr
ICIvdGVzdEZpbGVQb2xpY3kiKSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdGVzdEZp
bGVSZWFkQW5kV3JpdGUsICh0ZXN0RGlyTm90QWxsb3dlZCArICIvdGVzdEZpbGVQb2xpY3kiKSk7
CitERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCByb290RGlyLCAoQVNDSUlM
aXRlcmFsKCIvIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGhv
bWVEaXIsIChTdHJpbmcoZ2V0ZW52KCJIT01FIikpKSk7CitERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCB1c3JEaXIsIChBU0NJSUxpdGVyYWwoIi91c3IiKSkpOworREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdXNyU2JpbkRpciwgKEFTQ0lJTGl0ZXJh
bCgiL3Vzci9zYmluIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHRlc3REaXJSZWFkLCAoQVNDSUlMaXRlcmFsKCIvdG1wL1dlYktpdFNlY2NvbXBGaWx0ZXJzL3Rl
c3RSZWFkIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRlc3RE
aXJXcml0ZSwgKEFTQ0lJTGl0ZXJhbCgiL3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0V3Jp
dGUiKSkpOworREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdGVzdERpclJl
YWRBbmRXcml0ZSwgKEFTQ0lJTGl0ZXJhbCgiL3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0
UmVhZEFuZFdyaXRlIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHRlc3REaXJOb3RBbGxvd2VkLCAoQVNDSUlMaXRlcmFsKCIvdG1wL1dlYktpdFNlY2NvbXBGaWx0
ZXJzL3Rlc3ROb3RBbGxvd2VkIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHRlc3RGaWxlTm90QWxsb3dlZCwgKHRlc3REaXJSZWFkQW5kV3JpdGUgKyAiL3Rlc3RG
aWxlUG9saWN5IikpOworREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdGVz
dEZpbGVSZWFkQW5kV3JpdGUsICh0ZXN0RGlyTm90QWxsb3dlZCArICIvdGVzdEZpbGVQb2xpY3ki
KSk7CiAKIHN0YXRpYyBjb25zdCBtb2RlX3QgZGVmYXVsdE1vZGUgPSBTX0lSVVNSIHwgU19JV1VT
UiB8IFNfSVhVU1I7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IGNmZjFhMjUyYmQ4ZWZhMzI3MDc5ZTFk
NWE0ODYyNzVlZDRjNTFjOGIuLjI0YzRmOTQwNjJiYjVlY2M5ZTg4ZDM2NjA3NWQ5MzRlYzVlZDZi
YjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQ
cm9jZXNzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1dlYlByb2Nlc3NUZXN0LmNwcApAQCAtMjYsNyArMjYsNyBAQAogdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgc3RkOjpmdW5jdGlvbjxQYXNzT3duUHRyPFdlYlByb2Nlc3NUZXN0PiAoKT4+IFRlc3Rz
TWFwOwogc3RhdGljIFRlc3RzTWFwJiB0ZXN0c01hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChUZXN0c01hcCwgc190ZXN0c01hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChUZXN0c01hcCwgc190ZXN0c01hcCwgKCkpOwogICAgIHJldHVybiBzX3Rlc3Rz
TWFwOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226588</attachid>
            <date>2014-03-13 03:37:49 -0700</date>
            <delta_ts>2014-03-13 09:58:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129612-20140313113720.patch</filename>
            <type>text/plain</type>
            <size>444761</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NWZmZmU5NzBhMDVmYzE0YjI4MjVmMmFmZTA3MDg2NDM0OThkMGJkLi41N2EwZTQyZDJkNWE5MmYw
OGQ1NTkyN2ZjMzc3MjEwZDY5ZGE1YTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+
IGluc3RlYWQuCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAg
ICAoanNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXIpOgorICAgICAgICAqIEFQSS9KU01hbmFn
ZWRWYWx1ZS5tbToKKyAgICAgICAgKG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpvYmplY3RHcm91cEZvckJyZWFrcG9pbnRBY3Rpb24pOgorICAgICAgICAqIGlu
c3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5OgorICAgICAg
ICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAgICAgICAoSlNDOjpzdGFja1N0YXRpc3Rp
Y3NNdXRleCk6CisgICAgICAgICogaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0b3JzKToKKwogMjAxNC0w
My0xMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElP
TiBGQUlMRUQ6IG5vZGUtPm9wKCkgPT0gUGhpIHx8IG5vZGUtPm9wKCkgPT0gU2V0QXJndW1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYTlhMmVkZmVkY2EzMDY1MzE4ZGM0ZWVmY2JiYzFhZjg5ZmU4MTU5Mi4uMDU4ODhiNTVh
ZDViOGVkODRiMjg1NjNjMmI1MzMzYzFmZTAyMmUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
NC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+IGluc3RlYWQuCisKKyAg
ICAgICAgKiB3dGYvUnVuTG9vcC5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmN1cnJlbnQp
OgorICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5n
UHRocmVhZHMuY3BwOgorICAgICAgICAoV1RGOjp0aHJlYWRNYXBNdXRleCk6CisgICAgICAgIChX
VEY6OnRocmVhZE1hcCk6CisgICAgICAgICogd3RmL2VmbC9NYWluVGhyZWFkRWZsLmNwcDoKKyAg
ICAgICAgKFdURjo6cGlwZU9iamVjdCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nU3RhdGlj
cy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmVtcHR5KToKKwogMjAxNC0wMy0xMiAg
Unl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRW5h
YmxlIFBhcmFsbGVsIEdDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAwNTA5N2Q1ZWY3MDk0NjNhOGIwNDk4MjZh
NGVjN2UxYTE5NTM3NS4uZWMxZWRkM2JjZjcwNTY4YmRmZWI4ZGZmNGRjZDlkNTIwMzg2ZTRmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAzLTEyICBTZXJnaW8gVmlsbGFyIFNl
bmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbmFtZSBERUZJTkVfU1RBVElD
X0xPQ0FMIHRvIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIG5ldyBjb2RlIHVzZSBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKworICAgICAgICBSZW1vdmVkIHRoZSBsaXN0IG9m
IGNoYW5nZWQgZmlsZXMgYXMgaXQgd2FzIGh1Z2UuCisKIDIwMTQtMDMtMTIgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIFJlcGxheTogYWRkIGluZnJhc3RydWN0
dXJlIGZvciBtZW1vaXppbmcgbm9uZGV0ZXJtaW5pc3RpYyBET00gQVBJcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CmluZGV4IDk5ODg2Y2MxYjc0NmRjMjUyODUxNGI0YTMxZTA4YTkxMGZjNjlmMzEuLmZjNzNkMWM4
N2RkZjA5MTY4ZjY4MDc2OWVkNzE4MzY0Y2M1YWJhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NBTCB0byBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVyRGVzdHJveWVkPFQ+
IGluc3RlYWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNF
ZmwuY3BwOgorICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzRWZsOjppbml0aWFsaXplKToKKyAg
ICAgICAgKiBld2svZXdrX21haW4uY3BwOgorICAgICAgICAodHJhY2tlckNsaWVudCk6CisKIDIw
MTQtMDMtMTIgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IFtFRkxdIFJldmlzZSBBY2NlbGVyYXRlZENvbXBvc2l0aW5nRWZsIGltcGxlbWVudGF0aW9uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9p
b3MvQ2hhbmdlTG9nCmluZGV4IDVjZGIxYTUwNmJmMDczNDllMzdmZjA4Y2E0ODAyNTc3ODRiMGM4
ZTEuLjk3ODMyM2E0NTU4YjFlNDg1YTA4ZmFhNTU3ODQyZjJjODkzOGE4YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMy0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgREVGSU5FX1NUQVRJQ19MT0NB
TCB0byBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBuZXcgY29kZSB1c2Ugc3RhdGljIE5ldmVy
RGVzdHJveWVkPFQ+IGluc3RlYWQuCisKKyAgICAgICAgKiBNaXNjL0Vtb2ppRmFsbGJhY2tGb250
U2VsZWN0b3IuY3BwOgorICAgICAgICAoRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvcjo6Z2V0RmFs
bGJhY2tGb250RGF0YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRml4ZWRQb3NpdGlv
bkNvbnRlbnQubW06CisgICAgICAgIChXZWJGaXhlZFBvc2l0aW9uQ29udGVudERhdGFMb2NrKToK
KwogMjAxNC0wMy0xMiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIEluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcgb2YgUmFuZ2UgaW4gV2ViRnJhbWUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMmE1ZTc5YWRhODg4MmZhMGU5ZGVlNDJhNjVlNDU0OGNmYjBkZjI0
Ni4uNDhiYTMyOTBkNmIxMTY3NzRjMzZhMTVlNjQ1NmNlNjU5ZGZhY2ZjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAzLTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbmFtZSBERUZJTkVfU1RBVElDX0xPQ0FM
IHRvIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIG5ldyBjb2RlIHVzZSBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKworICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRM
aXN0Lm1tOgorICAgICAgICAoYmFja0ZvcndhcmRMaXN0cyk6CisgICAgICAgICogSGlzdG9yeS9X
ZWJIaXN0b3J5SXRlbS5tbToKKyAgICAgICAgKGhpc3RvcnlJdGVtV3JhcHBlcnMpOgorICAgICAg
ICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tOgorICAgICAgICAoK1tOU1Bhc3RlYm9h
cmQgX3dlYl93cml0YWJsZVR5cGVzRm9yVVJMXSk6CisgICAgICAgIChfd3JpdGFibGVUeXBlc0Zv
ckltYWdlV2l0aG91dEFyY2hpdmUpOgorICAgICAgICAoX3dyaXRhYmxlVHlwZXNGb3JJbWFnZVdp
dGhBcmNoaXZlKToKKyAgICAgICAgKiBNaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbToKKyAgICAg
ICAgKGZvbnRGcm9tTlNGb250KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBs
dWdpbkhvc3RNYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RN
YW5hZ2VyOjpzaGFyZWQpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5Qcm94eU1hcCk6CisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpnbG9iYWxFeGNlcHRpb25TdHJpbmcpOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OnByb3h5Q2xhc3MpOgorICAg
ICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW06CisgICAgICAgIChzdHJl
YW1zKToKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbToKKyAgICAgICAg
KHRyYW5zYWN0aW9uQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyTG9jayk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tOgorICAgICAgICAodXNlck1lZGlhUmVx
dWVzdHNNYXApOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tOgor
ICAgICAgICAocmVnRXhwRm9yTGFiZWxzKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgIChhZURlc2NGcm9tSlNWYWx1ZSk6CisKIDIwMTQtMDMtMTIgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gV2ViS2l0MSArIFdlYktpdDIg
aU9TIGNsaWVudHMgc2hvdWxkIGNoZWNrIGxvYWQgcG9saWN5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
M2U3MDllY2FmM2NiYzczNGNhMmE2MTBlNTc1ZjMxMmJhYjcxZDJkNi4uNDliMjQ2YWQ4MzlkMjZm
OGI2MjMzYzMzOTU1MWI5YTBhY2MwODVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE0LTAzLTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJlbmFtZSBERUZJTkVfU1RBVElDX0xPQ0FMIHRvIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRm9yIG5ldyBjb2RlIHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVh
ZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUpOgorICAgICAgICAq
IFdlYkhpc3RvcnkuY3BwOgorICAgICAgICAoc2hhcmVkSGlzdG9yeVN0b3JhZ2UpOgorICAgICAg
ICAqIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHA6CisgICAgICAgIChtYWluQnVuZGxlTG9jU3Ry
aW5ncyk6CisgICAgICAgIChmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgpOgorICAgICAgICAoZnJh
bWV3b3JrTG9jU3RyaW5ncyk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorCiAyMDE0LTAzLTA2
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogRXhwb3NlIHRoZSBjb25zb2xlIG9iamVjdCBpbiBKU0NvbnRleHRzIHRvIGludGVy
YWN0IHdpdGggV2ViIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAxZTdlOGFkMmJj
MGZlZGRkZDAxY2JhYzk4ODFjOWFlNmMyOTFmMzE2Li4xZDNlODU4NGRlYTEwZjA4ZWYxNTY4YzNj
ZDgxMzY3OGIwY2E2MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE0LTAzLTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJlbmFtZSBERUZJTkVfU1RBVElDX0xPQ0FMIHRvIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRm9yIG5ldyBjb2RlIHVzZSBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gaW5zdGVhZC4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp1c2VyQWdlbnQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcDoKKyAgICAgICAg
KFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKToKKwogMjAxNC0wMy0wNiAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEV4cG9zZSB0aGUgY29uc29sZSBvYmplY3QgaW4gSlNDb250ZXh0cyB0byBpbnRlcmFjdCB3
aXRoIFdlYiBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkOTk5ZWEyNjA2N2Q1NGM0OTEyZDRiYTc3
OGY2MDBiMmZlMWU1MjU4Li5hZTBiNjdlYmQ2M2RmZTM5NDg3NWU1MDU4MDBkNmVmNjNkNmIzZDdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDMtMTIgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVuYW1lIERFRklORV9TVEFU
SUNfTE9DQUwgdG8gREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2MTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgbmV3IGNvZGUgdXNlIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxUPiBpbnN0ZWFkLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Z2V0SW5kZXhTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpnZXRPYmplY3RTdG9yZVN0YXRl
bWVudCk6CisgICAgICAgICogU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1NlY2NvbXBCcm9r
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWNjb21wQnJva2VyQ2xpZW50OjpzaGFyZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29j
a2V0VXBncmFkZUhUVFBSZXF1ZXN0KToKKwogMjAxNC0wMy0xMiAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBXZWJLaXQxICsgV2ViS2l0MiBpT1MgY2xp
ZW50cyBzaG91bGQgY2hlY2sgbG9hZCBwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KaW5kZXggZDM4ZTY0MDg4NTdkNDI5MzRkMmI0Y2Fi
MDNiMGYxMDIxYzFjYWFlNy4uMmU1YTBlNmE3MDI3ZGNkYTBjYjI4MzVjNDFkMWNlZTY3MWJhZWQ2
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3Qu
bW0KQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiBzdGF0aWMgSlNBUElXcmFwcGVyT2JqZWN0
SGFuZGxlT3duZXIqIGpzQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyLCBqc1dyYXBwZXJP
YmplY3RIYW5kbGVPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lciwganNXcmFwcGVyT2JqZWN0SGFuZGxlT3du
ZXIsICgpKTsKICAgICByZXR1cm4gJmpzV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCBjZDMzNGM0
ZjYwOTQyODkzZjBlYThhMWQ3N2U0MDM0MTg2MjNkM2MyLi45NTNjYjVmYmRhYWMxMzZlNjUxYjI5
Y2NmNThlN2Q3NDM5OGZjOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5h
Z2VkVmFsdWUubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiBzdGF0aWMgSlNNYW5hZ2Vk
VmFsdWVIYW5kbGVPd25lciogbWFuYWdlZFZhbHVlSGFuZGxlT3duZXIoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciwganNNYW5hZ2VkVmFsdWVI
YW5kbGVPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU01h
bmFnZWRWYWx1ZUhhbmRsZU93bmVyLCBqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyLCAoKSk7CiAg
ICAgcmV0dXJuICZqc01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGEzMTRlMTZhYWNlMmQ3NTVhMTY0MWVhMTYxODliY2M5
N2Q5NzhmZDAuLjZjMWEzNWIzMzhlNDU3NDU3NGQxOTJjMWVhNTM2MTEwMzFiYWViZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGNvbnN0IGNo
YXIqIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmJhY2t0cmFjZU9iamVjdEdyb3VwID0gImJhY2t0
cmFjZSI7CiAvLyBjcmVhdGUgb2JqZWN0cyBpbiB0aGUgc2FtZSBncm91cC4KIHN0YXRpYyBTdHJp
bmcgb2JqZWN0R3JvdXBGb3JCcmVha3BvaW50QWN0aW9uKGNvbnN0IFNjcmlwdEJyZWFrcG9pbnRB
Y3Rpb24mIGFjdGlvbikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgb2JqZWN0R3JvdXAsICgiYnJlYWtwb2ludC1hY3Rpb24tIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG9iamVjdEdyb3VwLCAoImJyZWFrcG9pbnQtYWN0aW9uLSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbWFrZVN0
cmluZyhvYmplY3RHcm91cCwgU3RyaW5nOjpudW1iZXIoYWN0aW9uLmlkZW50aWZpZXIpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5CmluZGV4IDNj
YTMzNDAwYjgyMDRjN2Q1YWU3NGVmOTgyZTBjOGJiY2Q4NGY0ZjkuLjI3NjM3NDQxNjBiODRmZmQy
YzM3NzU5YTQzZGJkMzNkZjAxNDVhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yU3RyaW5ncy5weQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvQ29kZUdlbmVyYXRvcklu
c3BlY3RvclN0cmluZ3MucHkKQEAgLTcyLDcgKzcyLDcgQEAgYmFja2VuZF9kaXNwYXRjaGVyX2Rp
c3BhdGNoX21ldGhvZCA9ICgKIAogICAgIHR5cGVkZWYgdm9pZCAoJHtkaXNwYXRjaGVyTmFtZX06
OipDYWxsSGFuZGxlcikobG9uZyBjYWxsSWQsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiBtZXNzYWdlKTsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWxsSGFuZGxlcj4g
RGlzcGF0Y2hNYXA7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChEaXNwYXRjaE1hcCwgZGlzcGF0
Y2hNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRGlzcGF0Y2hN
YXAsIGRpc3BhdGNoTWFwLCAoKSk7CiAgICAgaWYgKGRpc3BhdGNoTWFwLmlzRW1wdHkoKSkgewog
ICAgICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IE1ldGhvZFRhYmxlIHsKICAgICAgICAgICAgIGNv
bnN0IGNoYXIqIG5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSlNTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNT
dGFjay5jcHAKaW5kZXggOWU2YmVlOTFlNmE4M2NhMGIxZTIxMTMzY2ZlMmY3ODRiZmU3NTA1Yi4u
Y2Q4MzQ5MTkyNmJkOTVjMjE3YzFiYzIxMjU4NmNhMWE3NzJkYjUzNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcApAQCAtNDEsNyArNDEsNyBAQCBz
dGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVzQ291bnQgPSAwOwogCiBzdGF0aWMgTXV0ZXgmIHN0
YWNrU3RhdGlzdGljc011dGV4KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBz
dGF0aWNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgc3RhdGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9ICAgIAogI2Vu
ZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAppbmRleCBlMjU2Yzc3ZTk4ZjcwM2RmYTNkNzA2
YTMwMDMwNzViZWZiMDcwMWVlLi5hY2NmNWZjZjYwYWE3ZTA0NWMxNWI1OTk3YzQ3YTMyYjEwMTZh
YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxv
Y2F0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9j
YXRvci5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxQYWdlUmVz
ZXJ2YXRpb24sIDE2PiByZXNlcnZhdGlvbnM7CiAgICAgc3RhdGljIEhhc2hTZXQ8RGVtYW5kRXhl
Y3V0YWJsZUFsbG9jYXRvcio+JiBhbGxvY2F0b3JzKCkKICAgICB7Ci0gICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj4sIHNBbGxvY2F0
b3JzLCAoKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqPiwgc0FsbG9jYXRvcnMsICgpKTsKICAgICAgICAg
cmV0dXJuIHNBbGxvY2F0b3JzOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UnVuTG9vcC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAppbmRleCAxMWE4NjBmZDA2
NTE5NWQyN2ZiN2U5YmZjMDc3MzRlM2U3YTQ5MDc0Li5mMGZlYjQ3OTcwY2MwMTBmZjQwYWE2OGZm
NDZlZGUxOWFmZmZhMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCiAKIFJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJl
bnQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5M
b29wOjpIb2xkZXI+LCBydW5Mb29wSG9sZGVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcDo6SG9sZGVyPiwgcnVuTG9v
cEhvbGRlciwgKCkpOwogICAgIHJldHVybiBydW5Mb29wSG9sZGVyLT5ydW5Mb29wKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93
dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggMmUzNTAzMWRhOTc0MjRlNzNhOWE4MGVmZjVlNGJlMGUx
YWU1ZTRhMC4uNjc5Y2Q2ZTgwODY4ZWY1ZWQyYjMwNWMxYTBmZDI3NjhlZjMyNDU0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYv
U3RkTGliRXh0cmFzLmgKQEAgLTM1LDEzICszNSwxMyBAQAogLy8gVXNlIHRoZXNlIHRvIGRlY2xh
cmUgYW5kIGRlZmluZSBhIHN0YXRpYyBsb2NhbCB2YXJpYWJsZSAoc3RhdGljIFQ7KSBzbyB0aGF0
CiAvLyAgaXQgaXMgbGVha2VkIHNvIHRoYXQgaXRzIGRlc3RydWN0b3JzIGFyZSBub3QgY2FsbGVk
IGF0IGV4aXQuIFVzaW5nIHRoaXMKIC8vICBtYWNybyBhbHNvIGFsbG93cyB3b3JrYXJvdW5kcyBh
IGNvbXBpbGVyIGJ1ZyBwcmVzZW50IGluIEFwcGxlJ3MgdmVyc2lvbiBvZiBHQ0MgNC4wLjEuCi0j
aWZuZGVmIERFRklORV9TVEFUSUNfTE9DQUwKKyNpZm5kZWYgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBkZWZpbmVkKF9fQVBQTEVfQ0NfXykgJiYg
X19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA9PSAwICYmIF9fR05VQ19QQVRDSExFVkVM
X18gPT0gMQotI2RlZmluZSBERUZJTkVfU1RBVElDX0xPQ0FMKHR5cGUsIG5hbWUsIGFyZ3VtZW50
cykgXAorI2RlZmluZSBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwodHlwZSwgbmFtZSwg
YXJndW1lbnRzKSBcCiAgICAgc3RhdGljIHR5cGUqIG5hbWUjI1B0ciA9IG5ldyB0eXBlIGFyZ3Vt
ZW50czsgXAogICAgIHR5cGUmIG5hbWUgPSAqbmFtZSMjUHRyCiAjZWxzZQotI2RlZmluZSBERUZJ
TkVfU1RBVElDX0xPQ0FMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAorI2RlZmluZSBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCiAgICAgc3Rh
dGljIHR5cGUmIG5hbWUgPSAqbmV3IHR5cGUgYXJndW1lbnRzCiAjZW5kaWYKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDhjMGM3NjhiNzkyOTQyNWIyZjI5M2Nm
N2ZlYWM0NmMzNWFkMzYxOTEuLjNlMGIyYjU1MDU1NDQ1YTMzZjkyNmRhMDI2ODlmMzlkNmVjODhj
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTEwMiw3ICsxMDIsNyBA
QCB2b2lkIHRocmVhZFdhc0pvaW5lZChUaHJlYWRJZGVudGlmaWVyKTsKIAogc3RhdGljIE11dGV4
JiB0aHJlYWRNYXBNdXRleCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0
ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4
LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBp
bml0aWFsaXplVGhyZWFkaW5nKCkKIAogc3RhdGljIFRocmVhZE1hcCYgdGhyZWFkTWFwKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFRocmVhZE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRocmVhZE1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJu
IG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwu
Y3BwIGIvU291cmNlL1dURi93dGYvZWZsL01haW5UaHJlYWRFZmwuY3BwCmluZGV4IDUzYWRjYjJi
MWY5ZTM2NmIzYzQxMmU5ZTgxZDQ0YjU4NzI1ZDI1MzEuLmEyNWIzNDViNmNmMjk0MTJlMGU3ZjZm
MTI1NGMxMmY5ZTEzYWRjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9NYWluVGhy
ZWFkRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvTWFpblRocmVhZEVmbC5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBPd25QdHI8RWNvcmVfUGlw
ZT4mIHBpcGVPYmplY3QoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoT3duUHRyPEVjb3Jl
X1BpcGU+LCBwaXBlT2JqZWN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE93blB0cjxFY29yZV9QaXBlPiwgcGlwZU9iamVjdCwgKCkpOwogICAgIHJldHVybiBwaXBl
T2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ1N0YXRp
Y3MuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcAppbmRleCA4ZjBj
NzRjYzBkNzViZDY2ZTk0NWM0MWMzYWNhN2UxNDJlNDliYTQ2Li5mNWRiYzVkZTBjMmRhMDM4NGQ1
NmNlMDQ1NjgyZjljNmU5YzJlMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ1N0YXRpY3MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nU3RhdGljcy5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgU3RyaW5nSW1wbCogU3RyaW5nSW1wbDo6ZW1wdHkoKQogICAg
IC8vIFJlcGxhY2UgdGhpcyB3aXRoICdyZWludGVycHJldF9jYXN0PFVDaGFyKj4oc3RhdGljX2Nh
c3Q8aW50cHRyX3Q+KDEpKScgb25jZQogICAgIC8vIFBDUkUgZ29lcyBhd2F5LgogICAgIHN0YXRp
YyBMQ2hhciBlbXB0eUxDaGFyRGF0YSA9IDA7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmdJbXBsLCBlbXB0eVN0cmluZywgKCZlbXB0eUxDaGFyRGF0YSwgMCwgQ29uc3RydWN0U3RhdGlj
U3RyaW5nKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0ltcGws
IGVtcHR5U3RyaW5nLCAoJmVtcHR5TENoYXJEYXRhLCAwLCBDb25zdHJ1Y3RTdGF0aWNTdHJpbmcp
KTsKICAgICBXVEZfQU5OT1RBVEVfQkVOSUdOX1JBQ0UoJmVtcHR5U3RyaW5nLCAiQmVuaWduIHJh
Y2Ugb24gU3RyaW5nSW1wbDo6ZW1wdHlTdHJpbmcgcmVmZXJlbmNlIGNvdW50ZXIiKTsKICAgICBy
ZXR1cm4gJmVtcHR5U3RyaW5nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmls
aXR5RXZlbnQuY3BwCmluZGV4IGY3NTU4NjBkMjYxNzdiOWRkOWI4NTdjOGVmMWI1MWU2MTFmZDI5
ODIuLmI4YjAxZmQ0MDEzMGQ2NGY2MzgzY2NiMTNhM2UzMzE1Y2I2NmY1ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2Vi
S2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5jcHAKQEAgLTMyLDggKzMyLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmdG
b3JQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXZhaWxhYmxlU3RyaW5nLCAoImF2YWlsYWJs
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbm90QXZhaWxhYmxlU3RyaW5nLCAoIm5vdC1hdmFpbGFi
bGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXZhaWxhYmxlU3RyaW5nLCAoImF2
YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBub3RBdmFpbGFibGVTdHJp
bmcsICgibm90LWF2YWlsYWJsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKIAogICAgIHJldHVybiBhdmFpbGFibGUgPyBhdmFpbGFibGVTdHJpbmcgOiBub3RBdmFpbGFi
bGVTdHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TS5jcHAKaW5kZXggYzRjZjRlZTFkYzE0ODUxYWJkMjRkNzBjNzE5NGVlODFlZjlhYzE5Yy4uZWJi
YmEzOGNhNGM5ZjhjMjFlNjBlOTYzNzUwY2RjNzBiYWUwZDU1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAKIHN0YXRpYyBWZWN0b3I8Q0RNRmFjdG9yeSo+JiBpbnN0YWxsZWRDRE1GYWN0b3JpZXMo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPENETUZhY3RvcnkqPiwgY2Rtcywg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8Q0RNRmFjdG9y
eSo+LCBjZG1zLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgcXVlcmllZENETXMgPSBmYWxzZTsKICAg
ICBpZiAoIXF1ZXJpZWRDRE1zKSB7CiAgICAgICAgIHF1ZXJpZWRDRE1zID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IGRjOTA3
YjM2M2EyMTMwZDM5N2E5NWZmOGQwN2VkOWUyZWY5NGM1MGIuLjJlODQ2ZGQ3ZmM4OWNhY2I1NDE2
OTg5Y2U3NzBhY2NjMGI0N2FmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtNTAsMjUgKzUwLDI1IEBAIFBhc3NSZWZQdHI8SURCQ3Vy
c29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+IGJhY2tl
bmQsIEluCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dCwgKCJuZXh0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5leHQsICgibmV4dCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmV4dDsKIH0KIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHRVbmlxdWUoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuZXh0dW5pcXVlLCAoIm5leHR1bmlxdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmV4dHVuaXF1ZSwgKCJuZXh0dW5pcXVl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBuZXh0
dW5pcXVlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJl
digpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHByZXYsICgicHJl
diIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwcmV2LCAoInByZXYiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHByZXY7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2VW5pcXVlKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHJldnVuaXF1ZSwgKCJwcmV2dW5p
cXVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHByZXZ1bmlxdWUsICgicHJldnVu
aXF1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
cHJldnVuaXF1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAppbmRleCA1ODk3MzliYTc3MjM5ZDAwODIyMTc4MDMwNzg4MjM3ODY2ZDcx
M2EzLi5kYzY2MWUyYTBkNTUzYTRjZWFlYTZlNTgwMzJjMDdkMzY2MzNjMjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTMyLDgg
KzEzMiw4IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0
aW9uKCkgY29uc3QKIGNvbnN0IFN0cmluZyYgSURCUmVxdWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9
PSBET05FKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcGVuZGluZywg
KCJwZW5kaW5nIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBkb25lLCAoImRvbmUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcGVuZGluZywgKCJwZW5kaW5nIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGRvbmUsICgiZG9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKIAogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUEVORElORykKICAgICAgICAg
cmV0dXJuIHBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYWU1NmM4NWVkZWExOTQwNjk2MjcyODI5NGYxZDI4
ZDY5NjVkYjIxZS4uYzQyZjk0NWM0MTEzNDc5ZmU3MTgzZDEwODk4MWUwYzEwZDY1Nzg0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcApAQCAtNjAsMzEgKzYwLDMxIEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQlRy
YW5zYWN0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJlYWRvbmx5IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoInJlYWRvbmx5IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiByZWFkb25seTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRXcml0ZSgpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWR3cml0ZSwgKCJyZWFk
d3JpdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZHdyaXRlLCAoInJlYWR3
cml0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
cmVhZHdyaXRlOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIElEQlRyYW5zYWN0aW9uOjptb2Rl
VmVyc2lvbkNoYW5nZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHZlcnNpb25jaGFuZ2UsICgidmVyc2lvbmNoYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCB2ZXJzaW9uY2hhbmdlLCAoInZlcnNpb25jaGFuZ2UiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHZlcnNpb25jaGFuZ2U7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkT25seUxlZ2FjeSgpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHJlYWRvbmx5LCAoIjAiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVhZG9ubHksICgiMCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcmVhZG9ubHk7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3JpdGVMZWdhY3koKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgiMSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZWFkd3JpdGUsICgiMSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gcmVhZHdyaXRlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmNwcAppbmRleCA1NDA4MGQwODM2YzU1NWYzM2JjNGViZDg0NjYyNjRj
Y2E4ZTJjZGFlLi44ZTEyOTc2NWNkMDAyMDI4OTE1OGFiMjIwYzZmNjEzNGI5NjUyYjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHAKQEAgLTQzLDE5ICs0MywxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmF1dG9tYXRpY0tleXdv
cmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRv
bWF0aWMsICgiYXV0b21hdGljIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGF1dG9tYXRpYywgKCJhdXRvbWF0aWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgcmV0dXJuIGF1dG9tYXRpYzsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xzSG9zdDo6Zm9yY2VkT25seUtleXdvcmQoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWRPbiwgKCJmb3JjZWQtb25seSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWRPbiwgKCJmb3JjZWQtb25s
eSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZm9y
Y2VkT247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sc0hvc3Q6OmFsd2F5
c09uS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGFsd2F5c09uLCAoImFsd2F5cy1vbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWlj
U3RyaW5nLCBhbHdheXNPbiwgKCJhbHdheXMtb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGFsd2F5c09uOwogfQogCkBAIC0xODQsMTIgKzE4NCwx
MiBAQCBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlRGlzcGxheU5hbWUo
KSBjb25zdAogCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmV4dGVybmFsRGV2aWNlVHlwZSgp
IGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbmUsIChBU0NJSUxp
dGVyYWwoIm5vbmUiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIG5vbmUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOwogICAgIFN0cmluZyB0eXBlID0gbm9u
ZTsKICAgICAKICNpZiBFTkFCTEUoSU9TX0FJUlBMQVkpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGFpcnBsYXksIChBU0NJSUxpdGVyYWwoImFpcnBsYXkiKSkpOwotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0dm91dCwgKEFTQ0lJTGl0ZXJhbCgidHZvdXQiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFpcnBsYXksIChBU0NJ
SUxpdGVyYWwoImFpcnBsYXkiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHR2b3V0LCAoQVNDSUlMaXRlcmFsKCJ0dm91dCIpKSk7CiAgICAgCiAgICAgTWVk
aWFQbGF5ZXIqIHBsYXllciA9IG1fbWVkaWFFbGVtZW50LT5wbGF5ZXIoKTsKICAgICBpZiAoIXBs
YXllcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmNwcAppbmRleCA4MDZkMjA2YWEzNzgwNTQ5YTZlYjU3OWU5NjZlNjI5MjgzNmI2NTg4
Li42OTczODQ4ZWYzZGFjOGM0ODZiMmE0NzUyZGQ2NGVkNzg1MjEyNDkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtOTIs
MTkgKzkyLDE5IEBAIE1lZGlhU291cmNlOjp+TWVkaWFTb3VyY2UoKQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhU291cmNlOjpvcGVuS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4sICgib3BlbiIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoIm9wZW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG9wZW47CiB9CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBjbG9zZWQsICgiY2xvc2VkIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNsb3NlZCwgKCJjbG9zZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGNsb3NlZDsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZW5kZWQsICgiZW5kZWQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGVuZGVkOwogfQogCkBAIC0zMDUs
OCArMzA1LDggQEAgdm9pZCBNZWRpYVNvdXJjZTo6ZW5kT2ZTdHJlYW0oY29uc3QgQXRvbWljU3Ry
aW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKIHZvaWQgTWVkaWFTb3VyY2U6OnN0cmVh
bUVuZGVkV2l0aEVycm9yKGNvbnN0IEF0b21pY1N0cmluZyYgZXJyb3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBuZXR3
b3JrLCAoIm5ldHdvcmsiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNv
ZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbmV0d29yaywgKCJuZXR3
b3JrIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlY29kZSwgKCJkZWNv
ZGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICAvLyAyLjQu
NyBodHRwczovL2R2Y3MudzMub3JnL2hnL2h0bWwtbWVkaWEvcmF3LWZpbGUvdGlwL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNlbmQtb2Ytc3RyZWFtLWFsZ29yaXRobQogICAgIC8vIDEu
IENoYW5nZSB0aGUgcmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgdG8gImVuZGVkIi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdp
c3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
UmVnaXN0cnkuY3BwCmluZGV4IDI0M2RhNjg3OWFiYjI1MDYzNGEyYmRlN2JjYmYzN2VlMDgxNzdj
ZGYuLjA5NzIxNWExZDczM2U3YTA0NjNlNzZlN2M3NzA4YWNhMWM3MjE2ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2VSZWdpc3RyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJl
Z2lzdHJ5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBNZWRpYVNv
dXJjZVJlZ2lzdHJ5JiBNZWRpYVNvdXJjZVJlZ2lzdHJ5OjpyZWdpc3RyeSgpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU291cmNl
UmVnaXN0cnksIGluc3RhbmNlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE1lZGlhU291cmNlUmVnaXN0cnksIGluc3RhbmNlLCAoKSk7CiAgICAgcmV0dXJuIGluc3Rh
bmNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAppbmRleCA5YTJlZWIxOGVmMjQ4MDQ1OWQ1ZDkw
YjZmZjBlN2JkMzU3NTcwMWIxLi42NTVjYTI1MTFkMzY1OTAyOTFkYjJkZGNmYTM1ZDExZjRkYTQw
YTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgTWVkaWFTdHJlYW1S
ZWdpc3RyeSYgTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKQogewogICAgIC8vIFNpbmNl
IFdlYldvcmtlcnMgY2Fubm90IG9idGFpbiBNZWRpYVNvdXJjZSBvYmplY3RzLCB3ZSBzaG91bGQg
YmUgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbVJlZ2lzdHJ5LCBpbnN0YW5jZSwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbVJlZ2lzdHJ5LCBp
bnN0YW5jZSwgKCkpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVu
dFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKaW5kZXggMjc4OTRhZmNkMmJjZTg3NDlkYzJlNGEw
ZjkzMTRhZWM5ZGU2MDUzMC4uOWI5ZTUwMTY4MzdlMDgzOWI3N2RiYzM0OWE1ODkwZTBiZDU3YTM2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRp
bHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCkBAIC0xNTQs
OSArMTU0LDkgQEAgdm9pZCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdAogI2lmIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCiBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29u
c3QgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHN0YXRl
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAo
QVNDSUlMaXRlcmFsKCJuZXciKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCByZWdpc3RlcmVkSGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgicmVnaXN0ZXJlZCIpKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFT
Q0lJTGl0ZXJhbCgiZGVjbGluZWQiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIG5ld0hhbmRsZXIsIChBU0NJSUxpdGVyYWwoIm5ldyIpKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJl
ZEhhbmRsZXIsIChBU0NJSUxpdGVyYWwoInJlZ2lzdGVyZWQiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFTQ0lJ
TGl0ZXJhbCgiZGVjbGluZWQiKSkpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2Ug
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKQEAgLTE3Myw3
ICsxNzMsNyBAQCBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29uc3Qg
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0bwogCiBTdHJpbmcgTmF2aWdhdG9yQ29u
dGVudFV0aWxzOjppc1Byb3RvY29sSGFuZGxlclJlZ2lzdGVyZWQoTmF2aWdhdG9yKiBuYXZpZ2F0
b3IsIGNvbnN0IFN0cmluZyYgc2NoZW1lLCBjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlY2xpbmVk
LCAoImRlY2xpbmVkIikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGRlY2xpbmVkLCAoImRlY2xpbmVkIikpOwogCiAgICAgaWYgKCFuYXZpZ2F0b3It
PmZyYW1lKCkpCiAgICAgICAgIHJldHVybiBkZWNsaW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
Y3BwCmluZGV4IDJlZGRjZGJiOWYwMDZjYTc2MjY2NTBiNDIwMjc4NjI2YjkyNjE0MTcuLjg1OWNj
YjBmYzE4NDg5YmMwMjNjNDJkMzEwN2EwNzNkMTc2YWVlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBT
dHJpbmcgcXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRTY3JpcHQoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBzY3JpcHQsIChRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEph
dmFTY3JpcHQsIHNpemVvZihRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEphdmFTY3JpcHQpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2NyaXB0LCAoUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRKYXZhU2NyaXB0LCBzaXplb2YoUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnRKYXZhU2NyaXB0KSkpOwogICAgIHJldHVybiBzY3JpcHQ7CiB9CiAKQEAgLTc2
LDcgKzc2LDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6c3VwcG9ydHNNaW1l
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgICAgICAiYXVkaW8veC1tNHIiLCAiYXVk
aW8veC1tcDMiLCAiYXVkaW8veC1tcGVnIiwgImF1ZGlvL3gtbXBlZzMiLCAiYXVkaW8veC1tcGVn
dXJsIiwgImF1ZGlvL3gtc2NwbHMiLCAiYXVkaW8veC13YXYiLAogICAgICAgICAidmlkZW8vM2dw
cCIsICJ2aWRlby8zZ3BwMiIsICJ2aWRlby9tcDQiLCAidmlkZW8vcXVpY2t0aW1lIiwgInZpZGVv
L3gtbTR2IgogICAgIH07Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4s
IHR5cGVIYXNoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8U3RyaW5nPiwgdHlwZUhhc2gsICgpKTsKICAgICBpZiAoIXR5cGVIYXNoLnNpemUoKSkgewog
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgodHlwZXMpOyAr
K2kpCiAgICAgICAgICAgICB0eXBlSGFzaC5hZGQodHlwZXNbaV0pOwpAQCAtOTIsNyArOTIsNyBA
QCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c0ZpbGVFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiAgICAgICAgICJtM3U4IiwgIm00YSIsICJtNGIiLCAi
bTRwIiwgIm00ciIsICJtNHYiLCAibW92IiwgIm1wMyIsICJtcDMiLCAibXA0IiwgIm1wZWciLCAi
bXBnIiwgIm1xdiIsICJwbHMiLCAicXQiLAogICAgICAgICAic25kIiwgInN3YSIsICJ0cyIsICJ1
bHciLCAid2F2IgogICAgIH07Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmlu
Zz4sIGV4dGVuc2lvbkhhc2gsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxTdHJpbmc+LCBleHRlbnNpb25IYXNoLCAoKSk7CiAgICAgaWYgKCFleHRlbnNp
b25IYXNoLnNpemUoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJB
WV9MRU5HVEgoZXh0ZW5zaW9ucyk7ICsraSkKICAgICAgICAgICAgIGV4dGVuc2lvbkhhc2guYWRk
KGV4dGVuc2lvbnNbaV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFN5bnRoZXNpcy5jcHAKaW5kZXggNjQ5NWU1NzJjNTg0MzMzNmY2MGZmN2E2MDdmZDZkNWY0
ODFhNDY1Yi4uNjMwNTUyMmJlOTlkM2MwZDIxNzMzMmE3MGZiOWI5MzU4ODZiZTBkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCkBA
IC0xOTIsOCArMTkyLDggQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OmhhbmRsZVNwZWFraW5nQ29t
cGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmMKICAgICAKIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1JlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNlLCBTcGVlY2hCb3VuZGFyeSBib3VuZGFy
eSwgdW5zaWduZWQgY2hhckluZGV4KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCB3b3JkQm91bmRhcnlTdHJpbmcsIChBU0NJSUxpdGVyYWwoIndvcmQiKSkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5n
LCAoQVNDSUlMaXRlcmFsKCJzZW50ZW5jZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgd29yZEJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRlcmFs
KCJ3b3JkIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBzZW50ZW5jZUJvdW5kYXJ5U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJzZW50ZW5jZSIpKSk7
CiAKICAgICBzd2l0Y2ggKGJvdW5kYXJ5KSB7CiAgICAgY2FzZSBTcGVlY2hXb3JkQm91bmRhcnk6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHAKaW5kZXggYWU5MWJjY2EzN2QxNjg4NTA1OWYyZmQ4ZGZkMDU0MDM1ZDYxZmRi
OC4uYmIxYjBmMTFhYjAxNmRhYTg5NTQ2NDMwMWVjYWQ0MjRkZTM0MTAyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNw
cApAQCAtMTI4Myw3ICsxMjgzLDcgQEAgYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFi
YXNlRmlsZUlmRW1wdHkoY29uc3QgU3RyaW5nJiBwYXRoKQogCiBNdXRleCYgRGF0YWJhc2VUcmFj
a2VyOjpvcGVuRGF0YWJhc2VNdXRleCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQogCkBAIC0xMzM1LDcgKzEzMzUsNyBA
QCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6c2V0Q2xpZW50KERhdGFiYXNlTWFuYWdlckNsaWVudCog
Y2xpZW50KQogCiBzdGF0aWMgTXV0ZXgmIG5vdGlmaWNhdGlvbk11dGV4KCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAK
QEAgLTEzNDMsNyArMTM0Myw3IEBAIHR5cGVkZWYgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBTdHJpbmc+PiBOb3RpZmljYXRpb25RdWV1ZTsKIAogc3RhdGljIE5vdGlm
aWNhdGlvblF1ZXVlJiBub3RpZmljYXRpb25RdWV1ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChOb3RpZmljYXRpb25RdWV1ZSwgcXVldWUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTm90aWZpY2F0aW9uUXVldWUsIHF1ZXVlLCAoKSk7CiAgICAgcmV0dXJu
IHF1ZXVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCmluZGV4IDkyZmUyMjEwNDkwYTViNDA2
YjdhNmQzNTBhYzE2Y2E1NDU0M2U3MDEuLjQ4YzM3MTY1NjEyMzMyMTUwZDBjNmMwYTkxODQxMGJi
YThhODJlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwCkBAIC04MiwyMSArODIsMjEgQEAgTWVk
aWFDb250cm9sRWxlbWVudFR5cGUgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y29udHJvbFR5
cGUoKSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y29udHJvbFR5
cGVOYW1lKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJFbnRlckZ1bGxz
Y3JlZW5CdXR0b24iKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiRXhpdEZ1bGxzY3Jl
ZW5CdXR0b24iKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRp
YU11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJNdXRlQnV0dG9uIikpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFQbGF5QnV0dG9uTmFtZSwgKEFTQ0lJ
TGl0ZXJhbCgiUGxheUJ1dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIG1lZGlhU2Vla0JhY2tCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVrQmFja0J1
dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vl
a0ZvcndhcmRCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVrRm9yd2FyZEJ1dHRvbiIpKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUmV3aW5kQnV0dG9u
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV3aW5kQnV0dG9uIikpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uTmFtZSwgKEFT
Q0lJTGl0ZXJhbCgiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhVW5NdXRlQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJh
bCgiVW5NdXRlQnV0dG9uIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgbWVkaWFQYXVzZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlBhdXNlQnV0dG9uIikpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFTdGF0dXNEaXNwbGF5
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU3RhdHVzRGlzcGxheSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVEaXNwbGF5LCAoQVNDSUlMaXRl
cmFsKCJDdXJyZW50VGltZURpc3BsYXkiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBtZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJUaW1l
UmVtYWluaW5nRGlzcGxheSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIG1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU2hv
d0Nsb3NlZENhcHRpb25zQnV0dG9uIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgbWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFs
KCJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uTmFtZSwg
KEFTQ0lJTGl0ZXJhbCgiRW50ZXJGdWxsc2NyZWVuQnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYUV4aXRGdWxsc2NyZWVuQnV0
dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiRXhpdEZ1bGxzY3JlZW5CdXR0b24iKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhTXV0ZUJ1dHRv
bk5hbWUsIChBU0NJSUxpdGVyYWwoIk11dGVCdXR0b24iKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGxheUJ1dHRvbk5hbWUsIChBU0NJ
SUxpdGVyYWwoIlBsYXlCdXR0b24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vla0JhY2tCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFs
KCJTZWVrQmFja0J1dHRvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgbWVkaWFTZWVrRm9yd2FyZEJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwo
IlNlZWtGb3J3YXJkQnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBtZWRpYVJld2luZEJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwoIlJl
d2luZEJ1dHRvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgbWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgi
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFVbk11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFs
KCJVbk11dGVCdXR0b24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIG1lZGlhUGF1c2VCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJQYXVzZUJ1
dHRvbiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgbWVkaWFTdGF0dXNEaXNwbGF5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU3RhdHVzRGlzcGxheSIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVk
aWFDdXJyZW50VGltZURpc3BsYXksIChBU0NJSUxpdGVyYWwoIkN1cnJlbnRUaW1lRGlzcGxheSIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVk
aWFUaW1lUmVtYWluaW5nRGlzcGxheSwgKEFTQ0lJTGl0ZXJhbCgiVGltZVJlbWFpbmluZ0Rpc3Bs
YXkiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU2hvd0Ns
b3NlZENhcHRpb25zQnV0dG9uIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBtZWRpYUhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbk5hbWUsIChBU0NJ
SUxpdGVyYWwoIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpKSk7CiAKICAgICBzd2l0Y2ggKGNv
bnRyb2xUeXBlKCkpIHsKICAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOgpAQCAt
MTU1LDcgKzE1NSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6YWNjZXNzaWJp
bGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4CiAKIFN0cmluZyBBY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9sOjp0aXRsZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGNvbnRyb2xzUGFuZWwsIChBU0NJSUxpdGVyYWwoIkNvbnRyb2xz
UGFuZWwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGNvbnRyb2xzUGFuZWwsIChBU0NJSUxpdGVyYWwoIkNvbnRyb2xzUGFuZWwiKSkpOwogCiAg
ICAgaWYgKGNvbnRyb2xUeXBlKCkgPT0gTWVkaWFDb250cm9sc1BhbmVsKQogICAgICAgICByZXR1
cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb250cm9sc1BhbmVsKTsKQEAg
LTI0NCw4ICsyNDQsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVy
Ojpjb250cm9sbGluZ1ZpZGVvRWxlbWVudCgpIGNvbnN0CiAKIGNvbnN0IFN0cmluZyBBY2Nlc3Np
YmlsaXR5TWVkaWFDb250cm9sc0NvbnRhaW5lcjo6ZWxlbWVudFR5cGVOYW1lKCkgY29uc3QKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmlkZW9FbGVtZW50LCAoQVND
SUlMaXRlcmFsKCJWaWRlb0VsZW1lbnQiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBhdWRpb0VsZW1lbnQsIChBU0NJSUxpdGVyYWwoIkF1ZGlvRWxlbWVudCIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmlkZW9F
bGVtZW50LCAoQVNDSUlMaXRlcmFsKCJWaWRlb0VsZW1lbnQiKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGF1ZGlvRWxlbWVudCwgKEFTQ0lJTGl0
ZXJhbCgiQXVkaW9FbGVtZW50IikpKTsKIAogICAgIGlmIChjb250cm9sbGluZ1ZpZGVvRWxlbWVu
dCgpKQogICAgICAgICByZXR1cm4gdmlkZW9FbGVtZW50OwpAQCAtMjgyLDcgKzI4Miw3IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZTo6dmFsdWVEZXNjcmlwdGlvbigpIGNvbnN0
CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZTo6aGVscFRleHQoKSBjb25zdAog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzbGlkZXIsIChBU0NJSUxp
dGVyYWwoIlNsaWRlciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgc2xpZGVyLCAoQVNDSUlMaXRlcmFsKCJTbGlkZXIiKSkpOwogICAgIHJldHVy
biBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoc2xpZGVyKTsKIH0KIApAQCAt
MzEzLDggKzMxMyw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXk6OmNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlN
ZWRpYVRpbWVEaXNwbGF5OjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjdXJyZW50VGltZURpc3BsYXksIChB
U0NJSUxpdGVyYWwoIkN1cnJlbnRUaW1lRGlzcGxheSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHRpbWVSZW1haW5pbmdEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJU
aW1lUmVtYWluaW5nRGlzcGxheSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgY3VycmVudFRpbWVEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJDdXJy
ZW50VGltZURpc3BsYXkiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHRpbWVSZW1haW5pbmdEaXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJUaW1lUmVt
YWluaW5nRGlzcGxheSIpKSk7CiAKICAgICBpZiAoY29udHJvbFR5cGUoKSA9PSBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheSkKICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmcoY3VycmVudFRpbWVEaXNwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDYzNGFmODZjZjdlODdm
YmRhMTk5Y2VmZDQyNGJhMWVhZGIyZTgxOGMuLjM4ZDA4MTBjOWViM2YyM2M2MzVhYWYyOGFkODVl
NzUzZDAyN2MyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTQ4NCwxNSArMTQ4NCwxNSBAQCBjb25zdCBTdHJp
bmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjdGlvblZlcmIoKSBjb25zdAogewogI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHZlcmJzIGZvciBzZWxlY3QgZWxl
bWVudHMuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJ1dHRvbkFjdGlv
biwgKEFYQnV0dG9uQWN0aW9uVmVyYigpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHRleHRGaWVsZEFjdGlvbiwgKEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJhZGlvQnV0dG9uQWN0aW9uLCAo
QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBjaGVja2VkQ2hlY2tCb3hBY3Rpb24sIChBWENoZWNrZWRDaGVja0JveEFjdGlv
blZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1bmNoZWNr
ZWRDaGVja0JveEFjdGlvbiwgKEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGlua0FjdGlvbiwgKEFYTGlua0Fj
dGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZW51
TGlzdEFjdGlvbiwgKEFYTWVudUxpc3RBY3Rpb25WZXJiKCkpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgbWVudUxpc3RQb3B1cEFjdGlvbiwgKEFYTWVudUxpc3RQb3B1
cEFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBs
aXN0SXRlbUFjdGlvbiwgKEFYTGlzdEl0ZW1BY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBidXR0b25BY3Rpb24sIChBWEJ1dHRv
bkFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHRleHRGaWVsZEFjdGlvbiwgKEFYVGV4dEZpZWxkQWN0aW9uVmVyYigpKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmFkaW9CdXR0
b25BY3Rpb24sIChBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2hlY2tlZENoZWNrQm94QWN0aW9uLCAo
QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1bmNoZWNrZWRDaGVja0JveEFjdGlvbiwgKEFYVW5j
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsaW5rQWN0aW9uLCAoQVhMaW5rQWN0aW9uVmVyYigpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVudUxp
c3RBY3Rpb24sIChBWE1lbnVMaXN0QWN0aW9uVmVyYigpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVudUxpc3RQb3B1cEFjdGlvbiwgKEFYTWVu
dUxpc3RQb3B1cEFjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGxpc3RJdGVtQWN0aW9uLCAoQVhMaXN0SXRlbUFjdGlvblZlcmIo
KSkpOwogCiAgICAgc3dpdGNoIChyb2xlVmFsdWUoKSkgewogICAgIGNhc2UgQnV0dG9uUm9sZToK
QEAgLTE1MzAsOCArMTUzMCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXJpYUlzTXVs
dGlsaW5lKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjppbnZhbGlkU3RhdHVzKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgaW52YWxpZFN0YXR1c0ZhbHNlLCAoImZhbHNlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBpbnZhbGlkU3RhdHVzVHJ1ZSwgKCJ0cnVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGludmFsaWRTdGF0dXNGYWxzZSwgKCJmYWxzZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBpbnZhbGlkU3RhdHVzVHJ1ZSwgKCJ0cnVl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAgIC8vIGFy
aWEtaW52YWxpZCBjYW4gcmV0dXJuIGZhbHNlIChkZWZhdWx0KSwgZ3JhbW1lciwgc3BlbGxpbmcs
IG9yIHRydWUuCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhSW52YWxpZCA9IGdldEF0dHJp
YnV0ZShhcmlhX2ludmFsaWRBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGUyMjdmOTc5
YTlmMTcxNTdmMTYwOWI0MWIxYjE2MDhjYTBiZGIzYTYuLjBjOWEwZGE3ZTQyMWZkYzAzMTYyMGQz
ZTgxNjJkMzczYzVmZjIyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjY0NCw3ICsyNjQ0
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppbmhlcml0c1ByZXNlbnRhdGlv
bmFsUm9sZSgpIGNvbnN0CiAgICAgLy8gQVJJQSBzcGVjIHNheXMgdGhhdCB3aGVuIGEgcGFyZW50
IG9iamVjdCBpcyBwcmVzZW50YXRpb25hbCwgYW5kIGl0IGhhcyByZXF1aXJlZCBjaGlsZCBlbGVt
ZW50cywKICAgICAvLyB0aG9zZSBjaGlsZCBlbGVtZW50cyBhcmUgYWxzbyBwcmVzZW50YXRpb25h
bC4gRm9yIGV4YW1wbGUsIDxsaT4gYmVjb21lcyBwcmVzZW50YXRpb25hbCBmcm9tIDx1bD4uCiAg
ICAgLy8gaHR0cDovL3d3dy53My5vcmcvV0FJL1BGL2FyaWEvY29tcGxldGUjcHJlc2VudGF0aW9u
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBsaXN0SXRl
bVBhcmVudHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgbGlzdEl0ZW1QYXJlbnRzLCAoKSk7CiAKICAgICBIYXNoU2V0PFF1
YWxpZmllZE5hbWU+KiBwb3NzaWJsZVBhcmVudFRhZ05hbWVzID0gMDsKICAgICBzd2l0Y2ggKHJv
bGVWYWx1ZSgpKSB7CkBAIC0zMDI3LDkgKzMwMjcsOSBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNhbkhhdmVDaGlsZHJlbigpIGNvbnN0CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpdmVSZWdpb25TdGF0dXMoKSBjb25zdAog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaXZlUmVnaW9u
U3RhdHVzQXNzZXJ0aXZlLCAoImFzc2VydGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bGl2ZVJlZ2lvblN0YXR1c1BvbGl0ZSwgKCJwb2xpdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGxpdmVSZWdpb25TdGF0dXNPZmYsICgib2ZmIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNBc3NlcnRpdmUsICgiYXNzZXJ0aXZlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpdmVSZWdpb25TdGF0dXNQb2xpdGUs
ICgicG9saXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxpdmVSZWdp
b25TdGF0dXNPZmYsICgib2ZmIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbGl2ZVJlZ2lvblN0YXR1cyA9IGdldEF0
dHJpYnV0ZShhcmlhX2xpdmVBdHRyKTsKICAgICAvLyBUaGVzZSByb2xlcyBoYXZlIGltcGxpY2l0
IGxpdmUgcmVnaW9uIHN0YXR1cy4KQEAgLTMwNTQsNyArMzA1NCw3IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUxpdmVSZWdpb25TdGF0dXMoKSBj
b25zdAogCiBjb25zdCBBdG9taWNTdHJpbmcmIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFy
aWFMaXZlUmVnaW9uUmVsZXZhbnQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBkZWZhdWx0TGl2ZVJlZ2lvblJlbGV2YW50LCAoImFkZGl0aW9u
cyB0ZXh0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRMaXZl
UmVnaW9uUmVsZXZhbnQsICgiYWRkaXRpb25zIHRleHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiByZWxldmFudCA9IGdldEF0
dHJpYnV0ZShhcmlhX3JlbGV2YW50QXR0cik7CiAKICAgICAvLyBEZWZhdWx0IGFyaWEtcmVsZXZh
bnQgPSAiYWRkaXRpb25zIHRleHQiLgpAQCAtMzE2NiwxMiArMzE2NiwxMiBAQCBjb25zdCBTdHJp
bmcmIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjdGlvblZlcmIoKSBjb25zdAogewogI2lm
ICFQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gYWRkIHZlcmJzIGZvciBzZWxl
Y3QgZWxlbWVudHMuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGJ1dHRv
bkFjdGlvbiwgKEFYQnV0dG9uQWN0aW9uVmVyYigpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHRleHRGaWVsZEFjdGlvbiwgKEFYVGV4dEZpZWxkQWN0aW9uVmVyYigp
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJhZGlvQnV0dG9uQWN0
aW9uLCAoQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBjaGVja2VkQ2hlY2tCb3hBY3Rpb24sIChBWENoZWNrZWRDaGVja0Jv
eEFjdGlvblZlcmIoKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB1
bmNoZWNrZWRDaGVja0JveEFjdGlvbiwgKEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGlua0FjdGlvbiwgKEFY
TGlua0FjdGlvblZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGJ1dHRvbkFjdGlvbiwgKEFYQnV0dG9uQWN0aW9uVmVyYigpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGV4dEZpZWxkQWN0
aW9uLCAoQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCByYWRpb0J1dHRvbkFjdGlvbiwgKEFYUmFkaW9CdXR0
b25BY3Rpb25WZXJiKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBjaGVja2VkQ2hlY2tCb3hBY3Rpb24sIChBWENoZWNrZWRDaGVja0JveEFjdGlv
blZlcmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHVuY2hlY2tlZENoZWNrQm94QWN0aW9uLCAoQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZl
cmIoKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGxpbmtBY3Rpb24sIChBWExpbmtBY3Rpb25WZXJiKCkpKTsKIAogICAgIHN3aXRjaCAocm9sZVZh
bHVlKCkpIHsKICAgICBjYXNlIEJ1dHRvblJvbGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDIxOTFmNzc1MTc5
ZDA3ZjJlZmQ2YmZlMjdhNDI5NDJmZjBlODY5OTAuLmM1NDQ0NzRmZTA2YWY2MDlhMDJlOTgwMmQx
NDVlYTcwMTI0ZWE2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xMTksOCArMTE5LDggQEAgc3RhdGljIHZv
aWQgbm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ZWN0KQogICAgIC8vIGZvY3VzZWQgb2JqZWN0IGFuZCBpdHMgYXNzb2NpYXRlZCBsaXN0IG9iamVj
dCwgYXMgcGVyIHByZXZpb3VzCiAgICAgLy8gY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiwgaW4gb3Jk
ZXIgdG8gcHJvcGVybHkgZGVjaWRlIHdoZXRoZXIgdG8KICAgICAvLyBlbWl0IHNvbWUgc2lnbmFs
cyBvciBub3QuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4sIG9sZExpc3RPYmplY3QsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwgb2xkRm9jdXNlZE9iamVjdCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIG9s
ZExpc3RPYmplY3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBvbGRGb2N1c2VkT2JqZWN0LCAoKSk7CiAKICAgICAv
LyBPbmx5IGxpc3QgYm94ZXMgYW5kIG1lbnUgbGlzdHMgc3VwcG9ydGVkIHNvIGZhci4KICAgICBp
ZiAoIW9iamVjdCB8fCAhKG9iamVjdC0+aXNMaXN0Qm94KCkgfHwgb2JqZWN0LT5pc01lbnVMaXN0
KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXgg
OWQzYzg0MGYwZDQxNWY5MmM1YjY4YmJlNGYwZjE2ODg1NmVkYzA1Zi4uNTdiNmExOTJhZGZlMjI4
NmQzMGMwNTM3YWVhNzJkMjdjOTgzNWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3Qo
dm9pZCopCiAKIEdDQ29udHJvbGxlciYgZ2NDb250cm9sbGVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEdDQ29udHJvbGxlciwgc3RhdGljR0NDb250cm9sbGVyLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEdDQ29udHJvbGxlciwgc3RhdGljR0NDb250cm9s
bGVyLCAoKSk7CiAgICAgcmV0dXJuIHN0YXRpY0dDQ29udHJvbGxlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAKaW5kZXggMDdhZjkxODNhMjc5OTUwMTUyMTVlZmU3NjcxMzMwZWZiMzYzYWM5NC4u
OWRiNTVkZDRkYWQyZjY0ZWZkYmVmMzVmY2MwNGJhZGRhY2JlNzJjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwCkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBjc3NQcm9w
ZXJ0eUlERm9ySlNDU1NQcm9wZXJ0eU5hbWUoUHJvcGVydHlOYW1lIHByb3BlcnR5TmEKIAogICAg
IFN0cmluZyBzdHJpbmdGb3JDYWNoZSA9IFN0cmluZyhwcm9wZXJ0eU5hbWVTdHJpbmcpOwogICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENTU1Byb3BlcnR5SW5mbz4gQ1NTUHJvcGVydHlJbmZv
TWFwOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ1NTUHJvcGVydHlJbmZvTWFwLCBwcm9wZXJ0
eUluZm9DYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDU1NQ
cm9wZXJ0eUluZm9NYXAsIHByb3BlcnR5SW5mb0NhY2hlLCAoKSk7CiAgICAgcHJvcGVydHlJbmZv
ID0gcHJvcGVydHlJbmZvQ2FjaGUuZ2V0KHN0cmluZ0ZvckNhY2hlKTsKICAgICBpZiAocHJvcGVy
dHlJbmZvLnByb3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBwcm9wZXJ0eUluZm87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5k
SG9zdEN1c3RvbS5jcHAKaW5kZXggZjFlNDQ2ZDU1NzQ5M2I0NTY3ODE2OThhZTk0MGJiNWZlZTQx
NmMxYy4uMGFmZDEzNzYyMzFhNjZkZjNjOGRlNmM4Y2U4MGNlMDVkY2M1MzhlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Q3VzdG9tLmNwcApAQCAtNTQsMTkgKzU0LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4ZWNTdGF0ZSogZXhl
Y1N0YXRlKQogewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgibWFj
IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBw
bGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgibWFjIikpKTsKICNlbGlmIE9TKFdJTkRPV1MpCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFs
KCJ3aW5kb3dzIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgid2luZG93cyIpKSk7CiAjZWxpZiBPUyhM
SU5VWCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChB
U0NJSUxpdGVyYWwoImxpbnV4IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgibGludXgiKSkpOwogI2Vs
aWYgT1MoRlJFRUJTRCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sIChBU0NJSUxpdGVyYWwoImZyZWVic2QiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJmcmVl
YnNkIikpKTsKICNlbGlmIE9TKE9QRU5CU0QpCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJvcGVuYnNkIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJ
TGl0ZXJhbCgib3BlbmJzZCIpKSk7CiAjZWxpZiBPUyhTT0xBUklTKQotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFTQ0lJTGl0ZXJhbCgic29sYXJpcyIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFyaXMiKSkpOwogI2Vsc2UKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInVua25vd24i
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBs
YXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJ1bmtub3duIikpKTsKICNlbmRpZgogICAgIHJldHVybiBq
c1N0cmluZ1dpdGhDYWNoZShleGVjU3RhdGUsIHBsYXRmb3JtKTsKIH0KQEAgLTc0LDExICs3NCwx
MSBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpwbGF0Zm9ybShFeGVjU3RhdGUq
IGV4ZWNTdGF0ZSkKIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQoRXhlY1N0
YXRlKiBleGVjU3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoQVNDSUlMaXRlcmFsKCJndGsiKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxp
dGVyYWwoImd0ayIpKSk7CiAjZWxpZiBQTEFURk9STShFRkwpCi0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoImVmbCIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0
ZXJhbCgiZWZsIikpKTsKICNlbHNlCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25v
d24iKSkpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWNTdGF0ZSwg
cG9ydCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcAppbmRleCBhOTUxYjg4MDViYjc5ZTgwNjgyZWRjYTg5ZWM0MzM2OWVm
MTUzOThmLi5mZjYxMDQ5YmVmNGY3NzkwMGVlZmYyYmJkMjI5NThiMjk3Y2E4YzI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5j
cHAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIFBhZ2UqIHRvUGFnZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogCiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlcjo6c2hhcmVkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlciwgc2VydmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciwgc2VydmVyLCAoKSk7CiAgICAgcmV0dXJuIHNlcnZlcjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5h
bC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0KaW5kZXgg
ODEzMjY5OGYxNDRiNzI0OGNmYTk0MzE4MmY3ZDMwMGUyZDU3MDlkYi4uYTk5MjZkNDNiMDY4Zjhl
ZDY4ZDkwNDFkZjU3M2NlY2NmYmU2MjM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUludGVybmFsLm1tCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBOU01hcFRhYmxlKiBE
T01XcmFwcGVyQ2FjaGU7CiAjaWZkZWYgTkVFRFNfV1JBUFBFUl9DQUNIRV9MT0NLCiBzdGF0aWMg
TXV0ZXgmIHdyYXBwZXJDYWNoZUxvY2soKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0
ZXgsIHdyYXBwZXJDYWNoZU11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKE11dGV4LCB3cmFwcGVyQ2FjaGVNdXRleCwgKCkpOwogICAgIHJldHVybiB3cmFwcGVy
Q2FjaGVNdXRleDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA0ZGM1NWJhZmI5ZWFkNTdiODJmNjRkZjFi
Y2U2YjVmZGJkYzViMzEyLi41ZWMwNzViMGRmZmYwZGY2ODhlYjE4YzdmNWFmYTc4ODk2NTgxZjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMTE1Myw3ICsxMTUzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldv
cmxkJiwgJGltcGxUeXBlKilcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xu
Iik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChKUyR7aW50ZXJmYWNlTmFtZX1Pd25lciwganMke2ludGVyZmFjZU5hbWV9T3duZXIsICgpKTtc
biIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChKUyR7aW50ZXJmYWNlTmFtZX1Pd25lciwganMke2ludGVyZmFjZU5hbWV9
T3duZXIsICgpKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHJldHVy
biAmanMke2ludGVyZmFjZU5hbWV9T3duZXI7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIn1cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCBiNGJiODg4ZGE5NzQ0YmRlMGViZmJhZWU5YWFl
MGRmY2U2NTQyZDNkLi43MDk1MDY0NWM1Y2RlMDZhMWQ4NGJkNzEzYWRjMDgzY2M5ZDdkYzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoK
IAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldv
cmxkJiwgVGVzdEFjdGl2ZURPTU9iamVjdCopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChK
U1Rlc3RBY3RpdmVET01PYmplY3RPd25lciwganNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXIsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0T3duZXIsIGpzVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZq
c1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuaAppbmRleCBkNDkwNGI2NzkzOGVkYmVkZGQ2ZjBmYzE3OWNjNTE0ZDVhMWNmMDU2Li45
ZjU1ZmRhMDE4MDYwOTBiYmVhNjU0NzUzY2MwZDI0YmQ2Mjk5MWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBK
U0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RD
dXN0b21OYW1lZEdldHRlciopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RDdXN0
b21OYW1lZEdldHRlck93bmVyLCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
T3duZXIsIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpz
VGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oCmluZGV4IDE5NTEwZmRiNjkxYTA3YzljY2Q2NzE4MDViN2U3MTJhMjJhMmE1ZTcuLjVi
ZTk1OGRmMDQ0MDhmMDNiMzU2OGNjYWJiMTAwODBiNzdjNGMxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6
OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RFdmVu
dENvbnN0cnVjdG9yKikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV2ZW50Q29u
c3RydWN0b3JPd25lciwganNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lciwg
anNUZXN0RXZlbnRDb25zdHJ1Y3Rvck93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggM2M2MDBk
Y2ZiODliYmViYzE4NGJmMTAxMzFmOTc3Y2E5NzhjZDc1OC4uNmViOWJkZTg0OTYzNWE5ZmExMTMw
ZmI4ZWY0ZTE2NjQ0ZjM2YjVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTg3LDcgKzg3
LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25l
cihET01XcmFwcGVyV29ybGQmLCBUZXN0RXZlbnRUYXJnZXQqKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSlNUZXN0RXZlbnRUYXJnZXRPd25lciwganNUZXN0RXZlbnRUYXJnZXRPd25lciwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RFdmVudFRhcmdl
dE93bmVyLCBqc1Rlc3RFdmVudFRhcmdldE93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RF
dmVudFRhcmdldE93bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKaW5kZXggM2U5MzhkZDNiYTBi
MmZhZGFiNmVlYmIzMGQ3OGQxNzQyOGFlOGRiZC4uZTlkZmEwMDQ4NTRiNjE4OGZmOTVmOWQ1Y2Jk
YmM5ZTA2ZDNhNjRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaApAQCAtNzgsNyArNzgsNyBAQCBwdWJs
aWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBw
ZXJXb3JsZCYsIFRlc3RFeGNlcHRpb24qKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNU
ZXN0RXhjZXB0aW9uT3duZXIsIGpzVGVzdEV4Y2VwdGlvbk93bmVyLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEV4Y2VwdGlvbk93bmVyLCBqc1Rlc3RFeGNl
cHRpb25Pd25lciwgKCkpOwogICAgIHJldHVybiAmanNUZXN0RXhjZXB0aW9uT3duZXI7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmluZGV4IGMzODgxYjA1Y2QxMmJj
NGFiNDkzOTQ0ZjI2YmFkOTY0YTM1NjNkMDcuLmNmODNiM2FkZDI5MzQ2ZjBiMmIwN2I5YTg0MGJj
MWIzOTg0NjJmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAt
NzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3Jh
cHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lciwg
anNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lciwganNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZU93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCA1MzNhNmRiYjJjMGFj
MGYxMzJjYzM1YWY2ZGRiZmRkNmIxYjc1MGQ1Li41MjI3MDgwMDA0MTUwNjU1OGI1ZGVmZTQ3ZDYw
MGI2NThiNmQ2MzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVi
bGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFw
cGVyV29ybGQmLCBUZXN0SW50ZXJmYWNlKikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpT
VGVzdEludGVyZmFjZU93bmVyLCBqc1Rlc3RJbnRlcmZhY2VPd25lciwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RJbnRlcmZhY2VPd25lciwganNUZXN0SW50
ZXJmYWNlT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzVGVzdEludGVyZmFjZU93bmVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCAwNTE2YTRh
ZGZlZDllNDFjNGRlODkzY2NmZTFlNzJlOTA0NjIzN2I3Li5lNzU4NGNkNTk5ODc2OWZhYjQ1OThi
ZmVjYzBlYTlmZjU1NDdiOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyT3duZXIsIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lciwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyT3duZXIsIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lciwgKCkpOwog
ICAgIHJldHVybiAmanNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lck93bmVyOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCA1YTNlMzQyNWM2NDg1NDg4M2Q3MjFlNjdl
MWRiMmE5ZDM2Y2M1ZGUxLi5hZTllNGY1ZTM1ZDcyNWI1ZTJhY2YzZmYyOWVkNGYzNmI4ZWQ4ZmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVi
bGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFw
cGVyV29ybGQmLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIsIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JP
d25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yT3duZXIsIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lciwgKCkpOwogICAg
IHJldHVybiAmanNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggOTNi
MGRiMTY1MjhiMTcyMGNmMGZkNDQ2ZTIzZGFkNDc3NDkzYjAyZi4uNjNiZTNlYjg5ZTM4MDQyOTlh
MWU2NTI4Y2QzZTc3MmQ2ZmFjZjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6
CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJX
b3JsZCYsIFRlc3RPYmoqKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0T2JqT3du
ZXIsIGpzVGVzdE9iak93bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEpTVGVzdE9iak93bmVyLCBqc1Rlc3RPYmpPd25lciwgKCkpOwogICAgIHJldHVybiAmanNU
ZXN0T2JqT3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5oCmluZGV4IDAzZDhkM2UwNjE4ZDQ0N2I1Mjk5NDc1NjA0MWJlMzQ2NTA2OGRhNjguLjc1MmQx
ZGQzZGFhNzM1YWVhYmFlNjY1MzRmZDE5ZDg3MDkxNmRkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKIGlu
bGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYs
IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lciwganNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc093bmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lciwganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc093bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
T3duZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaAppbmRleCAzNTUwZWU0MWZmY2EwMzk1OWExNjVjMTlkZTViYmQ1NGNkNGEx
OWYyLi4xNDFmMzdkZWQwOGQ5MjExMGZlNTUzNzNlODUwOTZlZTA0OTA2ZTcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC04
NCw3ICs4NCw3IEBAIHB1YmxpYzoKIAogaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFw
cGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VPd25lciwganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
T3duZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXIsIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZU93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VPd25lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAppbmRleCA0MDA3ZTgz
MjIyZjI1NGJiYThiZTc2NWZkY2U1MzcyYTA2ZmYxM2ZlLi4xODE1NTMyMzE1MzM0MGZlNzdkNTY5
YWVjNTRkOGYzZDQ5NWE0NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAKIGlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdy
YXBwZXJXb3JsZCYsIFRlc3RUeXBlZGVmcyopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChK
U1Rlc3RUeXBlZGVmc093bmVyLCBqc1Rlc3RUeXBlZGVmc093bmVyLCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEpTVGVzdFR5cGVkZWZzT3duZXIsIGpzVGVzdFR5cGVk
ZWZzT3duZXIsICgpKTsKICAgICByZXR1cm4gJmpzVGVzdFR5cGVkZWZzT3duZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJp
YnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmgKaW5kZXggNTMwMmYxNzY5ODA1Njk0YTNlNTExM2E0NzJjOGE0MWMwMmQ1MjFkNC4uMmU4
MWY1N2RiZjczMTliZDI5ZjIxZGVmMjk1Yjk5NDBjNDlhOGE0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKQEAgLTc4
LDcgKzc4LDcgQEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBw
ZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBhdHRyaWJ1dGUqKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSlNhdHRyaWJ1dGVPd25lciwganNhdHRyaWJ1dGVPd25lciwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU2F0dHJpYnV0ZU93bmVyLCBqc2F0dHJpYnV0
ZU93bmVyLCAoKSk7CiAgICAgcmV0dXJuICZqc2F0dHJpYnV0ZU93bmVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaApp
bmRleCBiZjU2ZTNlMzA4OTI4ZGQ0MjkxODJhMjQ2YTBiOWNlZTk0MDI5NjQzLi40ODI3ODk1ODRi
MzY2NTNjMWE1ZGVlNjQ5YzAxMTNmYWEyOTc1ZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKQEAgLTc4LDcgKzc4LDcg
QEAgcHVibGljOgogCiBpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihE
T01XcmFwcGVyV29ybGQmLCByZWFkb25seSopCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChK
U3JlYWRvbmx5T3duZXIsIGpzcmVhZG9ubHlPd25lciwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChKU3JlYWRvbmx5T3duZXIsIGpzcmVhZG9ubHlPd25lciwgKCkpOwog
ICAgIHJldHVybiAmanNyZWFkb25seU93bmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvSWRlbnRpZmllclJlcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvSWRl
bnRpZmllclJlcC5jcHAKaW5kZXggM2FmN2EzN2ZhMDRiMGViZjRhMTkzY2MyY2FhYzg3MDJjN2I4
ZmZjNS4uYTQ3OTk1MjUzZjdlMWJmNzJjZTA5OTg3MjA2NmU3ZDY4YTlkYjljNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9JZGVudGlmaWVyUmVwLmNwcApAQCAtMzksNyArMzksNyBAQCB0eXBlZGVm
IEhhc2hTZXQ8SWRlbnRpZmllclJlcCo+IElkZW50aWZpZXJTZXQ7CiAKIHN0YXRpYyBJZGVudGlm
aWVyU2V0JiBpZGVudGlmaWVyU2V0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKElkZW50
aWZpZXJTZXQsIGlkZW50aWZpZXJTZXQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSWRlbnRpZmllclNldCwgaWRlbnRpZmllclNldCwgKCkpOwogICAgIHJldHVybiBp
ZGVudGlmaWVyU2V0OwogfQogICAgIApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIEhhc2hNYXA8
aW50LCBJZGVudGlmaWVyUmVwKj4gSW50SWRlbnRpZmllck1hcDsKIAogc3RhdGljIEludElkZW50
aWZpZXJNYXAmIGludElkZW50aWZpZXJNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SW50SWRlbnRpZmllck1hcCwgaW50SWRlbnRpZmllck1hcCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChJbnRJZGVudGlmaWVyTWFwLCBpbnRJZGVudGlmaWVyTWFwLCAo
KSk7CiAgICAgcmV0dXJuIGludElkZW50aWZpZXJNYXA7CiB9CiAKQEAgLTgxLDcgKzgxLDcgQEAg
dHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTdHJpbmdJbXBsPiwgSWRlbnRpZmllclJlcCo+IFN0cmlu
Z0lkZW50aWZpZXJNYXA7CiAKIHN0YXRpYyBTdHJpbmdJZGVudGlmaWVyTWFwJiBzdHJpbmdJZGVu
dGlmaWVyTWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ0lkZW50aWZpZXJN
YXAsIHN0cmluZ0lkZW50aWZpZXJNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nSWRlbnRpZmllck1hcCwgc3RyaW5nSWRlbnRpZmllck1hcCwgKCkpOwog
ICAgIHJldHVybiBzdHJpbmdJZGVudGlmaWVyTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05Q
X2pzb2JqZWN0LmNwcAppbmRleCAzNGRkMTQ2OTY1NjJkNDFjZDE5NzU5NmE2MDlkNjkzMDU1NzU3
ZDU2Li5mN2Q2YmI0Y2ZhNDlmZjUzNmNlODVkMmFmYjE3OTIwYTY2YTliOTY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIAog
c3RhdGljIE9iamVjdE1hcCYgb2JqZWN0TWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KE9iamVjdE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KE9iamVjdE1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCA0NDFjMjBlZDczNTY3MzMzMGJkNmZlOTAzYzVi
MTkxZTQxYWJiZDAyLi4wOTg3YmUyMjA0Zjk3ZDI1YzhiYjU4ZTVlNDE3YTczY2IwYTNjNzdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBu
YW1lc3BhY2UgQmluZGluZ3MgewogCiBzdGF0aWMgU3RyaW5nJiBnbG9iYWxFeGNlcHRpb25TdHJp
bmcoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25TdHIsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBleGNlcHRpb25T
dHIsICgpKTsKICAgICByZXR1cm4gZXhjZXB0aW9uU3RyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX3Jvb3QuY3BwCmluZGV4IGJhMDNkNWQyOTkyYjQ4YmQ4MGJlNDY3YmYxZTJmYzlk
MGZkMjZhMmMuLmZmNjZkMzNmYzUwNGY4Y2UzMmJmZThiZDExMTkzMjQ2MGJjNDc0NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHR5cGVk
ZWYgSGFzaFNldDxSb290T2JqZWN0Kj4gUm9vdE9iamVjdFNldDsKIAogc3RhdGljIFJvb3RPYmpl
Y3RTZXQqIHJvb3RPYmplY3RTZXQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUm9vdE9i
amVjdFNldCwgc3RhdGljUm9vdE9iamVjdFNldCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChSb290T2JqZWN0U2V0LCBzdGF0aWNSb290T2JqZWN0U2V0LCAoKSk7CiAg
ICAgcmV0dXJuICZzdGF0aWNSb290T2JqZWN0U2V0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGU5ZWI1MDVhNDJi
MGViYTM2YzdiMzMyNWM3ODkxMDY4ZjBmYzY3ZDAuLjBjNTg2NjE5Nzg2YWI4OGY4ZDg0ZjVhZDcx
Mjc0ZGM0ZDc5YjE5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNDQxLDcgKzE0NDEsNyBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gY291bnRlclRvQ1NTVmFsdWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LCBDU1NQcm9wZQogCiBzdGF0aWMgdm9pZCBsb2dVbmltcGxlbWVudGVkUHJvcGVydHlJRChDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PENTU1Byb3BlcnR5SUQ+LCBwcm9wZXJ0eUlEU2V0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4sIHByb3BlcnR5SURTZXQsICgp
KTsKICAgICBpZiAoIXByb3BlcnR5SURTZXQuYWRkKHByb3BlcnR5SUQpLmlzTmV3RW50cnkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0RlZmF1
bHRTdHlsZVNoZWV0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzLmNwcAppbmRleCA4NDg5OGFjN2IwNzVkNzA2ZTExMjM3MjMxMzNmYmNiMjQxMDVhYmU1Li43
Y2VkMDRkNWJhMTM4NGM2MDlhODRkNTg3NzcwM2ZkMDhkMGUwZTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0eWxlKEVsZW1lbnQq
IGUpCiAKIHN0YXRpYyBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBzY3JlZW5FdmFsKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3IsIHN0YXRp
Y1NjcmVlbkV2YWwsICgic2NyZWVuIikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yLCBzdGF0aWNTY3JlZW5FdmFsLCAoInNjcmVl
biIpKTsKICAgICByZXR1cm4gc3RhdGljU2NyZWVuRXZhbDsKIH0KIAogc3RhdGljIGNvbnN0IE1l
ZGlhUXVlcnlFdmFsdWF0b3ImIHByaW50RXZhbCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yLCBzdGF0aWNQcmludEV2YWwsICgicHJpbnQiKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhUXVlcnlFdmFs
dWF0b3IsIHN0YXRpY1ByaW50RXZhbCwgKCJwcmludCIpKTsKICAgICByZXR1cm4gc3RhdGljUHJp
bnRFdmFsOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IDNi
OGE2OGNjMjU2ZDg1OWNjMGRlMTkzYzNlYWI3OGQyODkzYTA5NmQuLmEwMTQ3ZmRjZTAyZjlhMGFm
OWUwYjUzZWM4ZGZhZDhlY2M5YWRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0
b3IuY3BwCkBAIC02MTksNyArNjE5LDcgQEAgYm9vbCBDU1NGb250U2VsZWN0b3I6OnJlc29sdmVz
RmFtaWx5Rm9yKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pIGNvbnMKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAobV9mb250RmFjZXMuY29udGFpbnMoZmFtaWx5
TmFtZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHdlYmtpdFByZWZpeCwgKCItd2Via2l0LSIpKTsKKyAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgd2Via2l0UHJlZml4LCAoIi13ZWJraXQt
IikpOwogICAgICAgICBpZiAoZmFtaWx5TmFtZS5zdGFydHNXaXRoKHdlYmtpdFByZWZpeCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAppbmRleCAyNWM4MTE0NWEwMzRhOWU0MTQ2MTQ1MTI1ZTNkYTA4ZmU0ZTNkNGJhLi5hZTBh
YjlmNWI1M2Q0YjRlM2NhYjdlNTQ5MjViY2VmYWIyM2M1YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIHByaXZhdGU6CiAKIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIHN0cmljdENTU1BhcnNlckNvbnRleHQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQ1NTUGFyc2VyQ29udGV4dCwgc3RyaWN0Q29udGV4dCwgKENTU1N0cmljdE1vZGUpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ1NTUGFyc2VyQ29udGV4dCwgc3RyaWN0
Q29udGV4dCwgKENTU1N0cmljdE1vZGUpKTsKICAgICByZXR1cm4gc3RyaWN0Q29udGV4dDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggMmUwOWJkMTEw
ODlhZDI3OTc3NzNjNzcwZjQ3MWY0M2YzODNkZmMyOS4uODgyYjFmOGUwNzVjMWE3NTU5NjE4ZWQx
MTIxYTBiODRlYzFhY2Y0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRDYXRlZ29yeSBD
U1NQcmltaXRpdmVWYWx1ZTo6dW5pdENhdGVnb3J5KENTU1ByaW1pdGl2ZVZhbHUKIHR5cGVkZWYg
SGFzaE1hcDxjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSosIFN0cmluZz4gQ1NTVGV4dENhY2hlOwog
c3RhdGljIENTU1RleHRDYWNoZSYgY3NzVGV4dENhY2hlKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKENTU1RleHRDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQ1NTVGV4dENhY2hlLCBjYWNoZSwgKCkpOwogICAgIHJldHVybiBjYWNoZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggMGRkMjdjMTAyNjNiNTI3MTcx
NmYwNWM0MzgyNzg1YjljMmE3NzUwYi4uMjZhYzM2MzUwMzFkNWNlOWRiMjgyMjBmMGJiMzEzNzgw
NzE4ODkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC0xNzMsNyArMTczLDcg
QEAgc3RhdGljIENTU1Byb3BlcnR5SUQgcmVzb2x2ZVRvUGh5c2ljYWxQcm9wZXJ0eShXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgTG9naWNhbEUKIHN0YXRpYyBjb25zdCBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kJiBib3JkZXJEaXJlY3Rpb25zKCkKIHsKICAgICBzdGF0aWMgY29uc3QgQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0aWVzWzRdID0geyBDU1NQcm9wZXJ0eUJvcmRlclRvcCwgQ1NTUHJvcGVydHlC
b3JkZXJSaWdodCwgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b20sIENTU1Byb3BlcnR5Qm9yZGVyTGVm
dCB9OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCwgYm9y
ZGVyRGlyZWN0aW9ucywgKENTU1Byb3BlcnR5Qm9yZGVyLCBwcm9wZXJ0aWVzLCBXVEZfQVJSQVlf
TEVOR1RIKHByb3BlcnRpZXMpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0eWxlUHJvcGVydHlTaG9ydGhhbmQsIGJvcmRlckRpcmVjdGlvbnMsIChDU1NQcm9wZXJ0eUJv
cmRlciwgcHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzKSkpOwogICAgIHJl
dHVybiBib3JkZXJEaXJlY3Rpb25zOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3Bw
CmluZGV4IGE3NTJhOGZiOWI1MjYxMWEzODBkMjg1ZmZmNjc2Yzk3ZjFmODg4YjAuLjRiYzlkOThh
ZDU4ZTc2NmIzMmI1NTU5MGFmMjFmYWM0ZjdiNDk2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVJ1bGUuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYg
SGFzaE1hcDxjb25zdCBDU1NTdHlsZVJ1bGUqLCBTdHJpbmc+IFNlbGVjdG9yVGV4dENhY2hlOwog
c3RhdGljIFNlbGVjdG9yVGV4dENhY2hlJiBzZWxlY3RvclRleHRDYWNoZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTZWxlY3RvclRleHRDYWNoZSwgY2FjaGUsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2VsZWN0b3JUZXh0Q2FjaGUsIGNhY2hlLCAoKSk7
CiAgICAgcmV0dXJuIGNhY2hlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVQb29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmlu
ZGV4IDExNWJkOWJhMmExNTdlZTE3MDU1YTk0NWQzODcxNDE4YjdkMmIyNDEuLjI5ODAwM2Q2YjQ5
MGZiMjM3MDRlOTg4NmJmODVhZjFjNGQyODViNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBv
b2wuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1NTVmFsdWVQ
b29sJiBjc3NWYWx1ZVBvb2woKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ1NTVmFsdWVQ
b29sLCBwb29sLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENTU1Zh
bHVlUG9vbCwgcG9vbCwgKCkpOwogICAgIHJldHVybiBwb29sOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggYzA2MjczNmIzY2M4Yzkw
MGU1NjYyODQ4NWU4MDdiZmU5ZmYzZjhlMC4uNmRjYjkxOWJiM2Q2MDBlMDA3YTdhMzViNzQxNzNk
ZmRiMTZiMDliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHls
ZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWls
ZGVyLmNwcApAQCAtMTU4MywyMiArMTU4MywyMiBAQCBwcml2YXRlOgogICAgIH0KICAgICBzdGF0
aWMgYm9vbCBnZXRQYWdlU2l6ZUZyb21OYW1lKENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlU2l6ZU5h
bWUsIENTU1ByaW1pdGl2ZVZhbHVlKiBwYWdlT3JpZW50YXRpb24sIExlbmd0aCYgd2lkdGgsIExl
bmd0aCYgaGVpZ2h0KQogICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgs
IGE1V2lkdGgsIChtbUxlbmd0aCgxNDgpKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoLCBhNUhlaWdodCwgKG1tTGVuZ3RoKDIxMCkpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChMZW5ndGgsIGE0V2lkdGgsIChtbUxlbmd0aCgyMTApKSk7Ci0gICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhNEhlaWdodCwgKG1tTGVuZ3RoKDI5NykpKTsKLSAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGEzV2lkdGgsIChtbUxlbmd0aCgyOTcpKSk7
Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhM0hlaWdodCwgKG1tTGVuZ3Ro
KDQyMCkpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGI1V2lkdGgsICht
bUxlbmd0aCgxNzYpKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBiNUhl
aWdodCwgKG1tTGVuZ3RoKDI1MCkpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChMZW5n
dGgsIGI0V2lkdGgsIChtbUxlbmd0aCgyNTApKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoTGVuZ3RoLCBiNEhlaWdodCwgKG1tTGVuZ3RoKDM1MykpKTsKLSAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChMZW5ndGgsIGxldHRlcldpZHRoLCAoaW5jaExlbmd0aCg4LjUpKSk7Ci0gICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBsZXR0ZXJIZWlnaHQsIChpbmNoTGVuZ3Ro
KDExKSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGVnYWxXaWR0aCwg
KGluY2hMZW5ndGgoOC41KSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwg
bGVnYWxIZWlnaHQsIChpbmNoTGVuZ3RoKDE0KSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKExlbmd0aCwgbGVkZ2VyV2lkdGgsIChpbmNoTGVuZ3RoKDExKSkpOwotICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGVkZ2VySGVpZ2h0LCAoaW5jaExlbmd0aCgxNykpKTsK
KyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYTVXaWR0aCwg
KG1tTGVuZ3RoKDE0OCkpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KExlbmd0aCwgYTVIZWlnaHQsIChtbUxlbmd0aCgyMTApKSk7CisgICAgICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGE0V2lkdGgsIChtbUxlbmd0aCgyMTApKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGE0SGVpZ2h0LCAo
bW1MZW5ndGgoMjk3KSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoLCBhM1dpZHRoLCAobW1MZW5ndGgoMjk3KSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBhM0hlaWdodCwgKG1tTGVuZ3RoKDQyMCkpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgYjVXaWR0aCwgKG1t
TGVuZ3RoKDE3NikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExl
bmd0aCwgYjVIZWlnaHQsIChtbUxlbmd0aCgyNTApKSk7CisgICAgICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGI0V2lkdGgsIChtbUxlbmd0aCgyNTApKSk7CisgICAg
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChMZW5ndGgsIGI0SGVpZ2h0LCAobW1M
ZW5ndGgoMzUzKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGVu
Z3RoLCBsZXR0ZXJXaWR0aCwgKGluY2hMZW5ndGgoOC41KSkpOworICAgICAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBsZXR0ZXJIZWlnaHQsIChpbmNoTGVuZ3RoKDEx
KSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGVuZ3RoLCBsZWdh
bFdpZHRoLCAoaW5jaExlbmd0aCg4LjUpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChMZW5ndGgsIGxlZ2FsSGVpZ2h0LCAoaW5jaExlbmd0aCgxNCkpKTsKKyAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aCwgbGVkZ2VyV2lkdGgsIChp
bmNoTGVuZ3RoKDExKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoLCBsZWRnZXJIZWlnaHQsIChpbmNoTGVuZ3RoKDE3KSkpOwogCiAgICAgICAgIGlmICgh
cGFnZVNpemVOYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMzOSw3ICsyMzM5
LDcgQEAgcHVibGljOgogCiBjb25zdCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyJiBEZXByZWNhdGVk
U3R5bGVCdWlsZGVyOjpzaGFyZWRTdHlsZUJ1aWxkZXIoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoRGVwcmVjYXRlZFN0eWxlQnVpbGRlciwgc3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRGVwcmVjYXRlZFN0eWxlQnVpbGRl
ciwgc3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKICAgICByZXR1cm4gc3R5bGVCdWlsZGVySW5z
dGFuY2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggYWZlYzI5ZDhlNGMzNTk3
ZjJkMzI5M2FlYTFhYjg5Y2M1NzkzYWU1My4uN2Q0OTRiYzQ0NjJmYTYzZTJjZDU3MGJkZTQ3ZWUw
MDAwNjEwNTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTI5MywxMSArMjkzLDEx
IEBAIHN0YXRpYyB2b2lkIGFkZFJlc29sdXRpb25XYXJuaW5nTWVzc2FnZVRvQ29uc29sZShEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluCiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICBB
U1NFUlQodmFsdWUpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG1lZGlhUXVl
cnlNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJDb25zaWRlciB1c2luZyAnZHBweCcgdW5pdHMgaW5z
dGVhZCBvZiAnJXJlcGxhY2VtZW50VW5pdHMlJywgYXMgaW4gQ1NTICclcmVwbGFjZW1lbnRVbml0
cyUnIG1lYW5zIGRvdHMtcGVyLUNTUy0lbGVuZ3RoVW5pdCUsIG5vdCBkb3RzLXBlci1waHlzaWNh
bC0lbGVuZ3RoVW5pdCUsIHNvIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gdGhlIGFjdHVhbCAnJXJl
cGxhY2VtZW50VW5pdHMlJyBvZiBhIHNjcmVlbi4gSW4gbWVkaWEgcXVlcnkgZXhwcmVzc2lvbjog
IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQSSwgKEFT
Q0lJTGl0ZXJhbCgiZHBpIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWVk
aWFWYWx1ZURQQ00sIChBU0NJSUxpdGVyYWwoImRwY20iKSkpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBsZW5ndGhVbml0SW5jaCwgKEFTQ0lJTGl0ZXJhbCgiaW5jaCIpKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVuaXRDZW50aW1ldGVyLCAoQVND
SUlMaXRlcmFsKCJjZW50aW1ldGVyIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBtZWRpYVF1ZXJ5TWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ29uc2lkZXIg
dXNpbmcgJ2RwcHgnIHVuaXRzIGluc3RlYWQgb2YgJyVyZXBsYWNlbWVudFVuaXRzJScsIGFzIGlu
IENTUyAnJXJlcGxhY2VtZW50VW5pdHMlJyBtZWFucyBkb3RzLXBlci1DU1MtJWxlbmd0aFVuaXQl
LCBub3QgZG90cy1wZXItcGh5c2ljYWwtJWxlbmd0aFVuaXQlLCBzbyBkb2VzIG5vdCBjb3JyZXNw
b25kIHRvIHRoZSBhY3R1YWwgJyVyZXBsYWNlbWVudFVuaXRzJScgb2YgYSBzY3JlZW4uIEluIG1l
ZGlhIHF1ZXJ5IGV4cHJlc3Npb246ICIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgbWVkaWFWYWx1ZURQSSwgKEFTQ0lJTGl0ZXJhbCgiZHBpIikpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBtZWRpYVZhbHVlRFBDTSwg
KEFTQ0lJTGl0ZXJhbCgiZHBjbSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgbGVuZ3RoVW5pdEluY2gsIChBU0NJSUxpdGVyYWwoImluY2giKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGxlbmd0aFVuaXRDZW50aW1l
dGVyLCAoQVNDSUlMaXRlcmFsKCJjZW50aW1ldGVyIikpKTsKIAogICAgIFN0cmluZyBtZXNzYWdl
OwogICAgIGlmICh2YWx1ZS0+aXNEb3RzUGVySW5jaCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAppbmRleCAwMmVkMjI5YzljMTc3MGEzNmMyZDg0MTJlMzI5ZDhkNGUwY2Nm
MGNjLi45ZGZjODM3ZmNhNGViMjUzMThmZWQzMTc3YmI3NzBjNGUwMDRjY2EwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNTAsOCArNTAsOCBAQCBzdGF0aWMgc2l6
ZV90IHNpemVGb3JJbW11dGFibGVTdHlsZVByb3BlcnRpZXNXaXRoUHJvcGVydHlDb3VudCh1bnNp
Z25lZCBjb3VudCkKIAogc3RhdGljIGJvb2wgaXNJbml0aWFsT3JJbmhlcml0KGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaXRpYWwsICgi
aW5pdGlhbCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW5oZXJpdCwgKCJp
bmhlcml0IikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGlu
aXRpYWwsICgiaW5pdGlhbCIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBpbmhlcml0LCAoImluaGVyaXQiKSk7CiAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCgp
ID09IDcgJiYgKHZhbHVlID09IGluaXRpYWwgfHwgdmFsdWUgPT0gaW5oZXJpdCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggYWFlZjFjMTM5MTBj
YmJlZjUzZjRlZmI2OWI1OGE3OTNjZTliNDI3OC4uZDA1OGU2ZGVhNDA3YjdjOTdkNGMzZWM3ODJi
MDM0MzFlM2Q2ZjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5j
cHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cGFyc2VBdXRo
b3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZAogICAgIH0KICAg
ICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzICYmIGlzU3RyaWN0
UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkpIHsKICAgICAgICAgLy8gV29yayBhcm91
bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODM1MD4uCi0gICAg
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVdpa2lLSFRNTEZpeGVz
U3R5bGVTaGVldCwgKEFTQ0lJTGl0ZXJhbCgiLyogS0hUTUwgZml4IHN0eWxlc2hlZXQgKi9cbi8q
IHdvcmsgYXJvdW5kIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhcnMgKi9cbiNjb2x1bW4tY29udGVu
dCB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0
LCAoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5bGVzaGVldCAqL1xuLyogd29yayBhcm91
bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xuI2NvbHVtbi1jb250ZW50IHsgbWFyZ2lu
LWxlZnQ6IDA7IH1cblxuIikpKTsKICAgICAgICAgLy8gVGhlcmUgYXJlIHR3byB2YXJpYW50cyBv
ZiBLSFRNTEZpeGVzLmNzcy4gT25lIGlzIGVxdWFsIHRvIG1lZGlhV2lraUtIVE1MRml4ZXNTdHls
ZVNoZWV0LAogICAgICAgICAvLyB3aGlsZSB0aGUgb3RoZXIgbGFja3MgdGhlIHNlY29uZCB0cmFp
bGluZyBuZXdsaW5lLgogICAgICAgICBpZiAoYmFzZVVSTCgpLnN0cmluZygpLmVuZHNXaXRoKCIv
S0hUTUxGaXhlcy5jc3MiKSAmJiAhc2hlZXRUZXh0LmlzTnVsbCgpICYmIG1lZGlhV2lraUtIVE1M
Rml4ZXNTdHlsZVNoZWV0LnN0YXJ0c1dpdGgoc2hlZXRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwCmluZGV4IGQ4YzIwMmNlNDIxMWRjNjdhN2Uz
NGFjNmNjZTgyODBmYjk5MTE3YjUuLjRiODA4ZDRmYjVlMDIzZDFlNzFhMDJhNzJiZmNhMTRkYzM1
MWRhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZExpc3RNdXRhdGlvblNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5j
cHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdHlwZWRlZiBIYXNoTWFw
PENvbnRhaW5lck5vZGUqLCBDaGlsZExpc3RNdXRhdGlvbkFjY3VtdWxhdG9yKj4gQWNjdW11bGF0
b3JNYXA7CiBzdGF0aWMgQWNjdW11bGF0b3JNYXAmIGFjY3VtdWxhdG9yTWFwKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEFjY3VtdWxhdG9yTWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQWNjdW11bGF0b3JNYXAsIG1hcCwgKCkpOwogICAgIHJl
dHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmlu
ZGV4IDY2MjU1ZDZiOThjZjY4Nzc3ZTAwMDFhMmM2OTY2NmUyMGFhMzg4MmUuLjc2YTFlZTk2YjQ2
MGIzMjZlNGMxMzViZGFmNjNlN2I3OTk0YmRkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcApAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRl
ZFNWRzEwRmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lv
bgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9
IGZhbHNlOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3ZnRmVhdHVyZXMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRmVhdHVyZVNldCwgc3Zn
RmVhdHVyZXMsICgpKTsKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CiAjaWYgRU5BQkxFKEZJTFRF
UlMpICYmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgICAgIGFkZFN0cmluZyhzdmdGZWF0dXJlcywg
InN2ZyIpOwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkU1ZHMTFG
ZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0LCBzdmdGZWF0dXJlcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGZWF0dXJlU2V0LCBzdmdGZWF0dXJl
cywgKCkpOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAgLy8gU2FkbHksIHdlIGNh
bm5vdCBjbGFpbSB0byBpbXBsZW1lbnQgYW55IG9mIHRoZSBTVkcgMS4xIGdlbmVyaWMgZmVhdHVy
ZSBzZXRzCiAgICAgICAgIC8vIGxhY2sgb2YgRm9udCBhbmQgRmlsdGVyIHN1cHBvcnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA5NDE0NjJlMTZiM2E5YmI1MmM1MTlhZDc0YjM3ZGViYWI2
OTU4NTZhLi5iY2ZhNTAxN2U0OGE0ZTMwODUxMjI0NzJjMTMxN2YyNTExNjIxZmIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExNjksOSArMTE2OSw5IEBAIFBhc3NSZWZQdHI8RWxlbWVu
dD4gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnROUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwg
Y29uc3QKIAogU3RyaW5nIERvY3VtZW50OjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9hZGluZywgKEFTQ0lJTGl0ZXJhbCgibG9h
ZGluZyIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyYWN0
aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGNvbXBsZXRlLCAoQVNDSUlMaXRlcmFsKCJjb21wbGV0ZSIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9hZGlu
ZywgKEFTQ0lJTGl0ZXJhbCgibG9hZGluZyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW50ZXJhY3RpdmUsIChBU0NJSUxpdGVyYWwoImludGVy
YWN0aXZlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBjb21wbGV0ZSwgKEFTQ0lJTGl0ZXJhbCgiY29tcGxldGUiKSkpOwogCiAgICAgc3dpdGNo
IChtX3JlYWR5U3RhdGUpIHsKICAgICBjYXNlIExvYWRpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggN2I3NWJiNGZmZjI1OGNjY2JjMmRiNzYzYjZhMjJmMjQwNTY4OGQyZS4uNmI5ZGFhOWYz
NmI1N2ZjNGNlOGM4ZGZhNzgwNWU2YmRjNWYxM2NlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtOTgsNyArOTgsNyBAQCB0eXBlZGVmIEhhc2hNYXA8RWxlbWVudCosIE93blB0cjxBdHRyTm9k
ZUxpc3Q+PiBBdHRyTm9kZUxpc3RNYXA7CiAKIHN0YXRpYyBBdHRyTm9kZUxpc3RNYXAmIGF0dHJO
b2RlTGlzdE1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdHRyTm9kZUxpc3RNYXAs
IG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdHRyTm9kZUxp
c3RNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKQEAgLTI1MjAsMjEgKzI1MjAs
MjEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJraXRSZWdpb25PdmVyc2V0KCkg
Y29uc3QKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHVuZGVmaW5l
ZFN0YXRlLCAoInVuZGVmaW5lZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB1bmRl
ZmluZWRTdGF0ZSwgKCJ1bmRlZmluZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgaWYgKCFkb2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50KCkpCiAgICAgICAgIHJldHVybiB1bmRlZmluZWRTdGF0ZTsKIAog
ICAgIHN3aXRjaCAocmVnaW9uT3ZlcnNldFN0YXRlKCkpIHsKICAgICBjYXNlIFJlZ2lvbkZpdDog
ewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZml0U3RhdGUsICgi
Zml0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaXRTdGF0ZSwgKCJmaXQi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBm
aXRTdGF0ZTsKICAgICB9CiAgICAgY2FzZSBSZWdpb25FbXB0eTogewotICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZW1wdHlTdGF0ZSwgKCJlbXB0eSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZW1wdHlTdGF0ZSwgKCJlbXB0eSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgcmV0dXJuIGVtcHR5U3RhdGU7
CiAgICAgfQogICAgIGNhc2UgUmVnaW9uT3ZlcnNldDogewotICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgb3ZlcmZsb3dTdGF0ZSwgKCJvdmVyc2V0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvdmVyZmxvd1N0YXRlLCAoIm92ZXJzZXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIHJldHVybiBvdmVyZmxv
d1N0YXRlOwogICAgIH0KICAgICBjYXNlIFJlZ2lvblVuZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggOGM4NmU2MmYzZjg2MDg3MGM3M2E5ZDNhNThmZWJh
MjNiNTgyY2NkMy4uNWViYzM4ZjQxZWVjOGIyNjg2ZmJkYTk1ODY2YzFiNmNkMzVhY2NlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCB2
b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhFbGVtZW50KiBlbGVt
ZW50LCBFdmVudCogdW5kZXJseWluZwogICAgIGlmIChlbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNv
bnRyb2woKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PEVsZW1lbnQqPiwgZWxlbWVudHNEaXNwYXRjaGluZ1NpbXVsYXRlZENsaWNrcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEVsZW1lbnQqPiwgZWxl
bWVudHNEaXNwYXRjaGluZ1NpbXVsYXRlZENsaWNrcywgKCkpOwogICAgIGlmICghZWxlbWVudHNE
aXNwYXRjaGluZ1NpbXVsYXRlZENsaWNrcy5hZGQoZWxlbWVudCkuaXNOZXdFbnRyeSkKICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5l
ck1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lck1hcC5jcHAKaW5kZXgg
YzA0MWJlZDVlOWQ5NzA5ZWEwOGY4OTQzNWY2ODc0MmI4YTA4NjI5OC4uMzY4NzQzZGVkMDJhZGIz
OGRmOGExZWYzMjM1YmZkMmIyMjNhNGE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TGlzdGVuZXJNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3Rl
bmVyTWFwLmNwcApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWZuZGVm
IE5ERUJVRwogc3RhdGljIE11dGV4JiBhY3RpdmVJdGVyYXRvckNvdW50TXV0ZXgoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggNzM3NWVhYmVkNDdhZTE4ZWYx
MTAzM2U3ZmNiYTEwMDg4ZGI2NmExMy4uY2Y3NGMyNTQ3OWVmZmU3YTdhNzFkYjkzMjExMmU3NWM1
MDVlMmEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0yNTgsNyArMjU4LDcg
QEAgdm9pZCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCwgRXZl
bnRUYXJnZXREYXRhKiBkLCBFdmVudExpc3QKIAogY29uc3QgRXZlbnRMaXN0ZW5lclZlY3RvciYg
RXZlbnRUYXJnZXQ6OmdldEV2ZW50TGlzdGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRMaXN0ZW5lclZlY3RvciwgZW1w
dHlWZWN0b3IsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRM
aXN0ZW5lclZlY3RvciwgZW1wdHlWZWN0b3IsICgpKTsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSog
ZCA9IGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIGlmICghZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKaW5kZXggZGVmNzI2ZjU4NjJjNDFlNDI4YjFlNjU4
MjNkNGE1NDI3NDYwOWM0ZS4uNWMzNjM4NDJiNjkxNDY1OWUxMzQwYTM4MTY3YWU3Y2NjYzZjZmYy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5jcHAKQEAg
LTEwNSw3ICsxMDUsNyBAQCB2b2lkIElubGluZVN0eWxlU2hlZXRPd25lcjo6Y2xlYXJTaGVldCgp
CiAKIGlubGluZSBib29sIGlzVmFsaWRDU1NDb250ZW50VHlwZShFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGNzc0NvbnRlbnRUeXBlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNzc0NvbnRlbnRUeXBlLCAoInRleHQvY3NzIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmICh0eXBlLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGVsZW1lbnQuaXNIVE1MRWxlbWVu
dCgpID8gZXF1YWxJZ25vcmluZ0Nhc2UodHlwZSwgY3NzQ29udGVudFR5cGUpIDogdHlwZSA9PSBj
c3NDb250ZW50VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9i
c2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAppbmRl
eCBiZjAwZmFjNDA5MTI2ZDUzMTg0ZDJhMmZiZTc3ZmNjNjEzZmQwYTFlLi43NzQ1OGY4ZTY5NjUz
NTQ3NmViYmQ4NDc4MTVlNzdhY2YzNDQwNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXIuY3BwCkBAIC0xMzgsMTMgKzEzOCwxMyBAQCB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRy
PE11dGF0aW9uT2JzZXJ2ZXI+PiBNdXRhdGlvbk9ic2VydmVyU2V0OwogCiBzdGF0aWMgTXV0YXRp
b25PYnNlcnZlclNldCYgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoTXV0YXRpb25PYnNlcnZlclNldCwgYWN0aXZlT2JzZXJ2ZXJzLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGF0aW9uT2JzZXJ2ZXJTZXQsIGFj
dGl2ZU9ic2VydmVycywgKCkpOwogICAgIHJldHVybiBhY3RpdmVPYnNlcnZlcnM7CiB9CiAKIHN0
YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBzdXNwZW5kZWRNdXRhdGlvbk9ic2VydmVycygpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRhdGlvbk9ic2VydmVyU2V0LCBzdXNwZW5kZWRP
YnNlcnZlcnMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0YXRp
b25PYnNlcnZlclNldCwgc3VzcGVuZGVkT2JzZXJ2ZXJzLCAoKSk7CiAgICAgcmV0dXJuIHN1c3Bl
bmRlZE9ic2VydmVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0
aW9uUmVjb3JkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5jcHAKaW5k
ZXggYWRiZjBhYmIyODQzNDlmOTgwNjJiMWYxOGRkNTAyMGQ5M2YxZjdiMy4uNWE0N2ZjMDAxYzE1
YTI4ZTk1OGRlNmYyNDVjYjFlOTNhNzIzODA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25S
ZWNvcmQuY3BwCkBAIC0xNDUsMTkgKzE0NSwxOSBAQCBwcml2YXRlOgogCiBjb25zdCBBdG9taWNT
dHJpbmcmIENoaWxkTGlzdFJlY29yZDo6dHlwZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGNoaWxkTGlzdCwgKCJjaGlsZExpc3QiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgY2hpbGRMaXN0LCAoImNoaWxkTGlzdCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY2hpbGRMaXN0OwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIEF0dHJpYnV0ZXNSZWNvcmQ6OnR5cGUoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhdHRyaWJ1dGVzLCAoImF0dHJpYnV0ZXMiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgYXR0cmlidXRlcywgKCJhdHRyaWJ1dGVzIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBhdHRyaWJ1dGVzOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIENoYXJhY3RlckRhdGFSZWNvcmQ6OnR5cGUoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBjaGFyYWN0ZXJEYXRhLCAoImNo
YXJhY3RlckRhdGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgY2hhcmFjdGVyRGF0
YSwgKCJjaGFyYWN0ZXJEYXRhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBjaGFyYWN0ZXJEYXRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNDNk
M2ZjZmNhZmQ0YThmZGUxNTk1OTcyODZhOTE4NzcwYzc3NTg3Ni4uNjNkMTc3NTBlYTk3OTExYzg1
MTRiMTAxZWQ4NDUxNDEyYTRhODM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTg2Myw3ICsxODYz
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCBPd25QdHI8RXZlbnRUYXJnZXREYXRhPj4gRXZl
bnRUYXJnZXREYXRhTWFwOwogCiBzdGF0aWMgRXZlbnRUYXJnZXREYXRhTWFwJiBldmVudFRhcmdl
dERhdGFNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRUYXJnZXREYXRhTWFw
LCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRXZlbnRUYXJn
ZXREYXRhTWFwLCBtYXAsICgpKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UHNldWRvRWxlbWVudC5jcHAKaW5kZXggY2U1YmYyY2ZlNTI0ZGMwNWM0YmY2NmY5Y2YwZTQ1ZDJk
NDVmODY5ZS4uOTgyMWEwNDdjNmRjOGZmNDVhZDM3NDcyZmYxMTM5MjMxOTJjMDNhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcApAQCAtMzcsMTQgKzM3LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgcHNldWRvRWxlbWVudFRhZ05hbWUo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbmFtZSwgKG51bGxB
dG9tLCAiPHBzZXVkbz4iLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChRdWFsaWZpZWROYW1lLCBuYW1lLCAobnVsbEF0b20sICI8cHNldWRvPiIsIG51bGxB
dG9tKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIFN0cmluZyBQc2V1ZG9FbGVtZW50Ojpwc2V1
ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhQc2V1ZG9JZCBwc2V1ZG9JZCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYWZ0ZXIsIChBU0NJSUxpdGVyYWwoIjo6YWZ0ZXIi
KSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBiZWZvcmUsIChBU0NJ
SUxpdGVyYWwoIjo6YmVmb3JlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBhZnRlciwgKEFTQ0lJTGl0ZXJhbCgiOjphZnRlciIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYmVmb3JlLCAoQVND
SUlMaXRlcmFsKCI6OmJlZm9yZSIpKSk7CiAgICAgc3dpdGNoIChwc2V1ZG9JZCkgewogICAgIGNh
c2UgQUZURVI6CiAgICAgICAgIHJldHVybiBhZnRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lLmNwcAppbmRleCBiMTdkOGFhM2QwNGM5MmI5ZWY4NjNiOTgwN2UyMjEyODg5YTRlNmNmLi4z
NjgxYTE0ZjQ3Y2JlMTE0MjBiZDVjZWNjMDE1OTA5NGVkMDI3NmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1F1YWxpZmllZE5hbWUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBRTmFtZUNvbXBvbmVu
dHNUcmFuc2xhdG9yIHsKIAogc3RhdGljIGlubGluZSBRTmFtZVNldCYgcXVhbGlmaWVkTmFtZUNh
Y2hlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFFOYW1lU2V0LCBuYW1lQ2FjaGUsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUU5hbWVTZXQsIG5hbWVDYWNo
ZSwgKCkpOwogICAgIHJldHVybiBuYW1lQ2FjaGU7CiB9CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2
b2lkIFF1YWxpZmllZE5hbWU6OmluaXQoKQogCiBjb25zdCBRdWFsaWZpZWROYW1lJiBudWxsUU5h
bWUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgbnVsbE5hbWUs
IChudWxsQXRvbSwgbnVsbEF0b20sIG51bGxBdG9tKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIG51bGxOYW1lLCAobnVsbEF0b20sIG51bGxBdG9t
LCBudWxsQXRvbSkpOwogICAgIHJldHVybiBudWxsTmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCmluZGV4IGZjZTRmNTBjYjM5ZmEwMWU3MjU4MjE2OTY1NzM1OThiOTQ1
ZGUxZDAuLmJiNWY0NjhlZTJlYWE3MTQ0YjlmZjQ1MjY5NDAzNDRlYzZmNzViY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMgYm9v
bCBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1
YWdlKQogCiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgbm90IEhUTUw1IGNvbXBsaWFu
dC4gVGhlc2UgYmVsb25nIGluIHRoZSBNSU1FIHJlZ2lzdHJ5IGFzICJ0ZXh0L2phdmFzY3JpcHQ8
dmVyc2lvbj4iIGVudHJpZXMuCiAgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRp
bmdIYXNoPiBMYW5ndWFnZVNldDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExhbmd1YWdlU2V0
LCBsYW5ndWFnZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTGFu
Z3VhZ2VTZXQsIGxhbmd1YWdlcywgKCkpOwogICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQiKTsKICAgICAgICAgbGFuZ3VhZ2Vz
LmFkZCgiamF2YXNjcmlwdCIpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHZvaWQgU2NyaXB0RWxlbWVu
dDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgICAgICAmJiAh
bV9jYWNoZWRTY3JpcHQtPnBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhtX2VsZW1lbnQtPmRvY3Vt
ZW50KCkuc2VjdXJpdHlPcmlnaW4oKSkpIHsKIAogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQo
KTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAo
QVNDSUlMaXRlcmFsKCJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9y
aWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgi
Q3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuIikpKTsKICAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLmFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBjb25z
b2xlTWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAKaW5kZXggYjExYzdkMjI0ZTIwYTE0OTg0OWIzN2EzNTk0MTEzYWIx
OTQ2ZGUxZi4uZDk4YmNhODMxZjNlZGY0NjZjMDI1NmJmNzJhYzk3MTIzYWUzMWIwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHR5
cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFNwYWNlU3BsaXRTdHJpbmdEYXRhKiwgRGVmYXVs
dEhhc2g8QXRvbWljU3RyaW5nPjo6CiAKIHN0YXRpYyBTcGFjZVNwbGl0U3RyaW5nRGF0YU1hcCYg
c2hhcmVkRGF0YU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTcGFjZVNwbGl0U3Ry
aW5nRGF0YU1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFNwYWNlU3BsaXRTdHJpbmdEYXRhTWFwLCBtYXAsICgpKTsKICAgICByZXR1cm4gbWFwOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKaW5kZXggNDliMzk2NTg2YTdhYTJjZWVh
Y2Y4ZTNlNGIxYWI5YWJiYTE5MmYyOC4uYTFmMDZmYjFiYTJmYzAwNjI3NTViZmFmODUxZDQ1YjIy
ODNmY2I4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtNjksNyArNjks
NyBAQCBzdGF0aWMgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNh
Y2hlS2V5JiBhLCBjb25zdCBQcmVzZW50YXRpbwogCiBzdGF0aWMgUHJlc2VudGF0aW9uQXR0cmli
dXRlQ2FjaGUmIHByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlLCBjYWNoZSwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQcmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZSwg
Y2FjaGUsICgpKTsKICAgICByZXR1cm4gY2FjaGU7CiB9CiAKQEAgLTExNCw3ICsxMTQsNyBAQCBw
cml2YXRlOgogCiBzdGF0aWMgUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyJiBwcmVz
ZW50YXRpb25BdHRyaWJ1dGVDYWNoZUNsZWFuZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoUHJlc2VudGF0aW9uQXR0cmlidXRlQ2FjaGVDbGVhbmVyLCBjbGVhbmVyLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hl
Q2xlYW5lciwgY2xlYW5lciwgKCkpOwogICAgIHJldHVybiBjbGVhbmVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcApp
bmRleCA1MDIxNjIzMWQ5NmI0NzE4MTBkZmEyY2Q1ZGM5NTY0ZTQzNmQxMDYyLi43MjFkYjc3NWNl
MmFkNDZlNjVhNzkyOWU5ZmYyNjhhOGQwZjZlZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTg1LDcgKzg1LDcg
QEAgcHJpdmF0ZToKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2Vy
VHlwZT4mIG1hcmtlclR5cGVzRm9yQXV0b2NvcnJlY3Rpb24oKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoVmVjdG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPiwgbWFya2VyVHlwZXNG
b3JBdXRvQ29ycmVjdGlvbiwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvckF1dG9D
b3JyZWN0aW9uLCAoKSk7CiAgICAgaWYgKG1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24uaXNF
bXB0eSgpKSB7CiAgICAgICAgIG1hcmtlclR5cGVzRm9yQXV0b0NvcnJlY3Rpb24uYXBwZW5kKERv
Y3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCk7CiAgICAgICAgIG1hcmtlclR5cGVzRm9yQXV0b0Nv
cnJlY3Rpb24uYXBwZW5kKERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yKTsKQEAg
LTk3LDcgKzk3LDcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2Vy
VHlwZT4mIG1hcmtlclR5cGVzRm9yQXV0b2NvcnJlY3Rpb24oKQogCiBzdGF0aWMgY29uc3QgVmVj
dG9yPERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlPiYgbWFya2VyVHlwZXNGb3JSZXBsYWNlbWVu
dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8RG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGU+LCBtYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50LCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4s
IG1hcmtlclR5cGVzRm9yUmVwbGFjZW1lbnQsICgpKTsKICAgICBpZiAobWFya2VyVHlwZXNGb3JS
ZXBsYWNlbWVudC5pc0VtcHR5KCkpIHsKICAgICAgICAgbWFya2VyVHlwZXNGb3JSZXBsYWNlbWVu
dC5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50KTsKICAgICAgICAgbWFya2VyVHlw
ZXNGb3JSZXBsYWNlbWVudC5hcHBlbmQoRG9jdW1lbnRNYXJrZXI6OlNwZWxsQ2hlY2tpbmdFeGVt
cHRpb24pOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8RG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGU+JiBtYXJrZXJUeXBlc0ZvclJlcGxhY2VtZW50KCkKIAogc3RhdGlj
IGNvbnN0IFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4mIG1hcmtlclR5cGVzRm9y
QXBwbGllZERpY3RhdGlvbkFsdGVybmF0aXZlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9yQXBwbGll
ZERpY3RhdGlvbkFsdGVybmF0aXZlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFZlY3RvcjxEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZT4sIG1hcmtlclR5cGVzRm9y
QXBwbGllZERpY3RhdGlvbkFsdGVybmF0aXZlLCAoKSk7CiAgICAgaWYgKG1hcmtlclR5cGVzRm9y
QXBwbGllZERpY3RhdGlvbkFsdGVybmF0aXZlLmlzRW1wdHkoKSkKICAgICAgICAgbWFya2VyVHlw
ZXNGb3JBcHBsaWVkRGljdGF0aW9uQWx0ZXJuYXRpdmUuYXBwZW5kKERvY3VtZW50TWFya2VyOjpT
cGVsbENoZWNraW5nRXhlbXB0aW9uKTsKICAgICByZXR1cm4gbWFya2VyVHlwZXNGb3JBcHBsaWVk
RGljdGF0aW9uQWx0ZXJuYXRpdmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuY3BwCmluZGV4IGFhYzkwZjc4N2NkNTJiNmZlZTQ4OTgyM2I0MjYzZWE1ZGUyMDk2
NTguLmIwOGVlNmEzYTMwN2UwODZhYTQ1Mjk1MDM4YWI2MTdkNDA5ZDZhZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC02MSw3ICs2MSw3IEBA
IHN0YXRpYyBpbnQgdG9JZGVudGlmaWVyKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlKQogCiBz
dGF0aWMgU3RyaW5nJiBzdHlsZVNwYW5DbGFzc1N0cmluZygpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHN0eWxlU3BhbkNsYXNzU3RyaW5nLCAoKEFwcGxlU3R5bGVTcGFuQ2xh
c3MpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3R5bGVT
cGFuQ2xhc3NTdHJpbmcsICgoQXBwbGVTdHlsZVNwYW5DbGFzcykpKTsKICAgICByZXR1cm4gc3R5
bGVTcGFuQ2xhc3NTdHJpbmc7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcAppbmRleCBmMzc5MmFjOWRiZjY3MGU1YmFmODEzOGE4YzE1ZmM0NGJmZmE4OTMyLi45MmYy
NzY0NjE1MzU5ZDNmYTUwOGI0NmU5YjQ3YzJhZDQxNDRiMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC03NDAsNyArNzQwLDcgQEAgYm9vbCBFZGl0aW5nU3R5
bGU6OmNvbmZsaWN0c1dpdGhJbmxpbmVTdHlsZU9mRWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVt
ZW50LCBFZGkKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SFRNTEVsZW1l
bnRFcXVpdmFsZW50Pj4mIGh0bWxFbGVtZW50RXF1aXZhbGVudHMoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxIVE1MRWxlbWVudEVxdWl2YWxlbnQ+
PiwgSFRNTEVsZW1lbnRFcXVpdmFsZW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEhUTUxFbGVtZW50RXF1aXZhbGVudD4+
LCBIVE1MRWxlbWVudEVxdWl2YWxlbnRzLCAoKSk7CiAKICAgICBpZiAoIUhUTUxFbGVtZW50RXF1
aXZhbGVudHMuc2l6ZSgpKSB7CiAgICAgICAgIEhUTUxFbGVtZW50RXF1aXZhbGVudHMuYXBwZW5k
KHN0ZDo6bWFrZV91bmlxdWU8SFRNTEVsZW1lbnRFcXVpdmFsZW50PihDU1NQcm9wZXJ0eUZvbnRX
ZWlnaHQsIENTU1ZhbHVlQm9sZCwgSFRNTE5hbWVzOjpiVGFnKSk7CkBAIC03NzksNyArNzc5LDcg
QEAgYm9vbCBFZGl0aW5nU3R5bGU6OmNvbmZsaWN0c1dpdGhJbXBsaWNpdFN0eWxlT2ZFbGVtZW50
KEhUTUxFbGVtZW50KiBlbGVtZW50LCBFZGkKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8SFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQ+PiYgaHRtbEF0dHJpYnV0ZUVxdWl2YWxl
bnRzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
SFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQ+PiwgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8SFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQ+PiwgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnRzLCAo
KSk7CiAKICAgICBpZiAoIUhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50cy5zaXplKCkpIHsKICAgICAg
ICAgLy8gZWxlbWVudElzU3R5bGVkU3Bhbk9ySFRNTEVxdWl2YWxlbnQgZGVwZW5kcyBvbiB0aGUg
ZmFjdCBlYWNoIEhUTUxBdHRyaXV0ZUVxdWl2YWxlbnQgbWF0Y2hlcyBleGFjdGx5IG9uZSBhdHRy
aWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRm9ybWF0QmxvY2tDb21tYW5kLmNwcApp
bmRleCBlOTRhNGVlNTkyNmI1MTNjN2I3Y2Q0MjQzMmQzNDU5ZWI0MjRkYzdlLi5jZGJmYjJkMTQ3
NTBmNWI1Y2RjMmM2OWU2YWFiYzM5MWNiNDZiZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0Zvcm1hdEJsb2NrQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Gb3JtYXRCbG9ja0NvbW1hbmQuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgRWxlbWVudCog
Rm9ybWF0QmxvY2tDb21tYW5kOjplbGVtZW50Rm9yRm9ybWF0QmxvY2tDb21tYW5kKFJhbmdlKiBy
YW5nZSkKIAogYm9vbCBpc0VsZW1lbnRGb3JGb3JtYXRCbG9jayhjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgYmxvY2tUYWdzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGJsb2NrVGFncywgKCkpOwogICAgIGlmIChibG9ja1Rh
Z3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIGJsb2NrVGFncy5hZGQoYWRkcmVzc1RhZyk7CiAgICAg
ICAgIGJsb2NrVGFncy5hZGQoYXJ0aWNsZVRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDcwNWUyNDY1MWVhZmI0MGQ1MWJjN2I2OGFkN2Iy
Mjk2NjI2YTdmMzguLjllZThhYzE3MGE5ZGEyZmJmNzk3YzE0MDU5Y2JhNTcwZGVhNDI4MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0yODAs
NyArMjgwLDcgQEAgYm9vbCBNYXJrdXBBY2N1bXVsYXRvcjo6c2hvdWxkQWRkTmFtZXNwYWNlRWxl
bWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIGlmIChwcmVmaXguaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gIWVsZW1lbnQuaGFzQXR0cmlidXRlKHhtbG5zQXRvbSk7CiAKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgeG1sbnNXaXRoQ29sb24sIChBU0NJSUxpdGVyYWwo
InhtbG5zOiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
eG1sbnNXaXRoQ29sb24sIChBU0NJSUxpdGVyYWwoInhtbG5zOiIpKSk7CiAgICAgcmV0dXJuICFl
bGVtZW50Lmhhc0F0dHJpYnV0ZSh4bWxuc1dpdGhDb2xvbiArIHByZWZpeCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwCmluZGV4IDIyNWQy
NmNmNWUwNmFhZjkxZGQxMjg1NWNhZGZjZjNmMmY2MTdjODAuLjM5ZTc5MDlmNGQxZjU1M2IyZjMz
ZTk1YmY3ZDFkODlhNTUwZTBkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1v
dmVGb3JtYXRDb21tYW5kLmNwcApAQCAtNDUsNyArNDUsNyBAQCBSZW1vdmVGb3JtYXRDb21tYW5k
OjpSZW1vdmVGb3JtYXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkKIAogc3RhdGljIGJvb2wg
aXNFbGVtZW50Rm9yUmVtb3ZlRm9ybWF0Q29tbWFuZChjb25zdCBFbGVtZW50KiBlbGVtZW50KQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgZWxlbWVu
dHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgZWxlbWVudHMsICgpKTsKICAgICBpZiAoZWxlbWVudHMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGVsZW1lbnRzLmFkZChhY3JvbnltVGFnKTsKICAgICAgICAgZWxlbWVudHMuYWRk
KGJUYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAppbmRleCBkM2Q3ODgyZjk3NmE1NDJjYTE3MDc5MWU0MGExOWIyZTE4ODMwNzAx
Li5iZjI0MTc1YzUzYmZmOTFmMDJhNmIxMWUxNzQ5M2Q3MDFiMDYzM2JiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMTAx
LDE0ICsxMDEsMTQgQEAgcHJpdmF0ZToKIAogc3RhdGljIGJvb2wgaXNJbnRlcmNoYW5nZU5ld2xp
bmVOb2RlKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nLCAoQXBwbGVJbnRlcmNoYW5nZU5ld2xp
bmUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbnRlcmNo
YW5nZU5ld2xpbmVDbGFzc1N0cmluZywgKEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lKSk7CiAgICAg
cmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShiclRhZykgJiYgCiAgICAgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQgKj4obm9kZSktPmdldEF0dHJpYnV0ZShjbGFzc0F0dHIp
ID09IGludGVyY2hhbmdlTmV3bGluZUNsYXNzU3RyaW5nOwogfQogCiBzdGF0aWMgYm9vbCBpc0lu
dGVyY2hhbmdlQ29udmVydGVkU3BhY2VTcGFuKGNvbnN0IE5vZGUgKm5vZGUpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnZlcnRlZFNwYWNlU3BhbkNsYXNzU3RyaW5nLCAo
QXBwbGVDb252ZXJ0ZWRTcGFjZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGNvbnZlcnRlZFNwYWNlU3BhbkNsYXNzU3RyaW5nLCAoQXBwbGVDb252ZXJ0ZWRT
cGFjZSkpOwogICAgIHJldHVybiBub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgCiAgICAgICAgICAg
IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxFbGVtZW50ICo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUoY2xh
c3NBdHRyKSA9PSBjb252ZXJ0ZWRTcGFjZVNwYW5DbGFzc1N0cmluZzsKIH0KQEAgLTU2Myw3ICs1
NjMsNyBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHls
ZXNBbmRLZWVwU3R5bGVTcGFuSW5saW5lKEluc2VydAogc3RhdGljIGJvb2wgaXNQcm9oaWJpdGVk
UGFyYWdyYXBoQ2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogewogICAgIC8vIGh0dHBz
Oi8vZHZjcy53My5vcmcvaGcvZWRpdGluZy9yYXctZmlsZS81N2FiZTZkM2NiNjAvZWRpdGluZy5o
dG1sI3Byb2hpYml0ZWQtcGFyYWdyYXBoLWNoaWxkCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PEF0b21pY1N0cmluZz4sIGVsZW1lbnRzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8QXRvbWljU3RyaW5nPiwgZWxlbWVudHMsICgpKTsKICAg
ICBpZiAoZWxlbWVudHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGVsZW1lbnRzLmFkZChhZGRyZXNz
VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAgZWxlbWVudHMuYWRkKGFydGljbGVUYWcubG9jYWxO
YW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCmluZGV4IDAzYTIzYTdlNDU4NzQ4Y2QzOTdlZjA2MzBkZGI1OGRkMjdjMzFkNGUuLjA2
ODdjNzJhMTQ0MzE4ODkwZDEyZDE3MjEwMmYxZjBjZjc5ZGI0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQogICAgIC8vIFRoaXMgc3RhdGljIHZhcmlhYmxlIGlz
IG5lZWRlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvbGQgb2JqZWN0CiAgICAgLy8gYXMgcGVyIHBy
ZXZpb3VzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sIGluIG9yZGVyIHRvIHByb3Blcmx5CiAgICAg
Ly8gZGVjaWRlIHdoZXRoZXIgdG8gZW1pdCBzb21lIHNpZ25hbHMgb3Igbm90LgotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBvbGRPYmplY3QsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBvbGRPYmplY3QsICgpKTsKIAogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiBvYmplY3QgPSBwcnBPYmplY3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGlu
Zy5jcHAKaW5kZXggZjBlMmIwM2JjYmU2YWEzZmQ4NGZhM2FiZjg0MjFlNmY1MjY5MGUzYy4uMTdm
ZmJjZDdhZjZmZGRlNWEzYzNmOTFjYzdlYjU4Y2E5ZWM1YmU3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTM4NSw3ICszODUsNyBAQCBib29sIGlzVGFibGVTdHJ1
Y3R1cmVOb2RlKGNvbnN0IE5vZGUgKm5vZGUpCiAKIGNvbnN0IFN0cmluZyYgbm9uQnJlYWtpbmdT
cGFjZVN0cmluZygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5vbkJyZWFr
aW5nU3BhY2VTdHJpbmcsICgmbm9CcmVha1NwYWNlLCAxKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbm9uQnJlYWtpbmdTcGFjZVN0cmluZywgKCZub0JyZWFr
U3BhY2UsIDEpKTsKICAgICByZXR1cm4gbm9uQnJlYWtpbmdTcGFjZVN0cmluZzsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IGQwMDBlNmJiOTVjZWEyZjU4NDYyZTVkMDMwNThk
N2E5ODYwZDQyY2UuLjAzYWViYTMzMjUxMzU4YWZmN2NjYWMwYzA1MjZkNjAzODMxZDU5ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTIxMiw4ICsyMTIsOCBAQCB2b2lkIFN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKFN0cmluZ0J1aWxkZXIm
IG91dCwgU3R5bGVQcgogCiBjb25zdCBTdHJpbmcmIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpz
dHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2spCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGRpdkNsb3NlLCAoQVNDSUlMaXRlcmFsKCI8L2Rpdj4iKSkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdHlsZVNwYW5DbG9zZSwgKEFTQ0lJ
TGl0ZXJhbCgiPC9zcGFuPiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0cmluZywgZGl2Q2xvc2UsIChBU0NJSUxpdGVyYWwoIjwvZGl2PiIpKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuQ2xv
c2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSkpOwogICAgIHJldHVybiBpc0Jsb2NrID8gZGl2
Q2xvc2UgOiBzdHlsZVNwYW5DbG9zZTsKIH0KIApAQCAtNTU4LDcgKzU1OCw3IEBAIHN0YXRpYyBO
b2RlKiBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdlLCBFQW5u
b3RhdGVGb3JJbnRlcmNoCiBzdGF0aWMgU3RyaW5nIGNyZWF0ZU1hcmt1cEludGVybmFsKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBSYW5nZSYgdXBkYXRlZFJh
bmdlLCBWZWN0b3I8Tm9kZSo+KiBub2RlcywKICAgICBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBz
aG91bGRBbm5vdGF0ZSwgYm9vbCBjb252ZXJ0QmxvY2tzVG9JbmxpbmVzLCBFQWJzb2x1dGVVUkxz
IHNob3VsZFJlc29sdmVVUkxzKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBpbnRlcmNoYW5nZU5ld2xpbmVTdHJpbmcsIChBU0NJSUxpdGVyYWwoIjxiciBjbGFzcz1c
IiIgQXBwbGVJbnRlcmNoYW5nZU5ld2xpbmUgIlwiPiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW50ZXJjaGFuZ2VOZXdsaW5lU3RyaW5nLCAo
QVNDSUlMaXRlcmFsKCI8YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lICJcIj4i
KSkpOwogCiAgICAgYm9vbCBjb2xsYXBzZWQgPSB1cGRhdGVkUmFuZ2UuY29sbGFwc2VkKEFTU0VS
VF9OT19FWENFUFRJT04pOwogICAgIGlmIChjb2xsYXBzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNw
cAppbmRleCA2MzQxZDEzNjA1ZDEwYTM3YmQwMzI4YWI2M2FmNWMzNjMxZDEyOTU2Li4zNTY0ZmUy
MjdhYmQyNGI0ZDVhNTgwYjQyMzc1NjU0ZWFlYjI3MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5j
cHAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBCbG9iVVJMUmVnaXN0cnk6OnVucmVnaXN0ZXJVUkwo
Y29uc3QgVVJMJiB1cmwpCiAKIFVSTFJlZ2lzdHJ5JiBCbG9iVVJMUmVnaXN0cnk6OnJlZ2lzdHJ5
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEJsb2JVUkxSZWdpc3RyeSwgaW5zdGFuY2Us
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQmxvYlVSTFJlZ2lzdHJ5
LCBpbnN0YW5jZSwgKCkpOwogICAgIHJldHVybiBpbnN0YW5jZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAppbmRleCA3MzJlODNlNzRiMDYwOWNkNGY4NzY4YTQ0YWYxOWUwN2JjMzhiY2E1Li5j
NzNkOWIwNDYxY2I2Zjc4ODhiNDg3MTJlNGU0NjJhNDA3YjBiZTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikKIAogdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHZhbHVlQ29udGFpbmVyUHNldWRv
LCAoIi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCB2YWx1ZUNvbnRhaW5lclBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFs
dWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBSZWZQdHI8
SFRNTERpdkVsZW1lbnQ+IHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShl
bGVtZW50KCkuZG9jdW1lbnQoKSk7CiAgICAgdmFsdWVDb250YWluZXItPnNldFBzZXVkbyh2YWx1
ZUNvbnRhaW5lclBzZXVkbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRl
eCA5ZGU3ODVhN2U5ZWNjZDMyNDM4NmE0YTBmMjU5ZmQwOGYzNzFjMDNlLi5iMWU4MjlkZmNjYjBi
MGIwMjVkMmM5NTgzZGRkZDBkN2EyZTQ0NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgRGF0ZUlucHV0
VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBTdGVwUmFuZ2UgRGF0ZUlucHV0VHlwZTo6Y3JlYXRl
U3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3Rl
cERlc2NyaXB0aW9uLCAoZGF0ZURlZmF1bHRTdGVwLCBkYXRlRGVmYXVsdFN0ZXBCYXNlLCBkYXRl
U3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdl
cikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6
OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZURlZmF1bHRTdGVwLCBkYXRl
RGVmYXVsdFN0ZXBCYXNlLCBkYXRlU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlBhcnNlZFN0
ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9
IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIDApOwog
ICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RH
ZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6
Om1pbmltdW1EYXRlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggZGMxMGY4OTM5MTU0YjAwM2UyZGI4NDA3MGU1YzNiZWZjMGEyMDMxNC4uYjJlZmU4
NTc4NDQ2ZjdmOTExZWU5ODk1YTA0ZTkzM2E0YzU3NzYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgRGVjaW1hbCBEYXRlVGlt
ZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QKIAogU3RlcFJhbmdlIERh
dGVUaW1lSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBI
YW5kbGluZykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5n
ZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChkYXRlVGltZURlZmF1bHRTdGVw
LCBkYXRlVGltZURlZmF1bHRTdGVwQmFzZSwgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBS
YW5nZTo6U2NhbGVkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVw
RGVzY3JpcHRpb24sIChkYXRlVGltZURlZmF1bHRTdGVwLCBkYXRlVGltZURlZmF1bHRTdGVwQmFz
ZSwgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6U2NhbGVkU3RlcFZhbHVlU2hv
dWxkQmVJbnRlZ2VyKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIHN0ZXBCYXNlID0gcGFyc2VUb051
bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7CiAgICAgY29uc3Qg
RGVjaW1hbCBtaW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0
ZShtaW5BdHRyKSwgRGVjaW1hbDo6ZnJvbURvdWJsZShEYXRlQ29tcG9uZW50czo6bWluaW11bURh
dGVUaW1lKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuY3BwCmluZGV4IGViZGEzZDNmNDJlNGU2ZmE4YTk0YzBhNzFjM2Y4MGY3NTRiZmJhZTcuLjRh
NDM4ZjM3ZDJlZTM5ZTBiZDg4NTk0NTU0YjQyMDRkYmVhYTY4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2
b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbgogCiBTdGVwUmFuZ2UgRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlw
dGlvbiwgc3RlcERlc2NyaXB0aW9uLCAoZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwLCBkYXRlVGlt
ZUxvY2FsRGVmYXVsdFN0ZXBCYXNlLCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yLCBTdGVw
UmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3Rl
cERlc2NyaXB0aW9uLCAoZGF0ZVRpbWVMb2NhbERlZmF1bHRTdGVwLCBkYXRlVGltZUxvY2FsRGVm
YXVsdFN0ZXBCYXNlLCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNj
YWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBzdGVw
QmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciks
IDApOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgp
LmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBv
bmVudHM6Om1pbmltdW1EYXRlVGltZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCmluZGV4IGE1ZjY4MjdiNWUxOTM1NjZhYzZhMjI0ZGJkNzQwNWI2MzBmMjI4NDQuLmIw
MTIwOWFlZmNmMzg3NTg2NTQ3NTgwM2I0MmIwMGZkZTQwMmMxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBib29sIGlzVmFs
aWRFbWFpbEFkZHJlc3MoY29uc3QgU3RyaW5nJiBhZGRyZXNzKQogICAgIGlmICghYWRkcmVzc0xl
bmd0aCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uLCByZWdFeHAsIChlbWFpbFBhdHRlcm4s
IFRleHRDYXNlSW5zZW5zaXRpdmUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgcmVnRXhwLCAoZW1haWxQYXR0
ZXJuLCBUZXh0Q2FzZUluc2Vuc2l0aXZlKSk7CiAKICAgICBpbnQgbWF0Y2hMZW5ndGg7CiAgICAg
aW50IG1hdGNoT2Zmc2V0ID0gcmVnRXhwLm1hdGNoKGFkZHJlc3MsIDAsICZtYXRjaExlbmd0aCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAxNjdjODcxYmYyMzkxZmRh
MmFiYjgzYjFmOTE5MTQxZWJmOGRjMmRkLi43NmQ1YmUyOGFiOWVjYWUxYzllZWFkOTAzYjczMWZl
ODhiM2Q4ZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTc5LDcg
Kzc5LDcgQEAgVXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVudChEb2N1bWVu
dCYgZG9jdW1lbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVXBsb2FkQnV0dG9uRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWZpbGUtdXBsb2FkLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
cHNldWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXgg
OTc1MmQzNDc1ZTYwZjgyMDkyNTUzMjYwMzNmNWFkNGFiYmFlZDdiNi4uNTQ2Nzg1ODBkYTNlNDNh
ODhiNTdiMDFmMDE5MzNhODNkYjIxOTllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJv
bGxlci5jcHAKQEAgLTM0Miw3ICszNDIsNyBAQCBBdG9taWNTdHJpbmcgRm9ybUtleUdlbmVyYXRv
cjo6Zm9ybUtleShjb25zdCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlJiBjbwogewog
ICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IG93bmVyRm9ybUZvclN0YXRlKGNvbnRyb2wpOwog
ICAgIGlmICghZm9ybSkgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgZm9ybUtleUZvck5vT3duZXIsICgiTm8gb3duZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGZvcm1LZXlGb3JOb093bmVyLCAoIk5vIG93bmVyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICByZXR1cm4gZm9ybUtleUZvck5vT3du
ZXI7CiAgICAgfQogICAgIEZvcm1Ub0tleU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2Zvcm1U
b0tleU1hcC5maW5kKGZvcm0pOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyBTdHJpbmcgZm9y
bVN0YXRlU2lnbmF0dXJlKCkKICAgICAvLyBJbiB0aGUgbGVnYWN5IHZlcnNpb24gb2Ygc2VyaWFs
aXplZCBzdGF0ZSwgdGhlIGZpcnN0IGl0ZW0gd2FzIGEgbmFtZQogICAgIC8vIGF0dHJpYnV0ZSB2
YWx1ZSBvZiBhIGZvcm0gY29udHJvbC4gVGhlIGZvbGxvd2luZyBzdHJpbmcgbGl0ZXJhbCBzaG91
bGQKICAgICAvLyBjb250YWluIHNvbWUgY2hhcmFjdGVycyB3aGljaCBhcmUgcmFyZWx5IHVzZWQg
Zm9yIG5hbWUgYXR0cmlidXRlIHZhbHVlcy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
Zywgc2lnbmF0dXJlLCAoQVNDSUlMaXRlcmFsKCJcblxyPyUgV2ViS2l0IHNlcmlhbGl6ZWQgZm9y
bSBzdGF0ZSB2ZXJzaW9uIDggXG5ccj0mIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzaWduYXR1cmUsIChBU0NJSUxpdGVyYWwoIlxuXHI/JSBXZWJLaXQg
c2VyaWFsaXplZCBmb3JtIHN0YXRlIHZlcnNpb24gOCBcblxyPSYiKSkpOwogICAgIHJldHVybiBz
aWduYXR1cmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAK
aW5kZXggMDQxMjI2NzUxZmE5ZDU3MTc5NGMzYWMwNmVmOWUxYTlmZmQ3ZGQ5Yi4uN2NhNzM3YTAz
ZGI4MGFiMWFlNzFkNWYxZTAwOTc5N2NhODBlYjg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8
Y29uc3QgSFRNTEFuY2hvckVsZW1lbnQqLCBSZWZQdHI8RWxlbWVudD4+IFJvb3RFZGl0YWJsZUVs
ZW1lbnRNYQogCiBzdGF0aWMgUm9vdEVkaXRhYmxlRWxlbWVudE1hcCYgcm9vdEVkaXRhYmxlRWxl
bWVudE1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSb290RWRpdGFibGVFbGVtZW50
TWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUm9vdEVk
aXRhYmxlRWxlbWVudE1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCBiZTFjZTY2YzkwMGNkZGJl
ODA5MzNmOTljNDJlZTM0NTc0N2ZkZDY5Li5mOTgxZDM2ZjkwYWFlZTg4ZDU0ZDE4NTY4YWJiOTZj
OTI4M2RlMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcApA
QCAtNjYsMTUgKzY2LDE1IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEJ1dHRvbkVsZW1lbnQ6
OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICAg
ICAgY2FzZSBTVUJNSVQ6IHsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBzdWJtaXQsICgic3VibWl0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc3VibWl0LCAoInN1Ym1pdCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgICAgIHJldHVybiBzdWJtaXQ7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBCVVRUT046IHsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBidXR0b24sICgiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYnV0dG9uLCAoImJ1dHRvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgICAgIHJldHVybiBidXR0b247
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBSRVNFVDogewotICAgICAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHJlc2V0LCAoInJlc2V0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVzZXQsICgicmVzZXQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgICAgICByZXR1cm4gcmVz
ZXQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKaW5kZXggYzdiZjdjOTc3NTRiYTZiNmFiNjU1MGQ0ZTNiYmRiZjY4ZDNkYWNhZS4u
ZGJkNzc1NTU0MGVjNGNlNmY1M2I3MDBhYzAwZjY5ZDExMjk2YmIxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5
UXVlcnlTZWxlY3RvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNlbGVjdG9yLCAoInN1bW1hcnk6Zmlyc3Qtb2YtdHlwZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBzZWxlY3RvciwgKCJzdW1tYXJ5OmZpcnN0LW9mLXR5cGUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNlbGVjdG9yOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggYmMwZjhk
MzgzZGVlZmY4NDIxZjc2OTJlNzg3MWViMDhkYzBkYjdhOS4uZDk0YzA4ZTI4NDljNWNmNWI0NzEz
YWM1ZTI2MTc5YWM1OGU2Y2U0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MRmllbGRTZXRFbGVtZW50
OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MRmllbGRT
ZXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmaWVsZHNldCwgKCJmaWVsZHNldCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmaWVsZHNldCwgKCJmaWVsZHNldCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZmllbGRzZXQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCmluZGV4IDg1
Yzg0ODM0YTEyNjlhOGMxZjE0MGM2YjRkNGU1OGEwNWJhY2U5ODMuLmRkYmY0ZGY5YjAwZjU5Zjg5
NjI5M2Q5OTBiYjc2Mjg2YmE4N2RmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lT3duZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVPd25lckVsZW1lbnQuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHN0YXRpYyBIYXNoQ291bnRlZFNldDxDb250YWluZXJOb2RlKj4mIGRpc2FibGVkU3VidHJlZVJv
b3RzKCkKICAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaENvdW50ZWRTZXQ8
Q29udGFpbmVyTm9kZSo+LCBub2RlcywgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaENvdW50ZWRTZXQ8Q29udGFpbmVyTm9kZSo+LCBub2RlcywgKCkpOwog
ICAgICAgICByZXR1cm4gbm9kZXM7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwCmluZGV4IDQwMWRlMWM5NWFjYmI5ODk1ODE1MWM3NGNiNjE0YjQ4ZWRk
ZDBlYjkuLjcxNGJkYjJlMWJkOGNhYjNhOGY1YmUxYmNjNzFjZDE0MzI0N2JkODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHBy
b3RlY3RlZDoKICAgICBLZXlnZW5TZWxlY3RFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICAgICAgOiBIVE1MU2VsZWN0RWxlbWVudChzZWxlY3RUYWcsIGRvY3VtZW50LCAwKQogICAgIHsK
LSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13
ZWJraXQta2V5Z2VuLXNlbGVjdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBzZXRQc2V1ZG8ocHNldWRvSWQpOwogICAgIH0KIApA
QCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgSFRNTEtleWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYgZW5jb2RlZF92YWx1ZXMsIGJvb2wpCiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGtleWdlbiwgKCJrZXlnZW4iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywga2V5Z2VuLCAoImtleWdlbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4ga2V5Z2VuOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggOTVjZmNkYTRk
NGQ3YWU0NDhmODQ5NTVjMWZkYTY5NjU5ODdjZGFhNS4uYjg1MTE0NWYwOGY3MTgyMjg0NWEzOGI1
NDE2MDM2YTlkMzY3YTU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cApAQCAtNTksNyArNTksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMg
TGlua0V2ZW50U2VuZGVyJiBsaW5rTG9hZEV2ZW50U2VuZGVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKExpbmtFdmVudFNlbmRlciwgc2hhcmVkTG9hZEV2ZW50U2VuZGVyLCAoZXZlbnRO
YW1lcygpLmxvYWRFdmVudCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChM
aW5rRXZlbnRTZW5kZXIsIHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFtZXMoKS5sb2Fk
RXZlbnQpKTsKICAgICByZXR1cm4gc2hhcmVkTG9hZEV2ZW50U2VuZGVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MWI2ZjhhMDcyZWY4Yzk4YTFi
NjNkYmNhZDQxZDg2MzBjY2E5ZDUzLi43MDFiYjcxY2EyYWM0MDZmYTI0ZWNjMTIwMjU5MjkyMzBk
YmVkMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE5
NCw3ICsxOTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdHlwZWRlZiBIYXNoTWFw
PERvY3VtZW50KiwgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50Kj4+IERvY3VtZW50RWxlbWVudFNl
dE1hcDsKIHN0YXRpYyBEb2N1bWVudEVsZW1lbnRTZXRNYXAmIGRvY3VtZW50VG9FbGVtZW50U2V0
TWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERvY3VtZW50RWxlbWVudFNldE1hcCwg
bWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERvY3VtZW50RWxl
bWVudFNldE1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCAwYjQyZDUyMjk0YTU5MWYyZDNmNWJj
ZmE0NzQ0NTAyYmY0ZWEzMGY4Li40N2QwZDI5M2ZkNWNkMjk0OWQ0MzI2MWEyY2U5NWVjODkwY2Mx
MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtMzk1
LDcgKzM5NSw3IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnJlbmRlckZhbGxiYWNrQ29udGVu
dCgpCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCwgYWxsIGNhbGxlcnMgYXJlIGFs
bW9zdCBjZXJ0YWlubHkgd3JvbmcuCiBzdGF0aWMgYm9vbCBpc1JlY29nbml6ZWRUYWdOYW1lKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiwgdGFnTGlzdCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZ0ltcGwqPiwgdGFnTGlzdCwg
KCkpOwogICAgIGlmICh0YWdMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICBjb25zdCBRdWFsaWZp
ZWROYW1lKiBjb25zdCAqIHRhZ3MgPSBIVE1MTmFtZXM6OmdldEhUTUxUYWdzKCk7CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgSFRNTE5hbWVzOjpIVE1MVGFnc0NvdW50OyBpKyspIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCmluZGV4IDI5Mjdh
ZGFjNWE5ZWZjMjcxMjg5YzI4NzExMWEwZmE3MzIzMzUwMzkuLjg3NDE3ZGJiZGJmOGU2ZGQwYzc0
YjIyOGUyN2JiYzU1MTc0YTUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6
OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MT3B0R3JvdXBF
bGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcHRncm91cCwgKCJvcHRncm91cCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcHRncm91cCwgKCJvcHRncm91cCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gb3B0Z3JvdXA7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggYzhhODBiYjAz
ZWM2M2ExNjUxOWYxZWRmYjAyZDI3YjYyYmI2NzcwOC4uY2UzODFiNjA4NDM1YWJkYTkzZmVmZWJm
YjAyMjM5ZDY2MTkyMmNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVu
dC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4gSFRN
TE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBIVE1MT3V0cHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgb3V0cHV0LCAo
Im91dHB1dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvdXRwdXQsICgi
b3V0cHV0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBvdXRwdXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAK
aW5kZXggMTZhOTAxYWQ0NjZiMDc3NzNkMmFlZTFkNjc4YWNjMmU0NDY3YzQ4Ni4uYjNlYzVkYzgx
MWZiN2E5NjUyY2ZkMDc1YThiNjRjNGE5ZGQ2OGQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCBzdGF0aWMgdm9pZCByZWdp
c3RyYXIoY29uc3QgUmVwbGFjZW1lbnRQbHVnaW4mKTsKIAogc3RhdGljIFZlY3RvcjxSZXBsYWNl
bWVudFBsdWdpbio+JiByZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxSZXBsYWNlbWVudFBsdWdpbio+LCByZWdpc3RlcmVkUmVw
bGFjZW1lbnRzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3Rv
cjxSZXBsYWNlbWVudFBsdWdpbio+LCByZWdpc3RlcmVkUmVwbGFjZW1lbnRzLCAoKSk7CiAgICAg
c3RhdGljIGJvb2wgZW5naW5lc1F1ZXJpZWQgPSBmYWxzZTsKICAgICAKICAgICBpZiAoZW5naW5l
c1F1ZXJpZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcAppbmRleCAzMWZiNzk2OTE4YzIzYjlmNWZmYTI5NGZkY2U2MjFlOGZkODUxOTRmLi5kNmIw
NjE1NTA3ODJlMzk1ZWM2ZmRjYTNmMGE4YjQzNmIzODY1ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3Rh
dGljIGNvbnN0IGRvdWJsZSByZW1vdmVTbmFwc2hvdFRpbWVyRGVsYXkgPSAxLjU7CiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcgdGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBtaW1lVHlwZSkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1p
bWVUeXBlVG9MYWJlbFRpdGxlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9MYWJlbFRpdGxl
TWFwLCAoKSk7CiAgICAgU3RyaW5nIHRpdGxlVGV4dCA9IG1pbWVUeXBlVG9MYWJlbFRpdGxlTWFw
LmdldChtaW1lVHlwZSk7CiAgICAgaWYgKCF0aXRsZVRleHQuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gdGl0bGVUZXh0OwpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nIHRp
dGxlVGV4dChQYWdlKiBwYWdlLCBTdHJpbmcgbWltZVR5cGUpCiAKIHN0YXRpYyBjb25zdCBTdHJp
bmcgc3VidGl0bGVUZXh0KFBhZ2UqIHBhZ2UsIFN0cmluZyBtaW1lVHlwZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9M
YWJlbFN1YnRpdGxlTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KE1pbWVUeXBlVG9Mb2NhbGl6ZWRTdHJpbmdNYXAsIG1pbWVUeXBlVG9MYWJlbFN1YnRpdGxlTWFw
LCAoKSk7CiAgICAgU3RyaW5nIHN1YnRpdGxlVGV4dCA9IG1pbWVUeXBlVG9MYWJlbFN1YnRpdGxl
TWFwLmdldChtaW1lVHlwZSk7CiAgICAgaWYgKCFzdWJ0aXRsZVRleHQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gc3VidGl0bGVUZXh0OwpAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KiBy
b290KQogCiBib29sIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnRPZlNuYXBzaG90T3Zlcmxh
eShOb2RlKiBub2RlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBz
ZWxlY3RvciwgKCIuc25hcHNob3Qtb3ZlcmxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzZWxlY3RvciwgKCIuc25hcHNob3Qtb3ZlcmxheSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICBSZWZQdHI8RWxlbWVudD4gc25hcHNob3RMYWJlbCA9IGVu
c3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICByZXR1cm4gbm9kZSAmJiBzbmFwc2hvdExhYmVsICYmIChub2Rl
ID09IHNuYXBzaG90TGFiZWwuZ2V0KCkgfHwgbm9kZS0+aXNEZXNjZW5kYW50T2Yoc25hcHNob3RM
YWJlbC5nZXQoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAppbmRleCAyYzgxMjE3Zjk2MjJjMThlMzg5ZDE4M2UxZmMxZGRkNzVjYWY3YjBmLi5kNzJjNzY0
MjIwZWU3ZDg1ZTFiMTViMDkwYzZjNzZhZWY2N2VkNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtOTYsOCArOTYsOCBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIHN0eWxlQ2hhbmdlKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxTZWxlY3RFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25z
dAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RN
dWx0aXBsZSwgKCJzZWxlY3QtbXVsdGlwbGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNl
bGVjdE9uZSwgKCJzZWxlY3Qtb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHNlbGVjdE11bHRpcGxlLCAoInNlbGVjdC1tdWx0aXBsZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBzZWxlY3RPbmUsICgic2VsZWN0LW9uZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbV9tdWx0aXBsZSA/IHNlbGVj
dE11bHRpcGxlIDogc2VsZWN0T25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVF
bGVtZW50LmNwcAppbmRleCBiMGI2NjcyODZjYjI1ZTNmN2E0NTVmNTYxNWIyZThlODM5MjU5MGY0
Li5jNTllZjE2ODVkNmJiYzZlNWM5N2ViN2NiMWE3ODUxZTI3NzE3YTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIFN0eWxlRXZlbnRTZW5kZXImIHN0eWxlTG9hZEV2
ZW50U2VuZGVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlRXZlbnRTZW5kZXIs
IHNoYXJlZExvYWRFdmVudFNlbmRlciwgKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3R5bGVFdmVudFNlbmRlciwgc2hhcmVkTG9h
ZEV2ZW50U2VuZGVyLCAoZXZlbnROYW1lcygpLmxvYWRFdmVudCkpOwogICAgIHJldHVybiBzaGFy
ZWRMb2FkRXZlbnRTZW5kZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCmluZGV4IGQwYjZkMDY0NTE0NDUzNmU1Yzk1YjczMzQ3ZTJiZDcwNTQxN2Y5
YTMuLjAxZWRhMTY4N2ZkMmJlZDVjOGMyY2E1NTgyNTcyMDFhYjJiMDVlNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTE2LDcgKzExNiw3IEBA
IHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFk
b3dSb290KiByb290KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIHRleHRhcmVhLCAoInRleHRhcmVhIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0ZXh0YXJlYTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCBjYWY5YmQwODhjZjY3MzNmMGZmZDUzN2QzZjc5ZjAyZTgzNmNhODNiLi41ZWVhMjFkYWU5N2Q5
MGJmNjUwYjVhZDYxYzIwZTg3MjgyNDZiM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzc1LDkgKzM3NSw5IEBAIGlu
dCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0
CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblN0cmluZyhUZXh0RmllbGRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBub25lLCAoIm5vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGZvcndhcmQsICgiZm9yd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYmFja3dh
cmQsICgiYmFja3dhcmQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbm9u
ZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZvcndhcmQs
ICgiZm9yd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBiYWNrd2Fy
ZCwgKCJiYWNrd2FyZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAog
ICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlv
bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggODAzMzU4ZWZlMDg5
OGNiYzRhNmM3NDM0NjE1YjM1ZGZlZDk2MjUxOC4uMDFiZDQ1YTBkZDE3OWJjMWUxMzBhOWY0YWVk
MmY1MDUyYzc0YTU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAg
LTY0LDggKzY0LDggQEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEoRm9ybURh
dGFMaXN0JiBlbmNvZGluZywgYm9vbCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRvdFhTdHJpbmcsIChBU0NJSUxp
dGVyYWwoIi54IikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZG90WVN0cmlu
ZywgKEFTQ0lJTGl0ZXJhbCgiLnkiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGRvdFhTdHJpbmcsIChBU0NJSUxpdGVyYWwoIi54IikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb3RZU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCIueSIpKSk7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lICsgZG90WFN0cmluZywg
bV9jbGlja0xvY2F0aW9uLngoKSk7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lICsgZG90
WVN0cmluZywgbV9jbGlja0xvY2F0aW9uLnkoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlTmFtZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGVOYW1lcy5jcHAKaW5kZXggOGVhYzcyMDVkOWI5ZTgyOGNjMTg0YjU1ZjU3NDYxOGU2NzA3Mjkw
NS4uYWMwODk2YTA2YTQ3ZTFhODgwOGNkODlmZGY2YTNjNDMzNjAwM2QzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGVOYW1lcy5jcHAKQEAgLTMxLDEzOSArMzEsMTM5IEBAIG5hbWVzcGFj
ZSBJbnB1dFR5cGVOYW1lcyB7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgYnV0dG9uKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJidXR0b24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJidXR0b24iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgY2hlY2tib3goKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoImNoZWNrYm94IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG5hbWUsICgiY2hlY2tib3giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgY29sb3IoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImNvbG9yIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiY29sb3IiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgZGF0ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgiZGF0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
ImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG5hbWU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0ZXRpbWUoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRhdGV0aW1lIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgZGF0ZXRpbWVsb2NhbCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiZGF0ZXRpbWUtbG9jYWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgbmFtZSwgKCJkYXRldGltZS1sb2NhbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBlbWFpbCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUs
ICgiZW1haWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJlbWFpbCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBmaWxlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJmaWxlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG5hbWUsICgiZmlsZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBoaWRkZW4oKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImhpZGRlbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImhpZGRlbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29u
c3QgQXRvbWljU3RyaW5nJiBpbWFnZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG5hbWUsICgiaW1hZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJpbWFnZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBtb250aCgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgibW9udGgiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJtb250aCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBudW1iZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBuYW1lLCAoIm51bWJlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAo
Im51bWJlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzd29yZCgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicGFzc3dvcmQiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJwYXNzd29yZCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiByYWRpbygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG5hbWUsICgicmFkaW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwg
KCJyYWRpbyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiByYW5nZSgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgicmFuZ2UiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJyYW5nZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5n
JiByZXNldCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUs
ICgicmVzZXQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJyZXNldCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsK
IH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBzZWFyY2goKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInNlYXJjaCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoInNlYXJjaCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBzdWJt
aXQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInN1
Ym1pdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInN1Ym1pdCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0K
IAogY29uc3QgQXRvbWljU3RyaW5nJiB0ZWxlcGhvbmUoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInRlbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoInRlbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB0ZXh0KCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ0ZXh0IiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgidGV4dCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRv
bWljU3RyaW5nJiB0aW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgbmFtZSwgKCJ0aW1lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgi
dGltZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
bmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB1cmwoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoInVybCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiB3ZWVrKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJ3ZWVrIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgid2VlayIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCmluZGV4IGU1NDI2ODM3OWMzY2Q1YmUxYjM4
Zjk4MzQ5NjhjZDEwNzgyMDdhZGUuLjQyYjg1ODBjN2U5NWNiYzQzY2VkZDA2Mjc3NDVjM2JhMDRk
Y2FmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5jcHAKQEAgLTI4OSwx
OSArMjg5LDE5IEBAIHZvaWQgTWVkaWFDb250cm9sbGVyOjpzZXRNdXRlZChib29sIGZsYWcpCiAK
IHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHBsYXliYWNrU3RhdGVXYWl0aW5nKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgd2FpdGluZywgKCJ3YWl0aW5nIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHdhaXRpbmcsICgid2FpdGluZyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gd2FpdGluZzsKIH0K
IAogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZVBsYXlpbmcoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwbGF5aW5nLCAoInBsYXlpbmci
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcGxheWluZywgKCJwbGF5aW5nIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwbGF5aW5nOwog
fQogCiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBwbGF5YmFja1N0YXRlRW5kZWQoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJlbmRlZCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbmRlZCwgKCJlbmRlZCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gZW5kZWQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggNjJmMWE1YjNiYTI0MzliNmIxZWVi
NWRjYWQ3NmM3OGRkMGRkNzQ5ZS4uNDcyOTg3Mjc0ZDAwNDQzMjM0MTNjNGM1YzMyNjU1MmJhZWY5
OTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTkwLDcgKzkw
LDcgQEAgRGVjaW1hbCBNb250aElucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29u
c3QKIAogU3RlcFJhbmdlIE1vbnRoSW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhh
bmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChtb250
aERlZmF1bHRTdGVwLCBtb250aERlZmF1bHRTdGVwQmFzZSwgbW9udGhTdGVwU2NhbGVGYWN0b3Is
IFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9u
LCBzdGVwRGVzY3JpcHRpb24sIChtb250aERlZmF1bHRTdGVwLCBtb250aERlZmF1bHRTdGVwQmFz
ZSwgbW9udGhTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxk
QmVJbnRlZ2VyKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIHN0ZXBCYXNlID0gcGFyc2VUb051bWJl
cihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGVjaW1hbDo6ZnJvbURvdWJs
ZShtb250aERlZmF1bHRTdGVwQmFzZSkpOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBh
cnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6
OmZyb21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1Nb250aCgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggODRiM2NjYmQ3M2VlZGEwNTFlZDA3ZjBj
ODg1NjMzMjVmNGNkZTVhMy4uNGZmZTNiMWJmN2RlOTgzYmVhZTkwYWY1MGM1MzVlM2I2ZDQ2NmM2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMTUyLDcgKzE1
Miw3IEBAIGJvb2wgTnVtYmVySW5wdXRUeXBlOjp0eXBlTWlzbWF0Y2goKSBjb25zdAogCiBTdGVw
UmFuZ2UgTnVtYmVySW5wdXRUeXBlOjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFu
eVN0ZXBIYW5kbGluZykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sIChudW1iZXJEZWZhdWx0
U3RlcCwgbnVtYmVyRGVmYXVsdFN0ZXBCYXNlLCBudW1iZXJTdGVwU2NhbGVGYWN0b3IpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVz
Y3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKG51bWJlckRlZmF1bHRTdGVwLCBudW1iZXJEZWZh
dWx0U3RlcEJhc2UsIG51bWJlclN0ZXBTY2FsZUZhY3RvcikpOwogICAgIGNvbnN0IERlY2ltYWwg
c3RlcEJhc2UgPSBwYXJzZVRvRGVjaW1hbEZvck51bWJlclR5cGUoZWxlbWVudCgpLmZhc3RHZXRB
dHRyaWJ1dGUobWluQXR0ciksIG51bWJlckRlZmF1bHRTdGVwQmFzZSk7CiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCB1c2UgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4IGZvciBudW1iZXIgaW5w
dXQgdHlwZS4KICAgICBjb25zdCBEZWNpbWFsIGZsb2F0TWF4ID0gRGVjaW1hbDo6ZnJvbURvdWJs
ZShzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAppbmRleCA4MDk2YTgzOTZhNzY0NjVmOTczYTYwZDhkYjk5YzYzZDIw
NWYwNWVmLi44NjYxNTU1YmI1Y2E2OWNjZTgzODEwOWRlY2RmOGU2YTZkOTNlNzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIGJvb2wg
UmFuZ2VJbnB1dFR5cGU6OnN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdAogCiBTdGVwUmFuZ2UgUmFu
Z2VJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRs
aW5nKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpT
dGVwRGVzY3JpcHRpb24sIHN0ZXBEZXNjcmlwdGlvbiwgKHJhbmdlRGVmYXVsdFN0ZXAsIHJhbmdl
RGVmYXVsdFN0ZXBCYXNlLCByYW5nZVN0ZXBTY2FsZUZhY3RvcikpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3Rl
cERlc2NyaXB0aW9uLCAocmFuZ2VEZWZhdWx0U3RlcCwgcmFuZ2VEZWZhdWx0U3RlcEJhc2UsIHJh
bmdlU3RlcFNjYWxlRmFjdG9yKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIG1pbmltdW0gPSBwYXJz
ZVRvTnVtYmVyKGVsZW1lbnQoKS5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCByYW5nZURlZmF1
bHRNaW5pbXVtKTsKICAgICBjb25zdCBEZWNpbWFsIG1heGltdW0gPSBlbnN1cmVNYXhpbXVtKHBh
cnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIHJhbmdlRGVm
YXVsdE1heGltdW0pLCBtaW5pbXVtLCByYW5nZURlZmF1bHRNYXhpbXVtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU3RlcFJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
U3RlcFJhbmdlLmNwcAppbmRleCBlN2U1NDg0NDVjZjQxMTU5YTQwZWM1MjU4ZDg1NDgwYjRkYTc1
NWE2Li5jNDc3MThhMGMxZjMzYjk1ZTNiZjNhNmIyMzViNTJjY2M0Nzg0OGQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1N0ZXBSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9TdGVwUmFuZ2UuY3BwCkBAIC02NSwxMyArNjUsMTMgQEAgU3RlcFJhbmdlOjpTdGVwUmFu
Z2UoY29uc3QgRGVjaW1hbCYgc3RlcEJhc2UsIGNvbnN0IERlY2ltYWwmIG1pbmltdW0sIGNvbnN0
IERlY2kKIERlY2ltYWwgU3RlcFJhbmdlOjphY2NlcHRhYmxlRXJyb3IoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIERCTF9NQU5UX0RJRyBpbnN0ZWFkIG9mIEZMVF9NQU5U
X0RJRyByZWdhcmRpbmcgdG8gSFRNTDUgc3BlY2lmaWNhdGlvbi4KLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IERlY2ltYWwsIHR3b1Bvd2VyT2ZGbG9hdE1hbnRpc3NhQml0cywgKERlY2lt
YWw6OlBvc2l0aXZlLCAwLCBVSU5UNjRfQygxKSA8PCBGTFRfTUFOVF9ESUcpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgRGVjaW1hbCwgdHdvUG93ZXJPZkZsb2F0
TWFudGlzc2FCaXRzLCAoRGVjaW1hbDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8IEZMVF9N
QU5UX0RJRykpOwogICAgIHJldHVybiBtX3N0ZXBEZXNjcmlwdGlvbi5zdGVwVmFsdWVTaG91bGRC
ZSA9PSBTdGVwVmFsdWVTaG91bGRCZVJlYWwgPyBtX3N0ZXAgLyB0d29Qb3dlck9mRmxvYXRNYW50
aXNzYUJpdHMgOiBEZWNpbWFsKDApOwogfQogCiBEZWNpbWFsIFN0ZXBSYW5nZTo6YWxpZ25WYWx1
ZUZvclN0ZXAoY29uc3QgRGVjaW1hbCYgY3VycmVudFZhbHVlLCBjb25zdCBEZWNpbWFsJiBuZXdW
YWx1ZSkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IERlY2ltYWwsIHRl
blBvd2VyT2YyMSwgKERlY2ltYWw6OlBvc2l0aXZlLCAyMSwgMSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFsLCB0ZW5Qb3dlck9mMjEsIChEZWNpbWFs
OjpQb3NpdGl2ZSwgMjEsIDEpKTsKICAgICBpZiAobmV3VmFsdWUgPj0gdGVuUG93ZXJPZjIxKQog
ICAgICAgICByZXR1cm4gbmV3VmFsdWU7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBib29sIFN0ZXBS
YW5nZTo6c3RlcE1pc21hdGNoKGNvbnN0IERlY2ltYWwmIHZhbHVlRm9yQ2hlY2spIGNvbnN0CiAg
ICAgLy8gRGVjaW1hbCdzIGZyYWN0aW9uYWwgcGFydCBzaXplIGlzIERCTF9NQU5fRElHLWJpdC4g
SWYgdGhlIGN1cnJlbnQgdmFsdWUKICAgICAvLyBpcyBncmVhdGVyIHRoYW4gc3RlcCoyXkRCTF9N
QU5UX0RJRywgdGhlIGZvbGxvd2luZyBjb21wdXRhdGlvbiBmb3IKICAgICAvLyByZW1haW5kZXIg
bWFrZXMgbm8gc2Vuc2UuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBEZWNpbWFsLCB0
d29Qb3dlck9mRG91YmxlTWFudGlzc2FCaXRzLCAoRGVjaW1hbDo6UG9zaXRpdmUsIDAsIFVJTlQ2
NF9DKDEpIDw8IERCTF9NQU5UX0RJRykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBEZWNpbWFsLCB0d29Qb3dlck9mRG91YmxlTWFudGlzc2FCaXRzLCAoRGVjaW1h
bDo6UG9zaXRpdmUsIDAsIFVJTlQ2NF9DKDEpIDw8IERCTF9NQU5UX0RJRykpOwogICAgIGlmICh2
YWx1ZSAvIHR3b1Bvd2VyT2ZEb3VibGVNYW50aXNzYUJpdHMgPiBtX3N0ZXApCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAvLyBUaGUgY29tcHV0YXRpb24gZm9sbG93cyBIVE1MNSA0LjEwLjcu
Mi4xMCBgVGhlIHN0ZXAgYXR0cmlidXRlJyA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcAppbmRleCAwOGQ2YjMwOTJmOWQyYmRiMmZmODAwNDlkMmRlNTMzYmUwMmVhMWU1Li5jMDkw
NDE5MDE0OGM0NjM0MmZjOGU3YTJlOWMxYzlkMTYzZWU4MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgRGVjaW1hbCBUaW1lSW5wdXRUeXBl
OjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogCiBTdGVwUmFuZ2UgVGltZUlucHV0VHlw
ZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBEZXNjcmlw
dGlvbiwgc3RlcERlc2NyaXB0aW9uLCAodGltZURlZmF1bHRTdGVwLCB0aW1lRGVmYXVsdFN0ZXBC
YXNlLCB0aW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1ZVNob3Vs
ZEJlSW50ZWdlcikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dGVwUmFuZ2U6OlN0ZXBEZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAodGltZURlZmF1bHRT
dGVwLCB0aW1lRGVmYXVsdFN0ZXBCYXNlLCB0aW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6
OlNjYWxlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcikpOwogCiAgICAgY29uc3QgRGVjaW1hbCBz
dGVwQmFzZSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0
ciksIDApOwogICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVu
dCgpLmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNv
bXBvbmVudHM6Om1pbmltdW1UaW1lKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUu
Y3BwCmluZGV4IDE0OWVkMTM3MTAyZGI5MjIxNzJlMmNlYzUxN2VmY2JjNWUyODhkZTIuLjg0Y2E5
ODhmYmFiYjc4YjY5MDIyN2YxOTZjMzk3NzczMmJmZmE2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBEYXRlQ29tcG9uZW50czo6VHlwZSBX
ZWVrSW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAKIFN0ZXBSYW5nZSBXZWVrSW5wdXRUeXBl
OjpjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nIGFueVN0ZXBIYW5kbGluZykgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5nZTo6U3RlcERlc2NyaXB0
aW9uLCBzdGVwRGVzY3JpcHRpb24sICh3ZWVrRGVmYXVsdFN0ZXAsIHdlZWtEZWZhdWx0U3RlcEJh
c2UsIHdlZWtTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6UGFyc2VkU3RlcFZhbHVlU2hvdWxk
QmVJbnRlZ2VyKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
ZXBSYW5nZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sICh3ZWVrRGVmYXVsdFN0
ZXAsIHdlZWtEZWZhdWx0U3RlcEJhc2UsIHdlZWtTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6
UGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7CiAKICAgICBjb25zdCBEZWNpbWFsIHN0
ZXBCYXNlID0gcGFyc2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRy
KSwgd2Vla0RlZmF1bHRTdGVwQmFzZSk7CiAgICAgY29uc3QgRGVjaW1hbCBtaW5pbXVtID0gcGFy
c2VUb051bWJlcihlbGVtZW50KCkuZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGVjaW1hbDo6
ZnJvbURvdWJsZShEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWsoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
aW5kZXggMTY1NWE3YmNiOTAyZmQ3ZjQ3ZTIwZDIxZWExZTcyMTQ1NGNjZWNmOS4uNTUzY2EzY2Zj
YTE0YTM3ZWY5YTNkNjRiOTc2MzdlYTMxOTczZjVmNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xODU4
LDcgKzE4NTgsNyBAQCBQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjp3ZWJraXRHZXRJbWFnZURhdGFIRChmbG9hdCBzeCwgZgogUGFzc1JlZlB0cjxJbWFnZURh
dGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Z2V0SW1hZ2VEYXRhKEltYWdlQnVmZmVyOjpD
b29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxv
YXQgc3csIGZsb2F0IHNoLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIWNh
bnZhcygpLT5vcmlnaW5DbGVhbigpKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVW5hYmxlIHRvIGdldCBpbWFnZSBk
YXRhIGZyb20gY2FudmFzIGJlY2F1c2UgdGhlIGNhbnZhcyBoYXMgYmVlbiB0YWludGVkIGJ5IGNy
b3NzLW9yaWdpbiBkYXRhLiIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJVbmFibGUgdG8gZ2V0
IGltYWdlIGRhdGEgZnJvbSBjYW52YXMgYmVjYXVzZSB0aGUgY2FudmFzIGhhcyBiZWVuIHRhaW50
ZWQgYnkgY3Jvc3Mtb3JpZ2luIGRhdGEuIikpKTsKICAgICAgICAgY2FudmFzKCktPmRvY3VtZW50
KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5p
emVyLmNwcAppbmRleCBjODhlYzIzMTcwZjMzMGRmNzU3NThmZjViYTZmZjg2OTg1YmI1Nzg4Li5m
ZjFmOTg2MmM5NTkwNjQ2YjVmNDZiZGEwNmZjMzYwNGZjNTcxMGNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcApAQCAtMTA1MCw5ICsxMDUwLDkgQEAg
Ym9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhU
TUxUb2tlbiYgdG9rZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVHSU5fU1RBVEUo
TWFya3VwRGVjbGFyYXRpb25PcGVuU3RhdGUpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGRhc2hEYXNoU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCItLSIpKSk7Ci0gICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBkb2N0eXBlU3RyaW5nLCAoQVNDSUlMaXRlcmFs
KCJkb2N0eXBlIikpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNkYXRh
U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJbQ0RBVEFbIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGFzaERhc2hTdHJpbmcsIChBU0NJSUxpdGVyYWwo
Ii0tIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
ZG9jdHlwZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZG9jdHlwZSIpKSk7CisgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNkYXRhU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJbQ0RBVEFbIikpKTsKICAgICAgICAgaWYgKGNjID09ICctJykgewogICAgICAgICAgICAg
U2VnbWVudGVkU3RyaW5nOjpMb29rQWhlYWRSZXN1bHQgcmVzdWx0ID0gc291cmNlLmxvb2tBaGVh
ZChkYXNoRGFzaFN0cmluZyk7CiAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0
cmluZzo6RGlkTWF0Y2gpIHsKQEAgLTEyNTMsOCArMTI1Myw4IEBAIGJvb2wgSFRNTFRva2VuaXpl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQog
ICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHB1YmxpY1N0cmluZywgKEFTQ0lJTGl0ZXJhbCgicHVibGljIikpKTsKLSAgICAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzeXN0ZW1TdHJpbmcsIChBU0NJSUxpdGVyYWwoInN5
c3RlbSIpKSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBwdWJsaWNTdHJpbmcsIChBU0NJSUxpdGVyYWwoInB1YmxpYyIpKSk7CisgICAgICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzeXN0ZW1TdHJpbmcsIChB
U0NJSUxpdGVyYWwoInN5c3RlbSIpKSk7CiAgICAgICAgICAgICBpZiAoY2MgPT0gJ1AnIHx8IGNj
ID09ICdwJykgewogICAgICAgICAgICAgICAgIFNlZ21lbnRlZFN0cmluZzo6TG9va0FoZWFkUmVz
dWx0IHJlc3VsdCA9IHNvdXJjZS5sb29rQWhlYWRJZ25vcmluZ0Nhc2UocHVibGljU3RyaW5nKTsK
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNlZ21lbnRlZFN0cmluZzo6RGlkTWF0Y2gp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKaW5kZXggYjM2MzVi
OWUyNmFlNTc2MzYxNjdiZmY5M2NhMzJkZjU0ZTEwMThhNC4uNzg0YTRkMWVkOTZkM2FkMzM2MDZi
YzI3ZTZmN2IzNWQ2ZjI4MGRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVk
aXRvci5jcHAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6OmluaXQoRG9jdW1l
bnQqIGRvY3VtZW50LCBYU1NBdWRpdG9yRGVsZWdhdGUqIGF1ZGl0b3JEZWxlZ2F0ZSkKIAogICAg
IFN0cmluZyBodHRwQm9keUFzU3RyaW5nOwogICAgIGlmIChEb2N1bWVudExvYWRlciogZG9jdW1l
bnRMb2FkZXIgPSBkb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkg
ewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgWFNTUHJvdGVjdGlvbkhlYWRl
ciwgKEFTQ0lJTGl0ZXJhbCgiWC1YU1MtUHJvdGVjdGlvbiIpKSk7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFhTU1Byb3RlY3Rpb25IZWFkZXIsIChBU0NJ
SUxpdGVyYWwoIlgtWFNTLVByb3RlY3Rpb24iKSkpOwogICAgICAgICBTdHJpbmcgaGVhZGVyVmFs
dWUgPSBkb2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoWFNTUHJvdGVj
dGlvbkhlYWRlcik7CiAgICAgICAgIFN0cmluZyBlcnJvckRldGFpbHM7CiAgICAgICAgIHVuc2ln
bmVkIGVycm9yUG9zaXRpb24gPSAwOwpAQCAtNTEwLDcgKzUxMCw3IEBAIGJvb2wgWFNTQXVkaXRv
cjo6ZmlsdGVyQnV0dG9uVG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQog
CiBib29sIFhTU0F1ZGl0b3I6OmVyYXNlRGFuZ2Vyb3VzQXR0cmlidXRlc0lmSW5qZWN0ZWQoY29u
c3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBzYWZlSmF2YVNjcmlwdFVSTCwgKEFTQ0lJTGl0ZXJhbCgiamF2YXNjcmlwdDp2
b2lkKDApIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBz
YWZlSmF2YVNjcmlwdFVSTCwgKEFTQ0lJTGl0ZXJhbCgiamF2YXNjcmlwdDp2b2lkKDApIikpKTsK
IAogICAgIGJvb2wgZGlkQmxvY2tTY3JpcHQgPSBmYWxzZTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHJlcXVlc3QudG9rZW4uYXR0cmlidXRlcygpLnNpemUoKTsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKaW5k
ZXggYTQ4ZTI5ZjQ5OGMxYTMwMzM5MWY4ZjE4ZTU0ODQ3OTMwOTBmNDZlYS4uYzc1Y2Y5ZGIwZGE4
Y2RjZGIxNmI3YTM2N2UwYmVmYzliOTc2MDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmNwcApAQCAtNTcsNyArNTcsNyBAQCBi
b29sIERldGFpbHNNYXJrZXJDb250cm9sOjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBEZXRhaWxzTWFya2VyQ29udHJvbDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBwc2V1ZElkLCAoIi13ZWJraXQtZGV0YWlscy1tYXJrZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgcHNldWRJZCwgKCItd2Via2l0LWRldGFpbHMtbWFya2VyIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBwc2V1ZElkOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAKaW5kZXggMTc3ZjBmODQwMWUwZGQ0MTcxMWM4NWYwY2VjMGE5ZTFhOWJiODUzZS4u
NDc4MmJlZDFlODRmNjViMTRiMmVhYWRiZjljZTFlMzI5ZDg5NGFjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtODMs
NyArODMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gTWVkaWFDb250
cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGFuZWwiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1wYW5lbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTI3MCw3ICsyNzAsNyBAQCBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50OgogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xv
c3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWVuY2xvc3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTI4OSw3ICsyODksNyBAQCBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5RW5j
bG9zdXJlRWxlbQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNs
b3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zlcmxh
eS1lbmNsb3N1cmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTMwOSw3ICszMDksNyBA
QCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gTWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXJFbAogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTM3NSw3ICszNzUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQg
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnVwZGF0ZSgpCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgi
LXdlYmtpdC1tZWRpYS1jb250cm9scy1zdGF0dXMtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXN0YXR1cy1kaXNwbGF5
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsK
IH0KIApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwg
KCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24iLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQog
CkBAIC00ODMsNyArNDgzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXUKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNTIyLDcgKzUyMiw3IEBA
IHZvaWQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1i
dXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IGlkOwogfQogCkBAIC01NjEsNyArNTYxLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xPdmVybGF5UGxh
eUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdl
YmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1
cm4gaWQ7CiB9CiAKQEAgLTU4Myw3ICs1ODMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbAog
CiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstZm9yd2FyZC1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1j
b250cm9scy1zZWVrLWZvcndhcmQtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtNjA0LDcgKzYwNCw3IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ6CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sU2Vl
a0JhY2tCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
c2Vlay1iYWNrLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCIt
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXNlZWstYmFjay1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02MzQsNyArNjM0
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KiBldmVudCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xS
ZXdpbmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cmV3aW5kLWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXJld2luZC1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBAIC02NjUsNyArNjY1LDcgQEAg
dm9pZCBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRy
b2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXJldHVybi10by1yZWFsdGltZS1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1yZXR1cm4tdG8tcmVh
bHRpbWUtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBpZDsKIH0KIApAQCAtNzIyLDcgKzcyMiw3IEBAIHZvaWQgTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBlCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9n
Z2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
ZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
aWQ7CiB9CiAKQEAgLTc0Myw3ICs3NDMsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENsb3Nl
ZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbgogCiBj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9u
cy1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIApAQCAtODA2LDE0
ICs4MDYsMTQgQEAgdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW4KIAogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnNoYWRvd1BzZXVk
b0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQs
ICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtdHJhY2stbGlzdCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy10cmFjay1saXN0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIHJldHVybiBpZDsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xDbG9zZWRD
YXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogewogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2VsZWN0
ZWRDbGFzc1ZhbHVlLCAoInNlbGVjdGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNlbGVjdGVkQ2xhc3NWYWx1ZSwgKCJzZWxlY3RlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmICghbWVkaWFDb250cm9sbGVyKCktPmhhc0Nsb3NlZENh
cHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk4OCw3ICs5ODgsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGlkOwogfQogCkBA
IC0xMDExLDcgKzEwMTEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbAogCiBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xp
ZGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBp
ZDsKIH0KIApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHUKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9s
dW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlciIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEwNzgsNyAr
MTA3OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVk
aWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAK
QEAgLTExMTQsNyArMTExNCw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1p
bkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1t
aW4tYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWluLWJ1dHRvbiIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExNDUs
NyArMTE0NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2CiAKIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aWQsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLXZvbHVtZS1tYXgtYnV0dG9u
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZnVsbHNjcmVlbi12b2x1bWUtbWF4LWJ1dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTExNjMsNyArMTE2Myw3
IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzCiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IGdldE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVkb0lk
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5p
bmctZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gaWQ7CiB9CiAKQEAgLTExODYsNyArMTE4Niw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGdldE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10
aW1lLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtp
dC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gaWQ7CiB9CiAKQEAgLTEyMjEsNyArMTIy
MSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgaWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29u
dGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBpZDsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
cy5jcHAKaW5kZXggZGVkYjUwNmI5ZDNlNTM5NDMyMTllMDdiZDFjY2YxMGMwMTk5ZDk3NC4uMDMy
MzYyYWExNjUyY2JlYjBjMmMyN2RiYTM3YjFlZWRmYTAwODJjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbHM6OnN0b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbHM6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scyIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzIikpOwogICAgIHJldHVybiBpZDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVu
dC5jcHAKaW5kZXggNTUxMTUwNGY0YjAzZjYwZmQ1MzM5MTA4NDY2YmIxZDQ2OThiYmMyNi4uMDk2
NjNjOTI3ZGQ1NTg3MmUwYzM4OTQ3NjI0MzgxYjZkYWJiOWQxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIGJvb2wgTWV0ZXJTaGFkb3dFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSkKIE1ldGVySW5uZXJFbGVtZW50OjpNZXRlcklubmVyRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZXRlclNoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi13ZWJraXQt
bWV0ZXItaW5uZXItZWxlbWVudCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1
ZG9JZCwgKCItd2Via2l0LW1ldGVyLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgc2V0UHNldWRvKHBzZXVkb0lkKTsKIH0KIApAQCAtODAs
OSArODAsOSBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWV0ZXJJbm5lckVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlcgogCiBjb25zdCBBdG9taWNTdHJpbmcm
IE1ldGVyVmFsdWVFbGVtZW50Ojp2YWx1ZVBzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3B0aW11bVBzZXVkb0lkLCAoIi13ZWJraXQtbWV0
ZXItb3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc3Vib3B0aW11bVBzZXVkb0lk
LCAoIi13ZWJraXQtbWV0ZXItc3Vib3B0aW11bS12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
ZXZlbkxlc3NHb29kUHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcHRpbXVtUHNldWRvSWQsICgiLXdl
YmtpdC1tZXRlci1vcHRpbXVtLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHN1Ym9wdGltdW1Qc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZXZlbkxlc3NHb29kUHNldWRvSWQsICgiLXdl
YmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKIAogICAgIEhUTUxNZXRlckVsZW1lbnQqIG1ldGVyID0gbWV0ZXJFbGVt
ZW50KCk7CiAgICAgaWYgKCFtZXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggYTNjZjE2MmQ5MTU2YmNiMmQ5M2MxZTQ4YzI5MTc5
MTQwNTgxYmRhNC4uZDFiMGU3OGQxNTExOWRiZjJlYzY0YmFlYjUyNWQwNGI3OGIzZWUyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAg
LTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgICAgICA6IE1ldGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkKICAgICB7Ci0g
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Vi
a2l0LW1ldGVyLWJhciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRv
SWQsICgiLXdlYmtpdC1tZXRlci1iYXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgICAgIHNldFBzZXVkbyhwc2V1ZG9JZCk7CiAgICAgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IGJm
YmI0ZDkyYjkyMmQwYTIyOWY4MmY5YjFmYzZlODBmZjZmMDAzYjguLjE5NzkzMjVlY2JhYjcyZWEz
OGE3MzcwNTRhMjI3NGM4NzFjYmMyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNTY0LDEzICs1NjQsMTMgQEAgSFRNTElu
cHV0RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAogCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgi
LXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmlu
Zywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNsaWRlclRodW1iOwogfQogCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRl
clRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlk
ZXItdGh1bWIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKQEAgLTYyMCw4ICs2MjAsOCBAQCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UgogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1z
bGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJDb250YWlu
ZXIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIG1lZGlhU2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVy
LWNvbnRhaW5lciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFk
b3dIb3N0KCktPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAppbmRleCBjMjkzYjVi
ODI2N2RiNjBhYTc1Yzg0NzIzZjY5YzAxOTRiMTIxYjAxLi5iNzJmMzE5NTYxMjIwNDFlZDcxZDhi
MjNlNDA0YWU2OWQzNGU1YWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFBhc3NSZWZQdHI8U3BpbkJ1
dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBTcGluCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU3BpbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
aW5uZXJQc2V1ZG9JZCwgKCItd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIGlubmVyUHNldWRvSWQsICgiLXdlYmtpdC1pbm5lci1zcGluLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
aW5uZXJQc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggMTliNWJjODY4ODU3MjllMGZm
MDc4NjhlMjY5NTU2NTk1ZjA0NjYwNC4uNDgwZWMzODc3NjJjZjM2YjBiNzU5ZjgzMDAzNzExMTI4
ZGU5OGRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC0xNDIsOSArMTQyLDkgQEAgUGFzc1JlZlB0cjxT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50OjpjcmUKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1
dHRvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcmVzdWx0c0RlY29yYXRpb25JZCwgKCItd2Via2l0
LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlY29yYXRp
b25JZCwgKCItd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1
Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHJlc3VsdHNJZCwgKCItd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCByZXN1bHRzRGVjb3JhdGlvbklkLCAoIi13ZWJr
aXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBkZWNvcmF0aW9uSWQsICgiLXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBFbGVtZW50KiBob3N0ID0gc2hhZG93
SG9zdCgpOwogICAgIGlmICghaG9zdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdHNJZDsKQEAgLTIw
Miw3ICsyMDIsNyBAQCBQYXNzUmVmUHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4g
U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdAogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCIt
d2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHBzZXVkb0lkLCAoIi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24iLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHBzZXVkb0lkOwogfQogCkBA
IC00NjEsNyArNDYxLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3Rv
cFNwZWVjaElucHV0KCkKIAogY29uc3QgQXRvbWljU3RyaW5nJiBJbnB1dEZpZWxkU3BlZWNoQnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LWlucHV0LXNwZWVjaC1idXR0
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1p
bnB1dC1zcGVlY2gtYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogICAgIHJldHVybiBwc2V1ZG9JZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAppbmRleCBkYTNmYWI1
Njk5OGFjNDUwYWZkNDY3ODYwZTliZTBhOTAzYjliZmY4Li41MWIyNzI5YWYzMjZjMzU1ZTliNmQ1
NTk0MTMwOGU0MzIzNTFjZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpwbHVnaW5F
bGVtZW50KCkgY29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHBzZXVkb0lkLCAoIi1hcHBsZS15b3V0dWJlLXNoYWRvdy1pZnJhbWUi
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgcHNl
dWRvSWQsICgiLWFwcGxlLXlvdXR1YmUtc2hhZG93LWlmcmFtZSIpKTsKICAgICByZXR1cm4gcHNl
dWRvSWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4
IGM4MDc5NjUxOTFlYzBmYWY5YWY3ZGVmYjY0YzQ3YTY5NDY4OWUxM2EuLjRmMmRkODRiNDk4Nzc4
NDcwMzNlYTVjYWUxOGViMDIwZGQxODNhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmNwcApAQCAtNDMsMzcgKzQzLDM3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhbHRlcm5hdGl2ZSwg
KCJhbHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhbHRl
cm5hdGl2ZSwgKCJhbHRlcm5hdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICByZXR1cm4gYWx0ZXJuYXRpdmU7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
QXVkaW9UcmFjazo6ZGVzY3JpcHRpb25LZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVzY3JpcHRpb24sICgiZGVzY3JpcHRpb24iLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVzY3JpcHRpb24sICgiZGVzY3JpcHRp
b24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGRl
c2NyaXB0aW9uOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlvVHJhY2s6Om1haW5LZXl3
b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWFp
biwgKCJtYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1haW4sICgi
bWFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
bWFpbjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjptYWluRGVzY0tleXdv
cmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtYWlu
RGVzYywgKCJtYWluLWRlc2MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bWFpbkRlc2MsICgibWFpbi1kZXNjIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBtYWluRGVzYzsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBBdWRp
b1RyYWNrOjp0cmFuc2xhdGlvbktleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCB0cmFuc2xhdGlvbiwgKCJ0cmFuc2xhdGlvbiIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFuc2xhdGlvbiwgKCJ0cmFuc2xhdGlvbiIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gdHJhbnNs
YXRpb247CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtl
eXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBj
b21tZW50YXJ5LCAoImNvbW1lbnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgY29tbWVudGFyeSwgKCJjb21tZW50YXJ5IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggM2EzODc4NjE5YzBjN2MxMTdmMDNkMzZhYzY1
MmQ2Njc4Njc0OGYxNS4uNTRhZWJlNjU5ZDg0MDkzZGFmODc4NGU0NjA4NzBjMGU2NDljOGQ1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtNDgsNTUgKzQ4LDU1
IEBAIHN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFRyYWNrSW5kZXggPSAtMTsKIAogY29uc3QgQXRv
bWljU3RyaW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVzIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1YnRpdGxlcywgKCJzdWJ0aXRs
ZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHN1
YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmNhcHRpb25zS2V5
d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNh
cHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGNhcHRpb25zLCAoImNhcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIHJldHVybiBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0
VHJhY2s6OmRlc2NyaXB0aW9uc0tleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBkZXNjcmlwdGlvbnMsICgiZGVzY3JpcHRpb25zIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlc2NyaXB0aW9ucywgKCJkZXNjcmlwdGlv
bnMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGRl
c2NyaXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OmNoYXB0ZXJz
S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGNoYXB0ZXJzLCAoImNoYXB0ZXJzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIGNoYXB0ZXJzLCAoImNoYXB0ZXJzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgIHJldHVybiBjaGFwdGVyczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBU
ZXh0VHJhY2s6Om1ldGFkYXRhS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIG1ldGFkYXRhLCAoIm1ldGFkYXRhIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIG1ldGFkYXRhLCAoIm1ldGFkYXRhIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBtZXRhZGF0YTsKIH0KICAgICAK
IGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpmb3JjZWRLZXl3b3JkKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZm9yY2VkLCAoImZvcmNlZCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmb3JjZWQsICgiZm9yY2VkIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBmb3JjZWQ7
CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpkaXNhYmxlZEtleXdvcmQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBvcGVuLCAoImRp
c2FibGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG9wZW4sICgiZGlz
YWJsZWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IG9wZW47CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpoaWRkZW5LZXl3b3Jk
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2xvc2Vk
LCAoImhpZGRlbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjbG9zZWQs
ICgiaGlkZGVuIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJl
dHVybiBjbG9zZWQ7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrOjpzaG93aW5n
S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IGVuZGVkLCAoInNob3dpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
ZW5kZWQsICgic2hvd2luZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
ICAgICByZXR1cm4gZW5kZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5oCmluZGV4IDg1M2ZiYzE2MGIzZDI0MzFmNzU0ZGQ3ZTdhOWM5MzAxMzU1MGM2OTguLjAz
Mzk3MGZkOWE0OWIxYmI3MjA2OWM2YmM1Y2NkMDA0YzhkMjdiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjdWVTaGFkb3dQc2V1ZG9JZCgpCiAgICAgewot
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VlLCAoImN1
ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY3VlLCAoImN1ZSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgcmV0dXJuIGN1
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrUmVnaW9u
LmNwcAppbmRleCBkMjM3MGFjMjU2Y2ZkY2RlMmM2YjUxNjQ0Njg0MWY5OWZmNDdjZGY5Li4yYzNj
Zjc4ODY3NDQ0ZWQ1OGFlNDM1MTc4ZGM5MWJkZmY4ZjA0MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja1JlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tSZWdpb24uY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9p
ZCBUZXh0VHJhY2tSZWdpb246OnNldFZpZXdwb3J0QW5jaG9yWShkb3VibGUgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogCiBjb25zdCBBdG9taWNTdHJpbmcgVGV4dFRyYWNrUmVnaW9uOjpzY3Jv
bGwoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5n
LCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB1cFNjcm9sbFZhbHVlS2V5d29yZCwgKCJ1cCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlmIChtX3Njcm9sbCkKICAgICAgICAgcmV0dXJu
IHVwU2Nyb2xsVmFsdWVLZXl3b3JkOwpAQCAtMTc2LDcgKzE3Niw3IEBAIGNvbnN0IEF0b21pY1N0
cmluZyBUZXh0VHJhY2tSZWdpb246OnNjcm9sbCgpIGNvbnN0CiAKIHZvaWQgVGV4dFRyYWNrUmVn
aW9uOjpzZXRTY3JvbGwoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHVwU2Ny
b2xsVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHVwU2Nyb2xsVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogCiAgICAgaWYgKHZhbHVlICE9IGVtcHR5U3RyaW5nKCkgJiYgdmFsdWUg
IT0gdXBTY3JvbGxWYWx1ZUtleXdvcmQpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAt
MjE1LDEyICsyMTUsMTIgQEAgdm9pZCBUZXh0VHJhY2tSZWdpb246OnNldFJlZ2lvblNldHRpbmdz
KGNvbnN0IFN0cmluZyYgaW5wdXQpCiAKIFRleHRUcmFja1JlZ2lvbjo6UmVnaW9uU2V0dGluZyBU
ZXh0VHJhY2tSZWdpb246OmdldFNldHRpbmdGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc2V0dGlu
ZykKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaWRLZXl3
b3JkLCAoImlkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWlnaHRLZXl3b3JkLCAoImhl
aWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2lkdGhLZXl3b3JkLCAoIndpZHRoIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCByZWdpb25BbmNob3JLZXl3b3JkLCAoInJlZ2lvbmFu
Y2hvciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdmlld3BvcnRBbmNob3JLZXl3b3JkLCAo
InZpZXdwb3J0YW5jaG9yIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzY3JvbGxLZXl3b3Jk
LCAoInNjcm9sbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBpZEtleXdv
cmQsICgiaWQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVpZ2h0S2V5
d29yZCwgKCJoZWlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2lk
dGhLZXl3b3JkLCAoIndpZHRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHJlZ2lvbkFuY2hvcktleXdvcmQsICgicmVnaW9uYW5jaG9yIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIHZpZXdwb3J0QW5jaG9yS2V5d29yZCwgKCJ2aWV3cG9ydGFuY2hv
ciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzY3JvbGxLZXl3b3JkLCAo
InNjcm9sbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIGlm
IChzZXR0aW5nID09IGlkS2V5d29yZCkKICAgICAgICAgcmV0dXJuIElkOwpAQCAtMjQwLDcgKzI0
MCw3IEBAIFRleHRUcmFja1JlZ2lvbjo6UmVnaW9uU2V0dGluZyBUZXh0VHJhY2tSZWdpb246Omdl
dFNldHRpbmdGcm9tU3RyaW5nKGNvbnN0IFN0cmluCiAKIHZvaWQgVGV4dFRyYWNrUmVnaW9uOjpw
YXJzZVNldHRpbmdWYWx1ZShSZWdpb25TZXR0aW5nIHNldHRpbmcsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNjcm9s
bFVwVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIHNjcm9sbFVwVmFsdWVLZXl3b3JkLCAoInVwIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogCiAgICAgYm9vbCBpc1ZhbGlkU2V0dGluZzsKICAgICBTdHJpbmcgbnVt
YmVyQXNTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggMzQxNmZh
NjI0YjkzN2IxYWEyZmRkNWUzNGRmOWEwYzBhMDc4YmIzOC4uOTdlNzI4MzlmODg3MGVhN2RmZDJj
YWE0MmIwOGM5ZTliNmQ3MzU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApA
QCAtNTcsMTkgKzU3LDE5IEBAIHN0YXRpYyBjb25zdCBpbnQgdW5kZWZpbmVkUG9zaXRpb24gPSAt
MTsKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgc3RhcnRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhcnQsIChBU0NJSUxpdGVyYWwoInN0YXJ0Iikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdGFy
dCwgKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSkpOwogICAgIHJldHVybiBzdGFydDsKIH0KIAogc3Rh
dGljIGNvbnN0IFN0cmluZyYgbWlkZGxlS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIG1pZGRsZSwgKEFTQ0lJTGl0ZXJhbCgibWlkZGxlIikpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtaWRkbGUsIChB
U0NJSUxpdGVyYWwoIm1pZGRsZSIpKSk7CiAgICAgcmV0dXJuIG1pZGRsZTsKIH0KIAogc3RhdGlj
IGNvbnN0IFN0cmluZyYgZW5kS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGVuZCwgKEFTQ0lJTGl0ZXJhbCgiZW5kIikpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBlbmQsIChBU0NJSUxpdGVyYWwoImVu
ZCIpKSk7CiAgICAgcmV0dXJuIGVuZDsKIH0KIApAQCAtODAsMTMgKzgwLDEzIEBAIHN0YXRpYyBj
b25zdCBTdHJpbmcmIGhvcml6b250YWxLZXl3b3JkKCkKIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCB2ZXJ0aWNhbHJsLCAoQVNDSUlMaXRlcmFsKCJybCIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxybCwgKEFT
Q0lJTGl0ZXJhbCgicmwiKSkpOwogICAgIHJldHVybiB2ZXJ0aWNhbHJsOwogfQogCiBzdGF0aWMg
Y29uc3QgU3RyaW5nJiB2ZXJ0aWNhbEdyb3dpbmdSaWdodEtleXdvcmQoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbGxyLCAoQVNDSUlMaXRlcmFsKCJs
ciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
dmVydGljYWxsciwgKEFTQ0lJTGl0ZXJhbCgibHIiKSkpOwogICAgIHJldHVybiB2ZXJ0aWNhbGxy
OwogfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBWVFRDdWVCb3g6OmFwcGx5Q1NTUHJvcGVy
dGllcyhjb25zdCBJbnRTaXplJikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBWVFRDdWVCb3g6OnZ0
dEN1ZUJveFNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1t
ZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0
LXRyYWNrLWRpc3BsYXkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgcmV0dXJuIHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkOwogfQogCkBAIC01MDYsNyAr
NTA2LDcgQEAgc3RhdGljIGJvb2wgaXNDdWVQYXJhZ3JhcGhTZXBhcmF0b3IoVUNoYXIgY2hhcmFj
dGVyKQogCiB2b2lkIFZUVEN1ZTo6ZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHJ0VGFnLCAoQVNDSUlMaXRlcmFsKCJydCIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcnRU
YWcsIChBU0NJSUxpdGVyYWwoInJ0IikpKTsKICAgICBjcmVhdGVXZWJWVFROb2RlVHJlZSgpOwog
ICAgIGlmICghbV93ZWJWVFROb2RlVHJlZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjM5LDcgKzYz
OSw3IEBAIHZvaWQgVlRUQ3VlOjpjYWxjdWxhdGVEaXNwbGF5UGFyYW1ldGVycygpCiAgICAgCiB2
b2lkIFZUVEN1ZTo6bWFya0Z1dHVyZUFuZFBhc3ROb2RlcyhDb250YWluZXJOb2RlKiByb290LCBk
b3VibGUgcHJldmlvdXNUaW1lc3RhbXAsIGRvdWJsZSBtb3ZpZVRpbWUpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKEFTQ0lJTGl0ZXJhbCgi
dGltZXN0YW1wIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCB0aW1lc3RhbXBUYWcsIChBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpKSk7CiAgICAg
CiAgICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKICAgICBkb3VibGUgY3VycmVudFRpbWVzdGFt
cCA9IHByZXZpb3VzVGltZXN0YW1wOwpAQCAtNzc3LDEzICs3NzcsMTMgQEAgc3RkOjpwYWlyPGRv
dWJsZSwgZG91YmxlPiBWVFRDdWU6OmdldFBvc2l0aW9uQ29vcmRpbmF0ZXMoKSBjb25zdAogCiBW
VFRDdWU6OkN1ZVNldHRpbmcgVlRUQ3VlOjpzZXR0aW5nTmFtZShjb25zdCBTdHJpbmcmIG5hbWUp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FsS2V5d29y
ZCwgKEFTQ0lJTGl0ZXJhbCgidmVydGljYWwiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBsaW5lS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgibGluZSIpKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvc2l0aW9uS2V5d29yZCwgKEFTQ0lJ
TGl0ZXJhbCgicG9zaXRpb24iKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBzaXplS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgic2l6ZSIpKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGFsaWduS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgiYWxp
Z24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHZlcnRpY2FsS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgidmVydGljYWwiKSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxpbmVLZXl3b3JkLCAoQVND
SUlMaXRlcmFsKCJsaW5lIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBwb3NpdGlvbktleXdvcmQsIChBU0NJSUxpdGVyYWwoInBvc2l0aW9uIikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzaXpl
S2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgic2l6ZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgYWxpZ25LZXl3b3JkLCAoQVNDSUlMaXRlcmFsKCJh
bGlnbiIpKSk7CiAjaWYgRU5BQkxFKFdFQlZUVF9SRUdJT05TKQotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCByZWdpb25JZEtleXdvcmQsIChBU0NJSUxpdGVyYWwoInJlZ2lv
biIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cmVnaW9uSWRLZXl3b3JkLCAoQVNDSUlMaXRlcmFsKCJyZWdpb24iKSkpOwogI2VuZGlmCiAKICAg
ICBpZiAobmFtZSA9PSB2ZXJ0aWNhbEtleXdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmNwcAppbmRleCAwNTgyNWU4NmVkMDc4NDE1YmM5YWRhMWNlZGEzMTQzODZlMGZi
Y2ZlLi41OTk3ODIzNGZjNzZhOTQzNGUyMWI3OTY1Y2Q3ZWFlN2E0MDQ0NTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTQ3LDM3ICs0NywzNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6YWx0ZXJu
YXRpdmVLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYWx0ZXJuYXRpdmUsICgiYWx0ZXJuYXRpdmUiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGFsdGVybmF0aXZlOwogfQogCiBj
b25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoImNhcHRp
b25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhcHRpb25zLCAoImNh
cHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVy
biBjYXB0aW9uczsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjptYWluS2V5
d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNh
cHRpb25zLCAoIm1haW4iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgY2Fw
dGlvbnMsICgibWFpbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAg
ICByZXR1cm4gY2FwdGlvbnM7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6
c2lnbktleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBzaWduLCAoInNpZ24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
c2lnbiwgKCJzaWduIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBzaWduOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OnN1YnRp
dGxlc0tleXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3Ry
aW5nLCBzdWJ0aXRsZXMsICgic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIHN1YnRpdGxlcywgKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHN1YnRpdGxlczsKIH0KIAogY29uc3QgQXRvbWlj
U3RyaW5nJiBWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNvbW1lbnRhcnksICgiY29tbWVudGFyeSIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjb21tZW50YXJ5LCAoImNvbW1l
bnRhcnkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IGNvbW1lbnRhcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRURWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1l
bnQuY3BwCmluZGV4IDZhNzZkNjA3OGJmZmViNjc2MmIwMWEzOGQ1OWZiNGFlYzc4YmFiMGEuLmY2
NjZkMDU4ZDk0ZWI2MWExZjA5NTc1NTJmNzU4N2EzYzM5MDBhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmNwcApAQCAtMzYsMTQgKzM2LDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5vZGVUeXBlVG9U
YWdOYW1lKFdlYlZUVE5vZGVUeXBlIG5vZGVUeXBlKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoUXVhbGlmaWVkTmFtZSwgY1RhZywgKG51bGxBdG9tLCAiYyIsIG51bGxBdG9tKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB2VGFnLCAobnVsbEF0b20sICJ2Iiwg
bnVsbEF0b20pKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGxhbmdU
YWcsIChudWxsQXRvbSwgImxhbmciLCBudWxsQXRvbSkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoUXVhbGlmaWVkTmFtZSwgYlRhZywgKG51bGxBdG9tLCAiYiIsIG51bGxBdG9tKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB1VGFnLCAobnVsbEF0b20sICJ1Iiwg
bnVsbEF0b20pKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGlUYWcs
IChudWxsQXRvbSwgImkiLCBudWxsQXRvbSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVh
bGlmaWVkTmFtZSwgcnVieVRhZywgKG51bGxBdG9tLCAicnVieSIsIG51bGxBdG9tKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBydFRhZywgKG51bGxBdG9tLCAicnQi
LCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZp
ZWROYW1lLCBjVGFnLCAobnVsbEF0b20sICJjIiwgbnVsbEF0b20pKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgdlRhZywgKG51bGxBdG9tLCAidiIs
IG51bGxBdG9tKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmll
ZE5hbWUsIGxhbmdUYWcsIChudWxsQXRvbSwgImxhbmciLCBudWxsQXRvbSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCBiVGFnLCAobnVsbEF0b20s
ICJiIiwgbnVsbEF0b20pKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVh
bGlmaWVkTmFtZSwgdVRhZywgKG51bGxBdG9tLCAidSIsIG51bGxBdG9tKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIGlUYWcsIChudWxsQXRvbSwg
ImkiLCBudWxsQXRvbSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFs
aWZpZWROYW1lLCBydWJ5VGFnLCAobnVsbEF0b20sICJydWJ5IiwgbnVsbEF0b20pKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUXVhbGlmaWVkTmFtZSwgcnRUYWcsIChudWxs
QXRvbSwgInJ0IiwgbnVsbEF0b20pKTsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2Fz
ZSBXZWJWVFROb2RlVHlwZUNsYXNzOgogICAgICAgICByZXR1cm4gY1RhZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKaW5kZXggZjQ5NDEyYzI2Y2RjZmY4ODMxMDY0
MGY4ZWJjMjUwNDEwYzA0NWZhOS4uOWFhYTZlNGFkNTIzNDg1YWJkMDA4YzkxZGFkYmI3Njc3OGI3
ODBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRFbGVtZW50LmgKQEAgLTU5
LDEzICs1OSwxMyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYg
dm9pY2VBdHRyaWJ1dGVOYW1lKCkKICAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20sICJ2b2ljZSIsIG51bGxBdG9tKSk7
CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB2
b2ljZUF0dHIsIChudWxsQXRvbSwgInZvaWNlIiwgbnVsbEF0b20pKTsKICAgICAgICAgcmV0dXJu
IHZvaWNlQXR0cjsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGxhbmdBdHRyaWJ1dGVOYW1lKCkKICAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UXVhbGlmaWVkTmFtZSwgdm9pY2VBdHRyLCAobnVsbEF0b20sICJsYW5nIiwgbnVsbEF0b20pKTsK
KyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFF1YWxpZmllZE5hbWUsIHZv
aWNlQXR0ciwgKG51bGxBdG9tLCAibGFuZyIsIG51bGxBdG9tKSk7CiAgICAgICAgIHJldHVybiB2
b2ljZUF0dHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNl
ci5jcHAKaW5kZXggMmRlZjgyNjVkNTY1NjZmOGQxZjEzYmE4OWVjOThlYTVkOTU4NDM4OC4uOWZl
YTRhM2QzNjg1N2U3MDBjNzQwNmY0ODQ0M2JjZmE5MDNjMjk1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApAQCAtMjU0LDcgKzI1NCw3IEBAIGJvb2wgV2Vi
VlRUUGFyc2VyOjpoYXNSZXF1aXJlZEZpbGVJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGluZSkK
IHZvaWQgV2ViVlRUUGFyc2VyOjpjb2xsZWN0SGVhZGVyKGNvbnN0IFN0cmluZyYgbGluZSkKIHsK
ICAgICAvLyA0LjEgRXh0ZW5zaW9uIG9mIFdlYlZUVCBoZWFkZXIgcGFyc2luZyAoMTEgLSAxNSkK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVnaW9uSGVhZGVy
TmFtZSwgKCJSZWdpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcmVn
aW9uSGVhZGVyTmFtZSwgKCJSZWdpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAKICAgICAvLyAxNS40IElmIGxpbmUgY29udGFpbnMgdGhlIGNoYXJhY3RlciAiOiIg
KEEgVSswMDNBIENPTE9OKSwgdGhlbiBzZXQgbWV0YWRhdGEncwogICAgIC8vIG5hbWUgdG8gdGhl
IHN1YnN0cmluZyBvZiBsaW5lIGJlZm9yZSB0aGUgZmlyc3QgIjoiIGNoYXJhY3RlciBhbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDVl
MTY0ZTQ1YzEwNjJkYmQ4MGRlMTA0ODI0YWViNDQwNTYyMmUwMzguLjRhODAzMmE0ODE4ZmMxZDlm
NDJiY2I1NTU4ODNlNTc4MWM4MjYyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNzgsMTAgKzc4LDEwIEBAIGVudW0gRm9yY2VQc2V1
ZG9DbGFzc0ZsYWdzIHsKIAogc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVQc2V1ZG9DbGFzc01hc2so
SW5zcGVjdG9yQXJyYXkqIHBzZXVkb0NsYXNzQXJyYXkpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIGFjdGl2ZSwgKEFTQ0lJTGl0ZXJhbCgiYWN0aXZlIikpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaG92ZXIsIChBU0NJSUxpdGVyYWwoImhvdmVyIikpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZm9jdXMsIChBU0NJSUxpdGVyYWwoImZv
Y3VzIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmlzaXRlZCwgKEFTQ0lJ
TGl0ZXJhbCgidmlzaXRlZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJhY3RpdmUiKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGhvdmVyLCAoQVNDSUlMaXRlcmFsKCJob3Zl
ciIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZm9jdXMs
IChBU0NJSUxpdGVyYWwoImZvY3VzIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCB2aXNpdGVkLCAoQVNDSUlMaXRlcmFsKCJ2aXNpdGVkIikpKTsKICAgICBp
ZiAoIXBzZXVkb0NsYXNzQXJyYXkgfHwgIXBzZXVkb0NsYXNzQXJyYXktPmxlbmd0aCgpKQogICAg
ICAgICByZXR1cm4gUHNldWRvTm9uZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggNGYzNzYwYzJmZWQzZTAzOTk2
MTA2Nzc3MDdlNTkwN2FmZTc3NGI3Ni4uN2ZkNjI5MWM5MTA3ZjM4ZWI0MTNhNjE5MWE3Njc3MGI1
NzNjZTIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
ZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxJREJLZXk+IGlkYktleUZyb21JbnNwZWN0b3JPYmplY3QoSW5zcGVjdG9yT2JqZWN0KiBrZXkp
CiAgICAgaWYgKCFrZXktPmdldFN0cmluZygidHlwZSIsICZ0eXBlKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbnVtYmVyLCAoQVND
SUlMaXRlcmFsKCJudW1iZXIiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBz
dHJpbmcsIChBU0NJSUxpdGVyYWwoInN0cmluZyIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGRhdGUsIChBU0NJSUxpdGVyYWwoImRhdGUiKSkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBhcnJheSwgKEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG51bWJlciwgKEFTQ0lJTGl0ZXJh
bCgibnVtYmVyIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBzdHJpbmcsIChBU0NJSUxpdGVyYWwoInN0cmluZyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGF0ZSwgKEFTQ0lJTGl0ZXJhbCgiZGF0ZSIpKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYXJyYXksIChBU0NJSUxp
dGVyYWwoImFycmF5IikpKTsKIAogICAgIGlmICh0eXBlID09IG51bWJlcikgewogICAgICAgICBk
b3VibGUgbnVtYmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcAppbmRleCAyMjg1NTJlNGViNmEwYmIwODhlY2E1ODI2ZmZiNDZmMGMyZWNkYmM3
Li5hNTNlZGRmMDMyYTI1OGE0ZjA4YTM0MDBjZmM4ZmQ4OGM4MjZhOWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMjQ4LDggKzI0
OCw4IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBGcmFtZSogZnJhbWUsCiAvL3N0YXRpYwogU3RyaW5nIEluc3BlY3Rv
clBhZ2VBZ2VudDo6c291cmNlTWFwVVJMRm9yUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIGNhY2hl
ZFJlc291cmNlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBI
VFRQSGVhZGVyLCAoQVNDSUlMaXRlcmFsKCJTb3VyY2VNYXAiKSkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCwgKEFTQ0lJTGl0
ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJjZU1hcCIp
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFw
SFRUUEhlYWRlckRlcHJlY2F0ZWQsIChBU0NJSUxpdGVyYWwoIlgtU291cmNlTWFwIikpKTsKIAog
ICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA0
ODY3MGNkMWRmNzg0ZjI4OTAzYTFjN2JiNmM3MTRkZTlkZmQxN2FmLi5kMDJlNjdlN2E5ODQyMDM3
Y2UwYWZiYjZkMDlhODE3Y2Q4MTliOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgUGFzc1JlZlB0
cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpD
U1M6OkNTU0NvbXB1dGUKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNp
Z25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIGJvb2wgb3ZlcndyaXRlLCBT
dHJpbmcqIG9sZFRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChtX3BhcmVu
dFN0eWxlU2hlZXQpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBib2d1c1Byb3Bl
cnR5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiLXdlYmtpdC1ib2d1ei1wcm9wZXJ0ZWUiKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGJvZ3VzUHJvcGVydHlOYW1l
LCAoQVNDSUlMaXRlcmFsKCItd2Via2l0LWJvZ3V6LXByb3BlcnRlZSIpKSk7CiAKICAgICBpZiAo
IW1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpIHsKICAgICAgICAg
ZWMgPSBOT1RfRk9VTkRfRVJSOwpAQCAtNjg0LDcgKzY4NCw3IEBAIFZlY3RvcjxTdHJpbmc+IElu
c3BlY3RvclN0eWxlOjpsb25naGFuZFByb3BlcnRpZXMoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQ
cm9wZXJ0CiAKIE5ld0xpbmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0b3JTdHlsZTo6bmV3TGluZUFu
ZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZGVmYXVsdFByZWZpeCwgKEFTQ0lJTGl0ZXJhbCgiICAgICIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdFByZWZpeCwgKEFTQ0lJ
TGl0ZXJhbCgiICAgICIpKSk7CiAKICAgICBpZiAobV9mb3JtYXRBY3F1aXJlZCkKICAgICAgICAg
cmV0dXJuIG1fZm9ybWF0OwpAQCAtOTkzLDcgKzk5Myw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPiBJbnNwZWN0b3JTdHlsZVNo
ZWV0CiAKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PFN0
cmluZz4+IHNlbGVjdG9yc0Zyb21Tb3VyY2UoY29uc3QgQ1NTUnVsZVNvdXJjZURhdGEqIHNvdXJj
ZURhdGEsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0KQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgY29tbWVudCwgKCIvXFwqW15dKj9cXCov
IiwgVGV4dENhc2VTZW5zaXRpdmUsIEpTQzo6WWFycjo6TXVsdGlsaW5lRW5hYmxlZCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNz
aW9uLCBjb21tZW50LCAoIi9cXCpbXl0qP1xcKi8iLCBUZXh0Q2FzZVNlbnNpdGl2ZSwgSlNDOjpZ
YXJyOjpNdWx0aWxpbmVFbmFibGVkKSk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6OkFycmF5PFN0cmluZz4+IHJlc3VsdCA9IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5
PFN0cmluZz46OmNyZWF0ZSgpOwogICAgIGNvbnN0IFNlbGVjdG9yUmFuZ2VMaXN0JiByYW5nZXMg
PSBzb3VyY2VEYXRhLT5zZWxlY3RvclJhbmdlczsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6
ZSA9IHJhbmdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGI1MzYyMjYwOGVkMThkY2U2NWE2
YWJiM2FmYzk5ZDBkZjYyZWM3MWIuLjkyZGNkYjEwYjkwNGE1YTNjZTBlZDZmOTc3ODVkOTEzNzU2
YWY5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcApAQCAtNzEsOCArNzEsOCBAQCB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKGJv
b2wgaXNCZWluZ0Rlc3Ryb3llZCkKIAogU3RyaW5nIFBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VN
YXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0JiBzY3JpcHQpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBIZWFkZXIsIChBU0NJSUxpdGVyYWwoIlNvdXJj
ZU1hcCIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEhUVFBI
ZWFkZXJEZXByZWNhdGVkLCAoQVNDSUlMaXRlcmFsKCJYLVNvdXJjZU1hcCIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc291cmNlTWFwSFRUUEhlYWRlciwg
KEFTQ0lJTGl0ZXJhbCgiU291cmNlTWFwIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCwgKEFTQ0lJTGl0
ZXJhbCgiWC1Tb3VyY2VNYXAiKSkpOwogCiAgICAgaWYgKCFzY3JpcHQudXJsLmlzRW1wdHkoKSkg
ewogICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtX3BhZ2VBZ2VudC0+Y2FjaGVk
UmVzb3VyY2UobV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLCBVUkwoUGFyc2VkVVJMU3RyaW5nLCBz
Y3JpcHQudXJsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRl
eCAwNTlhMTIwOTc3NGNkZGM4MDI0NWViYzM4NTFhYjg2MTJhZDkxZWZkLi45NjBiNDJhOWVhMjhi
ZWE5ZTcyYWFiYjYxMDgwZTY4MDE5ZDI2MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKQEAgLTYwNCw3ICs2MDQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpy
ZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VS
ZQogICAgIGlmICh3aWxsTG9hZEZhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgeEZyYW1lT3B0aW9uSGVhZGVyLCAoIngtZnJh
bWUtb3B0aW9ucyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4RnJhbWVPcHRpb25I
ZWFkZXIsICgieC1mcmFtZS1vcHRpb25zIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogCiAgICAgYXV0byBpdCA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKS5maW5k
KHhGcmFtZU9wdGlvbkhlYWRlcik7CiAgICAgaWYgKGl0ICE9IHJlc3BvbnNlLmh0dHBIZWFkZXJG
aWVsZHMoKS5lbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXgg
ZTQ4ZDQ3YmE4ZGI5ZmRkNGMxYTVlODQ1ZDk2NzJhYjU4NGFkNmYzNS4uODM0OTYzYzY1M2QwNjhi
ZDgyOGM2NDkwNWVmNGVmMzBhZTEzYjk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCkBAIC02NCwxOSArNjQsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
SW1hZ2VFdmVudFNlbmRlciYgYmVmb3JlTG9hZEV2ZW50U2VuZGVyKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEltYWdlRXZlbnRTZW5kZXIsIHNlbmRlciwgKGV2ZW50TmFtZXMoKS5iZWZv
cmVsb2FkRXZlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VF
dmVudFNlbmRlciwgc2VuZGVyLCAoZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkpOwogICAg
IHJldHVybiBzZW5kZXI7CiB9CiAKIHN0YXRpYyBJbWFnZUV2ZW50U2VuZGVyJiBsb2FkRXZlbnRT
ZW5kZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VFdmVudFNlbmRlciwgc2Vu
ZGVyLCAoZXZlbnROYW1lcygpLmxvYWRFdmVudCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChJbWFnZUV2ZW50U2VuZGVyLCBzZW5kZXIsIChldmVudE5hbWVzKCkubG9hZEV2
ZW50KSk7CiAgICAgcmV0dXJuIHNlbmRlcjsKIH0KIAogc3RhdGljIEltYWdlRXZlbnRTZW5kZXIm
IGVycm9yRXZlbnRTZW5kZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VFdmVu
dFNlbmRlciwgc2VuZGVyLCAoZXZlbnROYW1lcygpLmVycm9yRXZlbnQpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2VFdmVudFNlbmRlciwgc2VuZGVyLCAoZXZlbnRO
YW1lcygpLmVycm9yRXZlbnQpKTsKICAgICByZXR1cm4gc2VuZGVyOwogfQogCkBAIC0yOTIsNyAr
MjkyLDcgQEAgdm9pZCBJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlKQogICAgICAgICBtX2hhc1BlbmRpbmdFcnJvckV2ZW50ID0gdHJ1ZTsKICAgICAg
ICAgZXJyb3JFdmVudFNlbmRlcigpLmRpc3BhdGNoRXZlbnRTb29uKHRoaXMpOwogCi0gICAgICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJh
bCgiQ3Jvc3Mtb3JpZ2luIGltYWdlIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJj
ZSBTaGFyaW5nIHBvbGljeS4iKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2lu
IGltYWdlIGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iKSkpOwogICAgICAgICBlbGVtZW50KCkuZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgY29uc29sZU1lc3Nh
Z2UpOwogCiAgICAgICAgIEFTU0VSVCghbV9oYXNQZW5kaW5nTG9hZEV2ZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggZDVlYzAzZTY1MDBhNGE4YWVm
NzlhZDE2OTk1Nzk4Mjc4ZGQyNDA2Mi4uNGZjZDUyNDZmNmUzOTgxMTFlM2Y2M2U3MjMwNjZmYzky
OThkNmRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIFRleHRUcmFja0xvYWRlcjo6ZGVwcmVjYXRlZERpZFJlY2Vp
dmVDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyYwogCiB2b2lkIFRleHRUcmFj
a0xvYWRlcjo6Y29yc1BvbGljeVByZXZlbnRlZExvYWQoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiQ3Jvc3Mtb3JpZ2lu
IHRleHQgdHJhY2sgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Y29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIkNyb3NzLW9yaWdpbiB0ZXh0IHRyYWNrIGxv
YWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iKSkpOwog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIGNvbnNvbGVNZXNzYWdlKTsKICAgICBtX3N0YXRl
ID0gRmFpbGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggNWYzMDA5NjUxNTQyYjA3OGQ2MGUw
YmUwZTZkYzkzYjJhOWVhZTk3ZC4uNmE0NzRkZGMxM2IyYzc4ZGFjOTViY2JkNjk0MDUwYTM3OWVi
ODlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC0xNTk5LDcgKzE1OTksNyBAQCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKQogCiBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZSYgY2FjaGVTdG9yYWdlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLCBzdG9yYWdlLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLCBzdG9yYWdlLCAoKSk7
CiAgICAgCiAgICAgcmV0dXJuIHN0b3JhZ2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9BcmNoaXZlRmFjdG9yeS5jcHAKaW5kZXggYWRiZDVkYTQ0NmE5ZjY0NDk5YzA4
ZmE2MTE2NDBkYmI0ZDE2NjkyYS4uZWRmZWY1MWIwYTdmNzlhMWEwYmE0ZTFmYWYwZWUzMDNiY2M1
MTJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZUZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVGYWN0
b3J5LmNwcApAQCAtNTcsNyArNTcsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJjaGl2ZUNsYXNz
PiBzdGF0aWMgUGFzc1JlZlB0cjxBcmNoaXZlPiBhcmNoaXZlRmFjdG9yeUNyZWF0ZQogCiBzdGF0
aWMgQXJjaGl2ZU1JTUVUeXBlc01hcCYgYXJjaGl2ZU1JTUVUeXBlcygpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBcmNoaXZlTUlNRVR5cGVzTWFwLCBtaW1lVHlwZXMsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXJjaGl2ZU1JTUVUeXBlc01hcCwgbWltZVR5
cGVzLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIGlm
IChpbml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCmluZGV4IGI5MmE5NzVkMzM0ZTk2ZjM2MmM4MGJkNTg0YjhlOWNhZTUxYjJmNjMuLjY3NTE5
YjRhNTg1OTM1NzdkMDFhZjcwMjQxYzI5Nzk0YWZlODI1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMTc1LDExICsxNzUsMTEgQEAgdm9pZCBD
YWNoZWRJbWFnZTo6YWxsQ2xpZW50c1JlbW92ZWQoKQogc3RkOjpwYWlyPEltYWdlKiwgZmxvYXQ+
IENhY2hlZEltYWdlOjpicm9rZW5JbWFnZShmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikgY29uc3QK
IHsKICAgICBpZiAoZGV2aWNlU2NhbGVGYWN0b3IgPj0gMikgewotICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEltYWdlKiwgYnJva2VuSW1hZ2VIaVJlcywgKEltYWdlOjpsb2FkUGxhdGZvcm1S
ZXNvdXJjZSgibWlzc2luZ0ltYWdlQDJ4IikubGVha1JlZigpKSk7CisgICAgICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZSosIGJyb2tlbkltYWdlSGlSZXMsIChJbWFnZTo6
bG9hZFBsYXRmb3JtUmVzb3VyY2UoIm1pc3NpbmdJbWFnZUAyeCIpLmxlYWtSZWYoKSkpOwogICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoYnJva2VuSW1hZ2VIaVJlcywgMik7CiAgICAgfQog
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZSosIGJyb2tlbkltYWdlTG9SZXMsIChJbWFn
ZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoIm1pc3NpbmdJbWFnZSIpLmxlYWtSZWYoKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChJbWFnZSosIGJyb2tlbkltYWdlTG9SZXMs
IChJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoIm1pc3NpbmdJbWFnZSIpLmxlYWtSZWYoKSkp
OwogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihicm9rZW5JbWFnZUxvUmVzLCAxKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAK
aW5kZXggYzQ2NWQyZjExZGE5NTk2YTFhMDgxMzkxYmZiOTY0ZjhjMTM4OWFkZS4uNmY1MzlkMjY0
NDA5YzA3MTljZjJlZDQ1NzZlZWZmY2NkMjA1YmI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAg
dm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVy
aW5nUG9saWN5IGRhdGFCdWZmZXJpbmcKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUhlYWRlckZv
ckNhY2hlUmV1c2UoQXRvbWljU3RyaW5nIGhlYWRlck5hbWUpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgbGlzdCBvZiBoZWFkZXJzIHRoYXQgZG9uJ3QgYWZmZWN0IGNhY2hlIHBvbGljeSBhbG1vc3Qg
Y2VydGFpbmx5IGlzbid0IGNvbXBsZXRlLgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxBdG9taWNTdHJpbmc+LCBtX2hlYWRlcnMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBtX2hlYWRlcnMsICgpKTsKICAgICBp
ZiAobV9oZWFkZXJzLmlzRW1wdHkoKSkgewogICAgICAgICBtX2hlYWRlcnMuYWRkKCJBY2NlcHQi
KTsKICAgICAgICAgbV9oZWFkZXJzLmFkZCgiQ2FjaGUtQ29udHJvbCIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRl
eCA1NWE0OTM4NTllZjIyMzE5NjA3NjRkYjE3MDY4Y2MxODI0MWIwZjZjLi5lODlmMmZlMGI2NjVm
MDU5MGZjZDc2YzIwNzZlNDEzNmY2ZGUwMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtODMsNyArODMsNyBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFt
ZSgpIGNvbnN0CiAgICAgaWYgKCFtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gbV9pbml0aWF0b3JOYW1lOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBkZWZhdWx0TmFtZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5kZXggM2NmZDdmNDk1NDU1YzNlYjM5
YjgzMjVjMjQwZmJlZWQ1NGI0YTMyNi4uYTlhMDU1MzY0ZDUzMWVmMmYwNDhlNGUyZjJjOWJjY2Yz
MmQ4NTNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
CkBAIC0yNDIsNyArMjQyLDcgQEAgdW5zaWduZWQgTWVtb3J5Q2FjaGU6OmxpdmVDYXBhY2l0eSgp
IGNvbnN0CiAvLyByZW1vdmUgdGhlIHVzYWdlIG9mIENGUmV0YWluKCkgaW4gTWVtb3J5Q2FjaGU6
OmFkZEltYWdlVG9DYWNoZSgpIHNvIGFzIHRvIG1ha2UgdGhlIGNvZGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQuCiBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ2FjaGVkSW1hZ2VDbGllbnQsIGNsaWVudCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDYWNoZWRJbWFnZUNsaWVu
dCwgY2xpZW50LCAoKSk7CiAgICAgcmV0dXJuIGNsaWVudDsKIH0KIApAQCAtNzMxLDcgKzczMSw3
IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4oU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbikKIHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUoU2Vj
dXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpCiB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaHR0cFN0cmluZywgKCJodHRwIikp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGh0dHBTdHJpbmcs
ICgiaHR0cCIpKTsKICNlbmRpZgogICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9u
UmVzb3VyY2VzKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVz
b3VyY2VzLnZhbHVlLT5lbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuY3BwCmluZGV4IDM5MjcyZTRkNjVmZjZmNmU2OTQ2NGRlNmRjYTY5MmU2M2I1ZGY0ZDUu
LmJkM2Q4NTllMWZlZTFiZTM3ZWM0ODM5Y2MyOTQwZjAwMTZlN2UyYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApAQCAtODkyLDcgKzg5Miw3IEBAIFN0
cmluZyBJY29uRGF0YWJhc2U6OmRhdGFiYXNlUGF0aCgpIGNvbnN0CiAKIFN0cmluZyBJY29uRGF0
YWJhc2U6OmRlZmF1bHREYXRhYmFzZUZpbGVuYW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUsIChBU0NJSUxpdGVyYWwoIldlYnBh
Z2VJY29ucy5kYiIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUsIChBU0NJSUxpdGVyYWwoIldlYnBhZ2VJY29ucy5k
YiIpKSk7CiAgICAgcmV0dXJuIGRlZmF1bHREYXRhYmFzZUZpbGVuYW1lLmlzb2xhdGVkQ29weSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cAppbmRleCBhZGI1NzBlYTdhNmQ4NGY5OGY5MjljZTQ3NzU0YjNlNmY5ODdiMGE4Li5lNDBkZjMx
YTA4NmViYjNjN2NlODcwYzUyYzM3N2ZiMDI2MjkwMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lk
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGNv
bnN0IFN0cmluZyYgb3ZlcnJpZAogdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp1cGRhdGVD
YXB0aW9uU3R5bGVTaGVldE92ZXJpZGUoKQogewogICAgIC8vIElkZW50aWZ5IG91ciBvdmVycmlk
ZSBzdHlsZSBzaGVldCB3aXRoIGEgdW5pcXVlIFVSTCAtIGEgbmV3IHNjaGVtZSBhbmQgYSBVVUlE
LgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMLCBjYXB0aW9uc1N0eWxlU2hlZXRVUkwsIChQ
YXJzZWRVUkxTdHJpbmcsICJ1c2VyLWNhcHRpb25zLW92ZXJyaWRlOjAxRjZBRjEyLUMzQjAtNEY3
MC1BRjVFLUEzRTAwMjM0REMyMyIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoVVJMLCBjYXB0aW9uc1N0eWxlU2hlZXRVUkwsIChQYXJzZWRVUkxTdHJpbmcsICJ1c2VyLWNh
cHRpb25zLW92ZXJyaWRlOjAxRjZBRjEyLUMzQjAtNEY3MC1BRjVFLUEzRTAwMjM0REMyMyIpKTsK
IAogICAgIG1fcGFnZUdyb3VwLnJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbVdvcmxkKG1haW5UaHJl
YWROb3JtYWxXb3JsZCgpLCBjYXB0aW9uc1N0eWxlU2hlZXRVUkwpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4
IDA0MjBjZTFkM2YwMDA0NjE4ODA1MGM2Yzk1YzljMDdhMTFjMWQ0NjcuLjE2ZjExNDc3YjI0MTZj
NGY3MWNmYTAwMWNlYzI2ZjgzZDM2OWY3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBAIC0yNzYsNyArMjc2LDcg
QEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpjYXB0aW9uc0JhY2tncm91
bmRDU1MoKSBjb25zdAogewogICAgIC8vIFRoaXMgZGVmYXVsdCB2YWx1ZSBtdXN0IGJlIHRoZSBz
YW1lIGFzIHRoZSBvbmUgc3BlY2lmaWVkIGluIG1lZGlhQ29udHJvbHMuY3NzIGZvciAtd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcwogICAgIC8vIGFuZCB3ZWJraXQtbWVkaWEtdGV4
dC10cmFjay1mdXR1cmUtbm9kZXMuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgZGVm
YXVsdEJhY2tncm91bmRDb2xvciwgKENvbG9yKDAsIDAsIDAsIDAuOCAqIDI1NSkpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGRlZmF1bHRCYWNrZ3JvdW5kQ29s
b3IsIChDb2xvcigwLCAwLCAwLCAwLjggKiAyNTUpKSk7CiAKICAgICBNQUNhcHRpb25BcHBlYXJh
bmNlQmVoYXZpb3IgYmVoYXZpb3I7CiAKQEAgLTM3OSwxMCArMzc5LDEwIEBAIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y29sb3JQcm9wZXJ0eUNTUyhDU1NQcm9wZXJ0eUlE
IGlkLCBjb25zdCBDCiAKIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6Y2Fw
dGlvbnNUZXh0RWRnZUNTUygpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGVkZ2VTdHlsZVJhaXNlZCwgKCIgLS4wNWVtIC0uMDVlbSAwICIsIFN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgZWRnZVN0eWxlRGVwcmVzc2VkLCAoIiAuMDVlbSAuMDVlbSAwICIsIFN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgZWRnZVN0eWxlRHJvcFNoYWRvdywgKCIgLjA3NWVtIC4wNzVlbSAwICIsIFN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgZWRnZVN0eWxlVW5pZm9ybSwgKCIgLjAzZW0gIiwgU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGVkZ2VTdHlsZVJhaXNlZCwgKCIgLS4wNWVtIC0uMDVlbSAwICIsIFN0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBlZGdlU3R5bGVEZXByZXNzZWQsICgiIC4wNWVtIC4wNWVtIDAgIiwgU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGVkZ2VTdHlsZURyb3BTaGFkb3csICgiIC4wNzVlbSAuMDc1ZW0gMCAi
LCBTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZWRnZVN0eWxlVW5pZm9ybSwgKCIgLjAzZW0gIiwg
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgYm9vbCB1bnVzZWQ7CiAgICAg
Q29sb3IgY29sb3IgPSBjYXB0aW9uc1RleHRDb2xvcih1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDY4NWJhNTg0MmM0ZjZiNmIz
ZGJlMWMwNjFhYTNiMjU5M2I5ODc4YWUuLjRkZDEyNDUzOTVkZTNmOTY4NWYyNjE5NDc5N2I0N2E4
NzBmNzJiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTEwNjEsNyArMTA2MSw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tT
b3VyY2VBbmRSZXBvcnRWaW9sYXRpb24oU291cmNlTGlzdERpcmVjdGl2ZSogZGlyZWN0CiAKIGJv
b2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIGNv
bnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxp
dGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xh
dGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNz
YWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBVUkwgYmVj
YXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRp
cmVjdGl2ZTogIikpKTsKICAgICBpZiAocmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0
eVBvbGljeTo6U2VuZFJlcG9ydCkgewogICAgICAgICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVw
b3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNv
bGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkKICAgICAgICAgICAgICAg
ICAmJiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0Tm9uY2UuZ2V0KCksIFN0
cmluZygpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpKTsKQEAgLTEw
NzMsNyArMTA3Myw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJM
cyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6CiAKIGJvb2wgQ1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKGNvbnN0IFN0cmluZyYgY29udGV4dFVS
TCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgi
UmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBldmVudCBoYW5kbGVyIGJlY2F1c2UgaXQgdmlvbGF0
ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgZXZlbnQgaGFuZGxl
ciBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAiKSkpOwogICAgIGlmIChyZXBvcnRpbmdTdGF0dXMgPT0gQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpTZW5kUmVwb3J0KSB7CiAgICAgICAgIHJldHVybiAoY2hlY2tJbmxpbmVB
bmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwg
Y29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB0cnVlKQogICAgICAgICAg
ICAgICAgICYmIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQo
KSwgU3RyaW5nKCksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSkpOwpA
QCAtMTA4NSw3ICsxMDg1LDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2
ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdAogCiBib29sIENTUERp
cmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwg
Y29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVm
dXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJ
TGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9s
YXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikp
KTsKICAgICByZXR1cm4gcmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6
U2VuZFJlcG9ydCA/CiAgICAgICAgIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJh
dGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0
VVJMLCBjb250ZXh0TGluZSwgdHJ1ZSkgOgogICAgICAgICBjaGVja0lubGluZShvcGVyYXRpdmVE
aXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpKTsKQEAgLTEwOTMsNyArMTA5Myw3IEBAIGJvb2wg
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0
VVJMLCBjb25zdCBXVEY6Ok9yCiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVT
dHlsZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYg
Y29udGV4dExpbmUsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9y
dGluZ1N0YXR1cykgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29u
c29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxl
IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkaXJlY3RpdmU6ICIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gYXBwbHkgaW5s
aW5lIHN0eWxlIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKSk7CiAgICAgcmV0dXJuIHJlcG9ydGluZ1N0YXR1cyA9
PSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlNlbmRSZXBvcnQgPwogICAgICAgICBjaGVja0lubGlu
ZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zdHlsZVNyYy5nZXQoKSks
IGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgZmFsc2UpIDoKICAgICAg
ICAgY2hlY2tJbmxpbmUob3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5bGVTcmMuZ2V0KCkpKTsKQEAg
LTExMDEsNyArMTEwMSw3IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTdHls
ZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkCiAKIGJvb2wgQ1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dFdmFsKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpSZXBvcnRpbmdTdGF0dXMgcmVwb3J0aW5nU3RhdHVzKSBjb25zdAogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJh
bCgiUmVmdXNlZCB0byBldmFsdWF0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJ
TGl0ZXJhbCgiUmVmdXNlZCB0byBldmFsdWF0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0
aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpKTsKICAg
ICByZXR1cm4gcmVwb3J0aW5nU3RhdHVzID09IENvbnRlbnRTZWN1cml0eVBvbGljeTo6U2VuZFJl
cG9ydCA/CiAgICAgICAgIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJl
Y3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgU3RyaW5nKCksIFdURjo6
T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgc3RhdGUpIDoKICAgICAgICAgY2hlY2tFdmFs
KG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpOwpAQCAtMTEwOSw3ICsxMTA5
LDcgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlIKIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0Ojph
bGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29udGV4
dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3QgVVJMJiB1
cmwpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNz
YWdlLCAoQVNDSUlMaXRlcmFsKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJlY2F1c2UgaXQg
dmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6
ICIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVz
ZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVj
dGl2ZTogIikpKTsKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGNoZWNr
Tm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQoKSwgbm9uY2UsIGNvbnNv
bGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CiAgICAgcmV0dXJuIGNoZWNrTm9u
Y2VBbmRSZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZS5nZXQoKSwgbm9uY2UsICJSZWZ1c2Vk
IHRvIGxvYWQgJyIgKyB1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkgKyAiJyBi
ZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
ZGlyZWN0aXZlOiAiLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CkBAIC0xNzcxLDEyICsxNzcx
LDEyIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3Qg
U3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBTCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpyZXBvcnRVbnN1cHBvcnRlZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFsbG93LCAoQVNDSUlMaXRlcmFs
KCJhbGxvdyIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wdGlvbnMsIChB
U0NJSUxpdGVyYWwoIm9wdGlvbnMiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBwb2xpY3lVUkksIChBU0NJSUxpdGVyYWwoInBvbGljeS11cmkiKSkpOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBhbGxvd01lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlRoZSAnYWxs
b3cnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICdkZWZhdWx0LXNyYycuIFBsZWFz
ZSB1c2UgdGhhdCBkaXJlY3RpdmUgaW5zdGVhZCwgYXMgJ2FsbG93JyBoYXMgbm8gZWZmZWN0LiIp
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9wdGlvbnNNZXNzYWdlLCAoQVND
SUlMaXRlcmFsKCJUaGUgJ29wdGlvbnMnIGRpcmVjdGl2ZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRo
ICd1bnNhZmUtaW5saW5lJyBhbmQgJ3Vuc2FmZS1ldmFsJyBzb3VyY2UgZXhwcmVzc2lvbnMgZm9y
IHRoZSAnc2NyaXB0LXNyYycgYW5kICdzdHlsZS1zcmMnIGRpcmVjdGl2ZXMuIFBsZWFzZSB1c2Ug
dGhvc2UgZGlyZWN0aXZlcyBpbnN0ZWFkLCBhcyAnb3B0aW9ucycgaGFzIG5vIGVmZmVjdC4iKSkp
OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwb2xpY3lVUklNZXNzYWdlLCAoQVND
SUlMaXRlcmFsKCJUaGUgJ3BvbGljeS11cmknIGRpcmVjdGl2ZSBoYXMgYmVlbiByZW1vdmVkIGZy
b20gdGhlIHNwZWNpZmljYXRpb24uIFBsZWFzZSBzcGVjaWZ5IGEgY29tcGxldGUgcG9saWN5IHZp
YSB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgaGVhZGVyLiIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgYWxsb3csIChBU0NJSUxpdGVyYWwoImFsbG93
IikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcHRpb25z
LCAoQVNDSUlMaXRlcmFsKCJvcHRpb25zIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBwb2xpY3lVUkksIChBU0NJSUxpdGVyYWwoInBvbGljeS11cmkiKSkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGFsbG93TWVzc2Fn
ZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdhbGxvdycgZGlyZWN0aXZlIGhhcyBiZWVuIHJlcGxhY2Vk
IHdpdGggJ2RlZmF1bHQtc3JjJy4gUGxlYXNlIHVzZSB0aGF0IGRpcmVjdGl2ZSBpbnN0ZWFkLCBh
cyAnYWxsb3cnIGhhcyBubyBlZmZlY3QuIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBvcHRpb25zTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiVGhlICdvcHRp
b25zJyBkaXJlY3RpdmUgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAndW5zYWZlLWlubGluZScgYW5k
ICd1bnNhZmUtZXZhbCcgc291cmNlIGV4cHJlc3Npb25zIGZvciB0aGUgJ3NjcmlwdC1zcmMnIGFu
ZCAnc3R5bGUtc3JjJyBkaXJlY3RpdmVzLiBQbGVhc2UgdXNlIHRob3NlIGRpcmVjdGl2ZXMgaW5z
dGVhZCwgYXMgJ29wdGlvbnMnIGhhcyBubyBlZmZlY3QuIikpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBwb2xpY3lVUklNZXNzYWdlLCAoQVNDSUlMaXRlcmFs
KCJUaGUgJ3BvbGljeS11cmknIGRpcmVjdGl2ZSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNw
ZWNpZmljYXRpb24uIFBsZWFzZSBzcGVjaWZ5IGEgY29tcGxldGUgcG9saWN5IHZpYSB0aGUgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgaGVhZGVyLiIpKSk7CiAKICAgICBTdHJpbmcgbWVzc2FnZSA9
IG1ha2VTdHJpbmcoIlVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJyIsIG5hbWUsICInLlxuIik7CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGFs
bG93KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA2MDI3Mjc1ZTI4MDRlMjMwNzU4
NDY0OGYxYTEzYTMyYTUxMmRmOWMzLi5hMTA2N2NjOWFhODdjOTI3YzQxYzZhN2QzMDMxNTc3OTA0
OGQ3MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjksMTMgKzE2OSwxMyBA
QCB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PERPTVdpbmRvdyo+IERPTVdpbmRvd1NldDsKIAogc3Rh
dGljIERPTVdpbmRvd1NldCYgd2luZG93c1dpdGhVbmxvYWRFdmVudExpc3RlbmVycygpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChET01XaW5kb3dTZXQsIHdpbmRvd3NXaXRoVW5sb2FkRXZl
bnRMaXN0ZW5lcnMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRE9N
V2luZG93U2V0LCB3aW5kb3dzV2l0aFVubG9hZEV2ZW50TGlzdGVuZXJzLCAoKSk7CiAgICAgcmV0
dXJuIHdpbmRvd3NXaXRoVW5sb2FkRXZlbnRMaXN0ZW5lcnM7CiB9CiAKIHN0YXRpYyBET01XaW5k
b3dTZXQmIHdpbmRvd3NXaXRoQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnMoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoRE9NV2luZG93U2V0LCB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2
ZW50TGlzdGVuZXJzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKERP
TVdpbmRvd1NldCwgd2luZG93c1dpdGhCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycywgKCkpOwog
ICAgIHJldHVybiB3aW5kb3dzV2l0aEJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXJzOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNzE3M2Q5YmE0OWY4Nzg1OThmNTM0
MTcxY2JlN2MzYjMxOWQ2N2E0Ni4uNWU2NTM2ZTg5YjhhMDI3ZTY4NGRjMjcwODZiYWM2MDZlNzVj
NTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzk0LDcgKzM5NCw3
IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKIERyYWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoRHJhZ1N0YXRlLCBzdGF0ZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChEcmFnU3RhdGUsIHN0YXRlLCAoKSk7CiAgICAgcmV0dXJuIHN0YXRlOwog
fQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zMDI2LDEwICszMDI2LDEwIEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
IGluaXRpYWxLZXlFdmVudCkKIAogc3RhdGljIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9u
Rm9yS2V5KGNvbnN0IEF0b21pY1N0cmluZyYga2V5SWRlbnRpZmllcikKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgRG93biwgKCJEb3duIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBVcCwgKCJVcCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgTGVmdCwgKCJMZWZ0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBSaWdodCwgKCJSaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBEb3duLCAoIkRvd24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgVXAsICgi
VXAiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgTGVmdCwgKCJMZWZ0IiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFJpZ2h0LCAoIlJpZ2h0IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCiAgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9j
dXNEaXJlY3Rpb25Ob25lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGY1NjA0NWVmMGRkZmJj
ODFmNGU2MGFlMjUzOTJlNDQ1OGMwY2NjM2MuLjIyZjM5ZGNjMzNlMGNjNjM3ZjU4MmY3MjAxNzQ0
YTRhYjQxNzkwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgc3Rh
dGljIFBhc3NPd25QdHI8SlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbj4gY3JlYXRlUmVnRXhw
Rm9yTGFiZWxzKGNvbnN0IFZlY3QKICAgICAvLyBSRVZJRVctIHZlcnNpb24gb2YgdGhpcyBjYWxs
IGluIEZyYW1lTWFjLm1tIGNhY2hlcyBiYXNlZCBvbiB0aGUgTlNBcnJheSBwdHJzIGJlaW5nCiAg
ICAgLy8gdGhlIHNhbWUgYWNyb3NzIGNhbGxzLiAgV2UgY2FuJ3QgZG8gdGhhdC4KIAotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoSlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbiwgd29yZFJlZ0V4
cCwgKCJcXHciLCBUZXh0Q2FzZVNlbnNpdGl2ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uLCB3b3JkUmVnRXhwLCAoIlxc
dyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CiAgICAgU3RyaW5nIHBhdHRlcm4oIigiKTsKICAgICB1
bnNpZ25lZCBpbnQgbnVtTGFiZWxzID0gbGFiZWxzLnNpemUoKTsKICAgICB1bnNpZ25lZCBpbnQg
aTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCmluZGV4IGViMmY4ZjdjYzExNzE0
ZWUzMTY5NTZhMGViMDgzZWUwOGYxMWZlOTYuLjIyYmEzNTNhMmEwOGVmZGZkMDZhMGVlMzdjZGUy
N2JlZTNhNjZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtOTQs
NyArOTQsNyBAQCBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cGxhdGZvcm0oKSBjb25zdAogICAgIGlm
ICghU3RyaW5nKFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNKS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STTsKICAgICBzdHJ1Y3QgdXRzbmFtZSBv
c25hbWU7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHBsYXRmb3JtTmFtZSwgKHVu
YW1lKCZvc25hbWUpID49IDAgPyBTdHJpbmcob3NuYW1lLnN5c25hbWUpICsgU3RyaW5nKCIgIikg
KyBTdHJpbmcob3NuYW1lLm1hY2hpbmUpIDogZW1wdHlTdHJpbmcoKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHBsYXRmb3JtTmFtZSwgKHVuYW1lKCZvc25h
bWUpID49IDAgPyBTdHJpbmcob3NuYW1lLnN5c25hbWUpICsgU3RyaW5nKCIgIikgKyBTdHJpbmco
b3NuYW1lLm1hY2hpbmUpIDogZW1wdHlTdHJpbmcoKSkpOwogICAgIHJldHVybiBwbGF0Zm9ybU5h
bWU7CiAjZWxzZQogICAgIHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCmluZGV4IGIwNmIwYjg1ZjE0
ZjE4YWRiOGU5Y2FlMjg1ZWMxNjRkOTBmNGJkYTEuLmYzNTI1MTY4YTY5NTljMDM2MWZkMGVhMWIz
YTk0OTZkNzhiYzEwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2li
aWxpdHlTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0
YXRlLmNwcApAQCAtMzcsOSArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBw
YWdlVmlzaWJpbGl0eVN0YXRlU3RyaW5nKFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsIChBU0NJSUxpdGVy
YWwoInZpc2libGUiKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBo
aWRkZW4sIChBU0NJSUxpdGVyYWwoImhpZGRlbiIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHByZXJlbmRlciwgKEFTQ0lJTGl0ZXJhbCgicHJlcmVuZGVyIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aXNpYmxl
LCAoQVNDSUlMaXRlcmFsKCJ2aXNpYmxlIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBoaWRkZW4sIChBU0NJSUxpdGVyYWwoImhpZGRlbiIpKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcHJlcmVu
ZGVyLCAoQVNDSUlMaXRlcmFsKCJwcmVyZW5kZXIiKSkpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkg
ewogICAgIGNhc2UgUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKaW5kZXggZTJhZjQzZWQ4NDFlN2U2OTZj
N2U5OWM0NDg4MTllODA5MmI1MTVhYi4uZTA3NDM0YzIzYzY4YzU2NTQyZjAwMTI3ZjVkOWMzNWVh
MGU0MGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJU
aW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5n
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgewogdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgTmF2aWdhdGlvblRpbWluZ0Z1bmN0aW9uPiBSZXN0cmljdGVkS2V5TWFwOwogc3RhdGljIFJl
c3RyaWN0ZWRLZXlNYXAgcmVzdHJpY3RlZEtleU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChSZXN0cmljdGVkS2V5TWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoUmVzdHJpY3RlZEtleU1hcCwgbWFwLCAoKSk7CiAgICAgaWYgKG1hcC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbWFwLmFkZCgibmF2aWdhdGlvblN0YXJ0IiwgJlBlcmZvcm1hbmNl
VGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQpOwogICAgICAgICBtYXAuYWRkKCJ1bmxvYWRFdmVudFN0
YXJ0IiwgJlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggYmE0MzhkMDQzYjEzYzk1NTNkZDZhYzE0ZDZh
ZDRhYWRlNjczYjViZS4uMjZiYWJjZGJjNmFiODRhOWI2Y2Y2NDlmZWI0MTgyMDcxZmU3NDE0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTYwMCw3ICs2MDAsNyBA
QCBib29sIFNlY3VyaXR5T3JpZ2luOjppc1NhbWVTY2hlbWVIb3N0UG9ydChjb25zdCBTZWN1cml0
eU9yaWdpbiogb3RoZXIpIGNvbnN0CiBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OnVybFdpdGhVbmlx
dWVTZWN1cml0eU9yaWdpbigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdW5pcXVlU2VjdXJpdHlPcmlnaW5VUkws
IChBU0NJSUxpdGVyYWwoImRhdGE6LCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgdW5pcXVlU2VjdXJpdHlPcmlnaW5VUkwsIChBU0NJSUxpdGVy
YWwoImRhdGE6LCIpKSk7CiAgICAgcmV0dXJuIHVuaXF1ZVNlY3VyaXR5T3JpZ2luVVJMOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDlkMTg4NzlmNjIyMTJk
MGQ5NTE1N2NiZWU5MDgxOTFmZDBkYzEzNjYuLmQyMjBlN2U2ZWE0ZTdhZGU5NGEyYWM0OTYzYWI5
MjhlZmZhYmQzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xp
Y3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCkBAIC00
Niw3ICs0Niw3IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIE93blB0cjxPcmlnaW5BY2Nlc3NX
aGl0ZUxpc3Q+PiBPcmlnaW5BY2Nlc3NNYXA7CiAKIHN0YXRpYyBPcmlnaW5BY2Nlc3NNYXAmIG9y
aWdpbkFjY2Vzc01hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChPcmlnaW5BY2Nlc3NN
YXAsIG9yaWdpbkFjY2Vzc01hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChPcmlnaW5BY2Nlc3NNYXAsIG9yaWdpbkFjY2Vzc01hcCwgKCkpOwogICAgIHJldHVybiBv
cmlnaW5BY2Nlc3NNYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmNwcAppbmRleCBmZGFlZDFlNTA5YjUxMDJmOTJlMmJmZTRhNjIwMDM2NDc3OGVk
MjYyLi44M2ExYjRjNmIxOGYzM2RkYzZhZjY4YTUyNzJmNmY1NzI2YzU3M2EzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCkBAIC02NCw3ICs2NCw3
IEBAIGJvb2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAKIGJvb2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJu
OjpwYXJzZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHNjaGVtZVNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiOi8vIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzY2hlbWVT
ZXBhcmF0b3IsIChBU0NJSUxpdGVyYWwoIjovLyIpKSk7CiAKICAgICBzaXplX3Qgc2NoZW1lRW5k
UG9zID0gcGF0dGVybi5maW5kKHNjaGVtZVNlcGFyYXRvcik7CiAgICAgaWYgKHNjaGVtZUVuZFBv
cyA9PSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCBmZWY3MDJmMDJhMzY4MzU4ZDUxZjNhNDY0
MzQyYmI1M2VkOGU0YjkyLi5lZDhhZGRlMGI5NDRjN2I0M2ZjNjhhZjFmYmQzOTlkNjEzNGQ2NWI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFu
aW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCkBAIC01ODQsMTEgKzU4NCwxMSBAQCBzdGF0aWMgaW5saW5lIHNpemVf
dCBzaGFkb3dMaXN0TGVuZ3RoKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKIAogc3RhdGljIGlu
bGluZSBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3dGb3JCbGVuZGluZyhjb25zdCBTaGFkb3dEYXRh
KiBzcmNTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIG90aGVyU2hhZG93KQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFNoYWRvd0RhdGEsIChJbnRQb2ludCgp
LCAwLCAwLCBOb3JtYWwsIGZhbHNlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFNoYWRvd0RhdGEsIGRlZmF1bHRJbnNldFNoYWRvd0RhdGEsIChJbnRQb2lu
dCgpLCAwLCAwLCBJbnNldCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0U2hhZG93RGF0YSwg
KEludFBvaW50KCksIDAsIDAsIE5vcm1hbCwgZmFsc2UsIENvbG9yOjp0cmFuc3BhcmVudCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5z
ZXRTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIGZhbHNlLCBDb2xvcjo6dHJh
bnNwYXJlbnQpKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVs
dFdlYktpdEJveFNoYWRvd0RhdGEsIChJbnRQb2ludCgpLCAwLCAwLCBOb3JtYWwsIHRydWUsIENv
bG9yOjp0cmFuc3BhcmVudCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2hhZG93RGF0YSwg
ZGVmYXVsdEluc2V0V2ViS2l0Qm94U2hhZG93RGF0YSwgKEludFBvaW50KCksIDAsIDAsIEluc2V0
LCB0cnVlLCBDb2xvcjo6dHJhbnNwYXJlbnQpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoU2hhZG93RGF0YSwgZGVmYXVsdFdlYktpdEJveFNoYWRvd0RhdGEsIChJbnRQb2lu
dCgpLCAwLCAwLCBOb3JtYWwsIHRydWUsIENvbG9yOjp0cmFuc3BhcmVudCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTaGFkb3dEYXRhLCBkZWZhdWx0SW5zZXRXZWJLaXRC
b3hTaGFkb3dEYXRhLCAoSW50UG9pbnQoKSwgMCwgMCwgSW5zZXQsIHRydWUsIENvbG9yOjp0cmFu
c3BhcmVudCkpOwogCiAgICAgaWYgKHNyY1NoYWRvdykKICAgICAgICAgcmV0dXJuIHNyY1NoYWRv
dzsKQEAgLTEwODAsNyArMTA4MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ1NTUHJvcGVydHlB
bmltYXRpb25XcmFwcGVyTWFwJiBpbnN0YW5jZSgpCiAgICAgewogICAgICAgICAvLyBGSVhNRTog
VGhpcyBkYXRhIGlzIG5ldmVyIGRlc3Ryb3llZC4gTWF5YmUgd2Ugc2hvdWxkIHJlZiBjb3VudCBp
dCBhbmQgdG9zcyBpdCB3aGVuIHRoZSBsYXN0IEFuaW1hdGlvbkNvbnRyb2xsZXIgaXMgZGVzdHJv
eWVkPwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE93blB0cjxDU1NQcm9wZXJ0eUFuaW1h
dGlvbldyYXBwZXJNYXA+LCBtYXAsICgpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKE93blB0cjxDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA+LCBtYXAsICgp
KTsKICAgICAgICAgaWYgKCFtYXApCiAgICAgICAgICAgICBtYXAgPSBhZG9wdFB0cihuZXcgQ1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKTsKICAgICAgICAgcmV0dXJuICptYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNw
cAppbmRleCAxYzk1ZDkwMTk3ZTM3ODBkZTBlOTc4ZGU0YzBkNzhjNWFmNzU0MzhlLi41Zjk3MDY2
YThiYmFiZDI4M2U5N2NkOWUwNWM0YWIxMjk1YmFhMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTIyNiw3ICsy
MjYsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25z
KFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBSZW5kZQogICAgICAgICAvLyBUb3NzIHRoZSBhbmlt
YXRpb24gb3JkZXIgbWFwLgogICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9uT3JkZXJNYXAuY2xl
YXIoKTsKIAotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
bm9uZSwgKCJub25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBu
b25lLCAoIm5vbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
ICAgIAogICAgICAgICAvLyBOb3cgbWFyayBhbnkgc3RpbGwgYWN0aXZlIGFuaW1hdGlvbnMgYXMg
YWN0aXZlIGFuZCBhZGQgYW55IG5ldyBhbmltYXRpb25zLgogICAgICAgICBpZiAodGFyZ2V0U3R5
bGUtPmFuaW1hdGlvbnMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5jcHAKaW5kZXggMzBl
MjY5YjBiMzIwMzVmZGM4ODc5NjJiMzBkZWE1ZDljODk2MDhlMC4uMTkwYzdlNTk5YzQwZDg3OTFh
OGIyZGY4Zjg0M2QxYjdkNThkMDdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCkBA
IC0xODgsMjU5ICsxODgsMjU5IEBAIFBsYXRmb3JtQ3Vyc29yIEN1cnNvcjo6cGxhdGZvcm1DdXJz
b3IoKSBjb25zdAogCiBjb25zdCBDdXJzb3ImIHBvaW50ZXJDdXJzb3IoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpQb2ludGVyKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6UG9pbnRlcikpOwog
ICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNyb3NzQ3Vyc29yKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q3Jvc3MpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDcm9zcykpOwog
ICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGhhbmRDdXJzb3IoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpIYW5kKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6SGFuZCkpOwogICAg
IHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG1vdmVDdXJzb3IoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpNb3ZlKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6TW92ZSkpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHZlcnRpY2FsVGV4dEN1cnNvcigpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlZlcnRpY2FsVGV4dCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlZl
cnRpY2FsVGV4dCkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNlbGxDdXJz
b3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpDZWxs
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNv
cjo6Q2VsbCkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNvbnRleHRNZW51
Q3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6
Q29udGV4dE1lbnUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpDb250ZXh0TWVudSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBD
dXJzb3ImIGFsaWFzQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwg
YywgKEN1cnNvcjo6QWxpYXMpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpBbGlhcykpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBD
dXJzb3ImIHpvb21JbkN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Olpvb21JbikpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6Olpvb21JbikpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIHpvb21PdXRDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpab29tT3V0KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Wm9vbU91dCkpOwogICAgIHJldHVybiBjOwogfQog
CiBjb25zdCBDdXJzb3ImIGNvcHlDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Q3Vyc29yLCBjLCAoQ3Vyc29yOjpDb3B5KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Q29weSkpOwogICAgIHJldHVybiBjOwogfQogCiBj
b25zdCBDdXJzb3ImIG5vbmVDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpOb25lKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9uZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIHByb2dyZXNzQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1
cnNvciwgYywgKEN1cnNvcjo6UHJvZ3Jlc3MpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpQcm9ncmVzcykpOwogICAgIHJldHVybiBjOwog
fQogCiBjb25zdCBDdXJzb3ImIG5vRHJvcEN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vRHJvcCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vRHJvcCkpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIG5vdEFsbG93ZWRDdXJzb3IoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpOb3RBbGxvd2VkKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm90QWxsb3dlZCkp
OwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGlCZWFtQ3Vyc29yKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6SUJlYW0pKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpJQmVhbSkp
OwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHdhaXRDdXJzb3IoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpXYWl0KSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2FpdCkpOwog
ICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGhlbHBDdXJzb3IoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpIZWxwKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6SGVscCkpOwogICAg
IHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RSZXNpemVDdXJzb3IoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0UmVzaXplKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFz
dFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoUmVzaXpl
Q3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6
Tm9ydGhSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29y
LCBjLCAoQ3Vyc29yOjpOb3J0aFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBD
dXJzb3ImIG5vcnRoRWFzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFJlc2l6ZSkp
OwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoV2VzdFJlc2l6ZUN1cnNv
cigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRo
V2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Ok5vcnRoV2VzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25z
dCBDdXJzb3ImIHNvdXRoUmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhSZXNpemUpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aFJlc2l6ZSkpOwogICAgIHJl
dHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoRWFzdFJlc2l6
ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OlNvdXRoRWFzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3Im
IHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFJlc2l6ZSkpOwogICAg
IHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIHdlc3RSZXNpemVDdXJzb3IoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpXZXN0UmVzaXplKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6V2Vz
dFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoU291dGhS
ZXNpemVDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vy
c29yOjpOb3J0aFNvdXRoUmVzaXplKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhTb3V0aFJlc2l6ZSkpOwogICAgIHJldHVybiBj
OwogfQogCiBjb25zdCBDdXJzb3ImIGVhc3RXZXN0UmVzaXplQ3Vyc29yKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFdlc3RSZXNpemUpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpFYXN0
V2VzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoRWFz
dFNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoRWFzdFNvdXRo
V2VzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIG5vcnRoV2Vz
dFNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJz
b3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6Ok5vcnRoV2VzdFNvdXRo
RWFzdFJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBjb25zdCBDdXJzb3ImIGNvbHVtblJl
c2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJz
b3I6OkNvbHVtblJlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChD
dXJzb3IsIGMsIChDdXJzb3I6OkNvbHVtblJlc2l6ZSkpOwogICAgIHJldHVybiBjOwogfQogCiBj
b25zdCBDdXJzb3ImIHJvd1Jlc2l6ZUN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6OlJvd1Jlc2l6ZSkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlJvd1Jlc2l6ZSkpOwogICAgIHJldHVy
biBjOwogfQogCiBjb25zdCBDdXJzb3ImIG1pZGRsZVBhbm5pbmdDdXJzb3IoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpNaWRkbGVQYW5uaW5nKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6TWlk
ZGxlUGFubmluZykpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3QgQ3Vyc29yJiBlYXN0
UGFubmluZ0N1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChD
dXJzb3I6OkVhc3RQYW5uaW5nKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6RWFzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAg
ICAKIGNvbnN0IEN1cnNvciYgbm9ydGhQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhQYW5uaW5nKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhQYW5uaW5n
KSk7CiAgICAgcmV0dXJuIGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIG5vcnRoRWFzdFBhbm5p
bmdDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29y
OjpOb3J0aEVhc3RQYW5uaW5nKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhFYXN0UGFubmluZykpOwogICAgIHJldHVybiBjOwog
fQogICAgIAogY29uc3QgQ3Vyc29yJiBub3J0aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6Tm9ydGhXZXN0UGFubmluZykp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6
Ok5vcnRoV2VzdFBhbm5pbmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNv
ciYgc291dGhQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNv
ciwgYywgKEN1cnNvcjo6U291dGhQYW5uaW5nKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhQYW5uaW5nKSk7CiAgICAgcmV0dXJu
IGM7CiB9CiAgICAgCiBjb25zdCBDdXJzb3ImIHNvdXRoRWFzdFBhbm5pbmdDdXJzb3IoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpTb3V0aEVhc3RQYW5u
aW5nKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvciwgYywgKEN1
cnNvcjo6U291dGhFYXN0UGFubmluZykpOwogICAgIHJldHVybiBjOwogfQogICAgIAogY29uc3Qg
Q3Vyc29yJiBzb3V0aFdlc3RQYW5uaW5nQ3Vyc29yKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEN1cnNvciwgYywgKEN1cnNvcjo6U291dGhXZXN0UGFubmluZykpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMsIChDdXJzb3I6OlNvdXRoV2VzdFBhbm5p
bmcpKTsKICAgICByZXR1cm4gYzsKIH0KICAgICAKIGNvbnN0IEN1cnNvciYgd2VzdFBhbm5pbmdD
dXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBjLCAoQ3Vyc29yOjpX
ZXN0UGFubmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3Is
IGMsIChDdXJzb3I6Oldlc3RQYW5uaW5nKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1
cnNvciYgZ3JhYkN1cnNvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDdXJzb3IsIGMs
IChDdXJzb3I6OkdyYWIpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ3Vy
c29yLCBjLCAoQ3Vyc29yOjpHcmFiKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKIGNvbnN0IEN1cnNv
ciYgZ3JhYmJpbmdDdXJzb3IoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ3Vyc29yLCBj
LCAoQ3Vyc29yOjpHcmFiYmluZykpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChDdXJzb3IsIGMsIChDdXJzb3I6OkdyYWJiaW5nKSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAppbmRleCA4YjE4OTkxMTk2MTAxNmY5YzczNjcw
ZjZiZjExYjZlZGRlNTE2NTM3Li5mNTY4M2QwMzdjN2I3MzVkYmI2YjBiZWIyMWI2ZTBlZDhmMWZm
MTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCkBAIC0zOSw3ICszOSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlckZ1bmN0aW9uPiBPYnNlcnZlck1hcDsKIHN0YXRpYyBPYnNlcnZlck1hcCYgb2Jz
ZXJ2ZXJNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoT2JzZXJ2ZXJNYXAsIG1hcCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPYnNlcnZlck1hcCwgbWFw
LCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApAQCAtNzIsNyArNzIsNyBAQCBTdHJpbmcgZGVm
YXVsdExhbmd1YWdlKCkKIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFn
ZXNPdmVycmlkZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3RyaW5nPiwg
b3ZlcnJpZGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9y
PFN0cmluZz4sIG92ZXJyaWRlLCAoKSk7CiAgICAgcmV0dXJuIG92ZXJyaWRlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAppbmRleCA1NTI0YmZjM2I2Y2IwYmE4MDQ0MWI0M2UzZDBk
NDljMTc2OThlMTI5Li5kYzA1NzlmMGNhZDQzM2FjNDExMmJkYWY1OWE5ODljZGJiN2YwYzlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCBwcml2YXRl
OgogICAgIAogc3RhdGljIENhbGN1bGF0aW9uVmFsdWVIYW5kbGVNYXAmIGNhbGNIYW5kbGVzKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENhbGN1bGF0aW9uVmFsdWVIYW5kbGVNYXAsIGhh
bmRsZU1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChDYWxjdWxh
dGlvblZhbHVlSGFuZGxlTWFwLCBoYW5kbGVNYXAsICgpKTsKICAgICByZXR1cm4gaGFuZGxlTWFw
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmlu
ZGV4IDZiYzRkNWFiYTdiZWQxNzI0MWQyMTA0NTNhNjRhYTM2YWRjMWY0YmQuLjNlOTExNDIwNDQx
MmEwMTA5ODFiZDcyZDBhYmE3ZWFhZmI3ZjU2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBTdHJpbmcg
dHJ1bmNhdGVkU3RyaW5nRm9yTG9va3VwTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBvcmlnaW5hbCkK
IAogICAgIC8vIFRydW5jYXRlIHRoZSBzdHJpbmcgaWYgaXQncyB0b28gbG9uZy4gVGhpcyBpcyBp
biBjb25zaXN0ZW5jeSB3aXRoIEFwcEtpdC4KICAgICB1bnNpZ25lZCBtYXhOdW1iZXJPZkdyYXBo
ZW1lQ2x1c3RlcnNJbkxvb2t1cE1lbnVJdGVtID0gMjQ7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGVsbGlwc2lzLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVsbGlwc2lzLCAoJmhvcml6b250YWxF
bGxpcHNpcywgMSkpOwogCiAgICAgU3RyaW5nIHRyaW1tZWQgPSBvcmlnaW5hbC5zdHJpcFdoaXRl
U3BhY2UoKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYXJhY3RlcnMgPSBudW1DaGFyYWN0ZXJz
SW5HcmFwaGVtZUNsdXN0ZXJzKHRyaW1tZWQsIG1heE51bWJlck9mR3JhcGhlbWVDbHVzdGVyc0lu
TG9va3VwTWVudUl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmNwcAppbmRleCA4MzNhMDI4NDQ1NjI3ZWJiYTJmODNjOTY5MTNmOTdhYTIxNTRiZmEyLi41
ODk1ZTg0OGZhYjZhMzM4ZjhhNDVmOWI4MGRjMjVmNmI0ODQwN2EwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMzkyLDcgKzM5Miw3IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWROb25JbWFnZU1pbWVUeXBlcygpCiAKIHN0YXRp
YyBNZWRpYU1JTUVUeXBlTWFwJiBtZWRpYU1JTUVUeXBlTWFwKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKE1lZGlhTUlNRVR5cGVNYXAsIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFNSU1FVHlwZU1h
cCwgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcCwgKCkpOwogCiAgICAgaWYgKCFtZWRpYU1J
TUVUeXBlRm9yRXh0ZW5zaW9uTWFwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1lZGlhTUlN
RVR5cGVGb3JFeHRlbnNpb25NYXA7CkBAIC02OTMsNyArNjkzLDcgQEAgSGFzaFNldDxTdHJpbmc+
JiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRVbnN1cHBvcnRlZFRleHRNSU1FVHlwZXMoKQogCiBjb25z
dCBTdHJpbmcmIGRlZmF1bHRNSU1FVHlwZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGRlZmF1bHRNSU1FVHlwZSwgKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBkZWZhdWx0TUlNRVR5cGUsIChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbSIpKSk7CiAgICAgcmV0dXJuIGRlZmF1bHRNSU1FVHlwZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXgg
NzEyOTM2NmE1OGRmMWIwODVhNmUxNTNhZTA3MDlmZWU3NmQ3Mzg2MS4uNzQ0ZTIxMDJmOWYxMTBl
MzljYjgxOGUyNmE2ZDNlNTQ1YmIyZTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogTWVtb3J5UHJlc3N1cmVIYW5kbGVyJiBtZW1vcnlQcmVzc3VyZUhhbmRs
ZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTWVtb3J5UHJlc3N1cmVIYW5kbGVyLCBz
dGF0aWNNZW1vcnlQcmVzc3VyZUhhbmRsZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoTWVtb3J5UHJlc3N1cmVIYW5kbGVyLCBzdGF0aWNNZW1vcnlQcmVzc3VyZUhh
bmRsZXIsICgpKTsKICAgICByZXR1cm4gc3RhdGljTWVtb3J5UHJlc3N1cmVIYW5kbGVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXggY2M4Zjk1
ZDIyNGZkY2NkMjAzMzUyYTU2NTVkNjBlYzM4MjhiMjI5OS4uMjQ3M2Y1N2EzY2NjZDg3ZjE2MWU1
YTJmMTVlMGQ2NWUwNzcwOTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJl
Z2lzdHJ5LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBVUkxTY2hlbWVzTWFwJiBsb2NhbFVSTFNjaGVtZXMoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoVVJMU2NoZW1lc01hcCwgbG9jYWxTY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGxvY2FsU2NoZW1lcywgKCkpOwogCiAg
ICAgaWYgKGxvY2FsU2NoZW1lcy5pc0VtcHR5KCkpIHsKICAgICAgICAgbG9jYWxTY2hlbWVzLmFk
ZCgiZmlsZSIpOwpAQCAtNDYsMTMgKzQ2LDEzIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBsb2Nh
bFVSTFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgZGlzcGxheUlzb2xhdGVkVVJM
U2NoZW1lcygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBkaXNw
bGF5SXNvbGF0ZWRTY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFVSTFNjaGVtZXNNYXAsIGRpc3BsYXlJc29sYXRlZFNjaGVtZXMsICgpKTsKICAgICByZXR1
cm4gZGlzcGxheUlzb2xhdGVkU2NoZW1lczsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNl
Y3VyZVNjaGVtZXMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwg
c2VjdXJlU2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChV
UkxTY2hlbWVzTWFwLCBzZWN1cmVTY2hlbWVzLCAoKSk7CiAKICAgICBpZiAoc2VjdXJlU2NoZW1l
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5hZGQoImh0dHBzIik7CkBAIC02
NSw3ICs2NSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzZWN1cmVTY2hlbWVzKCkKIAogc3Rh
dGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucygpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwg
c2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLCAoKSk7CiAKICAgICBpZiAoc2NoZW1lc1dpdGhVbmlx
dWVPcmlnaW5zLmlzRW1wdHkoKSkgewogICAgICAgICBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMu
YWRkKCJhYm91dCIpOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2No
ZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGVtcHR5RG9j
dW1lbnRTY2hlbWVzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAs
IGVtcHR5RG9jdW1lbnRTY2hlbWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFVSTFNjaGVtZXNNYXAsIGVtcHR5RG9jdW1lbnRTY2hlbWVzLCAoKSk7CiAKICAgICBp
ZiAoZW1wdHlEb2N1bWVudFNjaGVtZXMuaXNFbXB0eSgpKQogICAgICAgICBlbXB0eURvY3VtZW50
U2NoZW1lcy5hZGQoImFib3V0Iik7CkBAIC05MCwxMyArOTAsMTMgQEAgc3RhdGljIFVSTFNjaGVt
ZXNNYXAmIGVtcHR5RG9jdW1lbnRTY2hlbWVzKCkKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiYg
c2NoZW1lc0ZvcmJpZGRlbkZyb21Eb21haW5SZWxheGF0aW9uKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgc2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNjaGVtZXMsICgpKTsKICAgICBy
ZXR1cm4gc2NoZW1lczsKIH0KIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIGNhbkRpc3BsYXlPbmx5
SWZDYW5SZXF1ZXN0U2NoZW1lcygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hl
bWVzTWFwLCBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNjaGVtZXMsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgY2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3RTY2hlbWVzLCAoKSk7CiAKICNpZiBFTkFCTEUoQkxPQikKICAgICBpZiAoY2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzLmlzRW1wdHkoKSkgewpAQCAtMTA5LDcgKzEw
OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdFNj
aGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJM
c1NjaGVtZXMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90
QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1Nj
aGVtZXMsICgpKTsKICAgICByZXR1cm4gbm90QWxsb3dpbmdKYXZhc2NyaXB0VVJMc1NjaGVtZXM7
CiB9CiAKQEAgLTEzNiwyMCArMTM2LDIwIEBAIGNvbnN0IFVSTFNjaGVtZXNNYXAmIFNjaGVtZVJl
Z2lzdHJ5Ojpsb2NhbFNjaGVtZXMoKQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc0Fs
bG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdl
QWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNz
SW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKICAgICByZXR1cm4gc2NoZW1lc0FsbG93aW5nTG9jYWxT
dG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3Npbmc7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFw
JiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNBbGxvd2luZ0RhdGFi
YXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJ
blByaXZhdGVCcm93c2luZywgKCkpOwogICAgIHJldHVybiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFz
ZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01hcCYgQ09S
U0VuYWJsZWRTY2hlbWVzKCkKIHsKICAgICAvLyBGSVhNRTogaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNjAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVt
ZXNNYXAsIENPUlNFbmFibGVkU2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBDT1JTRW5hYmxlZFNjaGVtZXMsICgpKTsKIAogICAg
IGlmIChDT1JTRW5hYmxlZFNjaGVtZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENPUlNFbmFibGVk
U2NoZW1lcy5hZGQoImh0dHAiKTsKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgQ09SU0VuYWJsZWRTY2hlbWVzKCkKIAogc3RhdGljIFVSTFNjaGVtZXNNYXAmIENvbnRl
bnRTZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVtZXMoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoVVJMU2NoZW1lc01hcCwgc2NoZW1lcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzLCAoKSk7CiAgICAgcmV0dXJuIHNj
aGVtZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJh
clRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmNwcApp
bmRleCBjMzc0ZDJiYmRkZTFmNTAwN2YyMjBiODEwZTEzYmMwOWVjODRmOTRhLi44ZWQyZDk1OTk3
YjU0YzAzOWY3MGI0NmI1YmIyNDc5ZGU3MGNlZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYmFyVGhlbWUuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIFNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKQogewogICAgIGlmIChT
ZXR0aW5nczo6bW9ja1Njcm9sbGJhcnNFbmFibGVkKCkpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTY3JvbGxiYXJUaGVtZU1vY2ssIG1vY2tUaGVtZSwgKCkpOworICAgICAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2Nyb2xsYmFyVGhlbWVNb2NrLCBtb2NrVGhlbWUs
ICgpKTsKICAgICAgICAgcmV0dXJuICZtb2NrVGhlbWU7CiAgICAgfQogICAgIHJldHVybiBuYXRp
dmVUaGVtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKaW5kZXggOWI3NGVhYTE3OGM3M2Y5ODUw
YjNjMGIyZWI3YTNiMmM1NTg5MGRhZi4uNGQ5MjU1Nzg5ZmMwYWFkYjkzNzkxMzRkOTQyNWMxNmE4
NjIxMzNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCkBAIC0xNzgzLDcgKzE3ODMsNyBAQCBi
b29sIHByb3RvY29sSXNJbkhUVFBGYW1pbHkoY29uc3QgU3RyaW5nJiB1cmwpCiAKIGNvbnN0IFVS
TCYgYmxhbmtVUkwoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMLCBzdGF0aWNCbGFu
a1VSTCwgKFBhcnNlZFVSTFN0cmluZywgImFib3V0OmJsYW5rIikpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChVUkwsIHN0YXRpY0JsYW5rVVJMLCAoUGFyc2VkVVJMU3RyaW5n
LCAiYWJvdXQ6YmxhbmsiKSk7CiAgICAgcmV0dXJuIHN0YXRpY0JsYW5rVVJMOwogfQogCkBAIC0x
Nzk4LDcgKzE3OTgsNyBAQCBib29sIGlzRGVmYXVsdFBvcnRGb3JQcm90b2NvbCh1bnNpZ25lZCBz
aG9ydCBwb3J0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCB1bnNpZ25lZCwgQ2FzZUZvbGRpbmdIYXNo
PiBEZWZhdWx0UG9ydHNNYXA7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChEZWZhdWx0UG9ydHNN
YXAsIGRlZmF1bHRQb3J0cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChEZWZhdWx0UG9ydHNNYXAsIGRlZmF1bHRQb3J0cywgKCkpOwogICAgIGlmIChkZWZhdWx0UG9y
dHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRlZmF1bHRQb3J0cy5zZXQoImh0dHAiLCA4MCk7CiAg
ICAgICAgIGRlZmF1bHRQb3J0cy5zZXQoImh0dHBzIiwgNDQzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKaW5kZXggMzMzZjFkODI4NDM0OTMw
MjA4NjIwZjdiNzZjMGNmNjNjM2RmOWIzOC4uM2I3Y2EzNDVkYTUzYmM0OWU0M2I1Y2NkMzRjMThh
NDU2MGM1MWUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9u
L0FuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbi5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBib29sIEFuaW1hdGlvbjo6YW5pbWF0aW9u
c01hdGNoKGNvbnN0IEFuaW1hdGlvbiogbywgYm9vbCBtYXRjaFBsYXlTdGF0ZXMpIGNvbnN0CiAK
IGNvbnN0IFN0cmluZyYgQW5pbWF0aW9uOjppbml0aWFsQW5pbWF0aW9uTmFtZSgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGluaXRpYWxWYWx1ZSwgKEFTQ0lJTGl0ZXJhbCgi
bm9uZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW5p
dGlhbFZhbHVlLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsKICAgICByZXR1cm4gaW5pdGlhbFZh
bHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9u
LmNwcAppbmRleCBkZWM4NjYyMzVlNjE3YmNjYzVkODVhN2ZhNjA1NmJlZDA0MzcyMjQ3Li5lMjAy
MTQ4NGM4MzNiMmJjOWI0MWY2NDY4ZTQ1M2ZiOGY4NzM3N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb1Nlc3Npb24mIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vz
c2lvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb1Nlc3Npb24sIHNlc3Npb24s
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9TZXNzaW9uLCBz
ZXNzaW9uLCAoKSk7CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5jcHAKaW5kZXggMDI2ODcyYzM0NDgyNjNl
MmI5MGE0MTA2MTgxNGJkNDVjZmQ1MmQ3ZS4uN2JkMGYyZDRmY2JjZTc5MmYxNTMxNTAwZjk5Mjc2
NjA3OGQ2YzY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJU
RkVsZXZhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVs
ZXZhdGlvbi5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgY29uc3QgZmxvYXQgUmVzcG9uc2VTYW1wbGVS
YXRlID0gNDQxMDA7CiBzdGF0aWMgQXVkaW9CdXMqIGdldENvbmNhdGVuYXRlZEltcHVsc2VSZXNw
b25zZXNGb3JTdWJqZWN0KGNvbnN0IFN0cmluZyYgc3ViamVjdE5hbWUpCiB7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPFN0cmluZywgQXVkaW9CdXMqPiBBdWRpb0J1c01hcDsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF1ZGlvQnVzTWFwLCBhdWRpb0J1c01hcCwgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChBdWRpb0J1c01hcCwgYXVkaW9CdXNNYXAsICgpKTsKIAogICAg
IEF1ZGlvQnVzKiBidXM7CiAgICAgQXVkaW9CdXNNYXA6Oml0ZXJhdG9yIGl0ZXJhdG9yID0gYXVk
aW9CdXNNYXAuZmluZChzdWJqZWN0TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDBkYmYzZjBhMzc4YWM4
NjM2ODZmNzAwNGI0MGU3NjdkNGEyZjE1NGQuLjY3N2MzZjlhMzA5ZmE1M2U3NDExOTAzMDUxNDg0
OGQ3NmZkNTJjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNpZiAhUExBVEZPUk0oSU9TKQogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChN
ZWRpYVNlc3Npb25NYW5hZ2VyLCBtYW5hZ2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKE1lZGlhU2Vzc2lvbk1hbmFnZXIsIG1hbmFnZXIsICgpKTsKICAgICByZXR1
cm4gbWFuYWdlcjsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwCmluZGV4IGQ3MTBjYmY0MGE2
NGUxMjUyMzczNjc5MzYyYzZhMTMxN2FmY2UyM2QuLjlhNmVmMTBlZTBiZGFlYTc2N2E2ZDViOWZk
NGQwMWQ4YmVhN2ViZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgY29u
c3QgaW50IGtQcmVmZXJyZWRCdWZmZXJTaXplID0gMjU2OwogdHlwZWRlZiBIYXNoU2V0PEF1ZGlv
RGVzdGluYXRpb25JT1MqPiBBdWRpb0Rlc3RpbmF0aW9uU2V0Owogc3RhdGljIEF1ZGlvRGVzdGlu
YXRpb25TZXQmIGF1ZGlvRGVzdGluYXRpb25zKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF1ZGlvRGVzdGluYXRpb25TZXQsIGF1ZGlvRGVzdGluYXRpb25TZXQsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXVkaW9EZXN0aW5hdGlvblNldCwgYXVkaW9EZXN0
aW5hdGlvblNldCwgKCkpOwogICAgIHJldHVybiBhdWRpb0Rlc3RpbmF0aW9uU2V0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9u
TWFuYWdlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tCmluZGV4IGVhZjk3NmVlYTI4YjI3YWUzMzliYzRhYWIyNTk3Y2Nk
NzUwMGVlMWIuLmE0ZjQzMmZkNzAwYzRkZjBjMGY4ZTRkNDA0YTI1OThlMjk1NTgzNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5h
Z2VySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNl
c3Npb25NYW5hZ2VySU9TLm1tCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogTWVkaWFTZXNzaW9uTWFuYWdlciYgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVNlc3Npb25NYW5hZ2VyaU9TLCBt
YW5hZ2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1lZGlhU2Vz
c2lvbk1hbmFnZXJpT1MsIG1hbmFnZXIsICgpKTsKICAgICByZXR1cm4gbWFuYWdlcjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNw
cAppbmRleCA1ZGMwOTFhYmZlZmU1NjM4ZWZhNWQ5MWJmOGEyMTFmZWQwMjI4OTJiLi42NDM3ZWIy
ZDRjMzI4YjUyOGM0ZDZiNDQzMTQ0MjBhMDQ5OTYzZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcApAQCAtOTcsNyArOTcsNyBA
QCBDdXJzb3JNYXA6OkN1cnNvck1hcCgpCiAKIGludCBnZXRFY29yZUN1cnNvcihjb25zdCBTdHJp
bmcmIGN1cnNvclN0cmluZykKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEN1cnNvck1hcCwg
Y3Vyc29yU3RyaW5nTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEN1cnNvck1hcCwgY3Vyc29yU3RyaW5nTWFwLCAoKSk7CiAKICAgICByZXR1cm4gY3Vyc29yU3Ry
aW5nTWFwLmN1cnNvcihjdXJzb3JTdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKaW5kZXgg
ZmQ3NTdjMzgwYmRlZmNiZjcxZWI2NWIxYWFjMzM2NTQ1ODBhY2E3YS4uYTdjOGM0NzlmYWIzNWQz
YTZjMGJmMTk4OGMwNWNkOTZlZmNmOTZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCkBAIC0xMzMs
NyArMTMzLDcgQEAgdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRSZWZyZXNo
KCkKIAogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlciogRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLCBtYW5hZ2VyLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIsIG1hbmFnZXIs
ICgpKTsKICAgICByZXR1cm4gJm1hbmFnZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKaW5kZXggZjU3NmRmMDgwMjIyMjgzZjMxYzM3Y2ZjNjMzNDMwMDQy
Y2Y2NDQ4My4uZmQ0NDBlMDFlZGZmMjBhZjY5NThhYWNmZWE4OTgzMDdlZDY0MmQ5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTIzNCw3ICsyMzQsNyBA
QCBzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRHbHlwaHNDYWNoZUtleSYgYSwgY29u
c3QgRm9udEdseXBoc0NhY2hlS2V5JiBiKQogCiBzdGF0aWMgRm9udEdseXBoc0NhY2hlJiBmb250
R2x5cGhzQ2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udEdseXBoc0NhY2hl
LCBjYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250R2x5
cGhzQ2FjaGUsIGNhY2hlLCAoKSk7CiAgICAgcmV0dXJuIGNhY2hlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCAwYjFjNDA3MDll
MzQ3M2ZjYjdjZjc3MGVhNGEwODgxNGZiYjM0ZDAxLi5iMjdhMTIxOTU4YTM0ZTBhYWI2NWFkZWJh
MjgwOWE3OTNjOWNlMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8g
RklYTUU6IFdlIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIg
c2luY2Ugd2UgbmV2ZXIgcmV0dXJuIGEgbnVsbHB0ci4KIEZvbnRDYWNoZSogZm9udENhY2hlKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRDYWNoZSwgZ2xvYmFsRm9udENhY2hlLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRDYWNoZSwgZ2xvYmFs
Rm9udENhY2hlLCAoKSk7CiAgICAgcmV0dXJuICZnbG9iYWxGb250Q2FjaGU7CiB9CiAKQEAgLTI4
NSw3ICsyODUsNyBAQCBzdHJ1Y3QgRm9udFZlcnRpY2FsRGF0YUNhY2hlS2V5VHJhaXRzIDogV1RG
OjpHZW5lcmljSGFzaFRyYWl0czxGb250Q2FjaGU6OkZvbnRGaQogICAgIHN0YXRpYyBjb25zdCBi
b29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdCBGb250Q2FjaGU6
OkZvbnRGaWxlS2V5JiBlbXB0eVZhbHVlKCkKICAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNf
TE9DQUwoRm9udENhY2hlOjpGb250RmlsZUtleSwga2V5LCAobnVsbEF0b20pKTsKKyAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRDYWNoZTo6Rm9udEZpbGVLZXksIGtl
eSwgKG51bGxBdG9tKSk7CiAgICAgICAgIHJldHVybiBrZXk7CiAgICAgfQogICAgIHN0YXRpYyB2
b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShGb250Q2FjaGU6OkZvbnRGaWxlS2V5JiBzbG90KQpA
QCAtMzAyLDcgKzMwMiw3IEBAIHR5cGVkZWYgSGFzaE1hcDxGb250Q2FjaGU6OkZvbnRGaWxlS2V5
LCBSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERhdGE+LCBGb250VmVydGljCiAKIEZvbnRWZXJ0aWNh
bERhdGFDYWNoZSYgZm9udFZlcnRpY2FsRGF0YUNhY2hlSW5zdGFuY2UoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoRm9udFZlcnRpY2FsRGF0YUNhY2hlLCBmb250VmVydGljYWxEYXRhQ2Fj
aGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udFZlcnRpY2Fs
RGF0YUNhY2hlLCBmb250VmVydGljYWxEYXRhQ2FjaGUsICgpKTsKICAgICByZXR1cm4gZm9udFZl
cnRpY2FsRGF0YUNhY2hlOwogfQogCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RydWN0IEZvbnREYXRh
Q2FjaGVLZXlUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPEZvbnRQbGF0Zm9ybURhdGE+
IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBz
dGF0aWMgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgZW1wdHlWYWx1ZSgpCiAgICAgewotICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnRQbGF0Zm9ybURhdGEsIGtleSwgKDAuZiwgZmFsc2Us
IGZhbHNlKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250UGxh
dGZvcm1EYXRhLCBrZXksICgwLmYsIGZhbHNlLCBmYWxzZSkpOwogICAgICAgICByZXR1cm4ga2V5
OwogICAgIH0KICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoRm9udFBsYXRm
b3JtRGF0YSYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENv
bnRleHQuY3BwCmluZGV4IDgyNzUyYWU5ZGNkYWNkNWZlZTM0YWMyYjg5MmFhZDg4YjRhZTBjNTEu
LjhhOTNmNWYxNzAwYzIxMGYxNzhmOTU5MzNlMWY1MDJlYWI0OGJjNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtNjgsNyArNjgsNyBA
QCBpbmxpbmUgVGhyZWFkR2xvYmFsR0xDb250ZXh0KiBjdXJyZW50Q29udGV4dCgpCiAKIEdMQ29u
dGV4dCogR0xDb250ZXh0OjpzaGFyaW5nQ29udGV4dCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChPd25QdHI8R0xDb250ZXh0Piwgc2hhcmluZywgKGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQo
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPd25QdHI8R0xDb250ZXh0
Piwgc2hhcmluZywgKGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoKSkpOwogICAgIHJldHVybiBzaGFy
aW5nLmdldCgpOwogfQogCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBHTENvbnRleHQ6OmNsZWFu
dXBTaGFyZWRYMTFEaXNwbGF5KCkKIHR5cGVkZWYgVmVjdG9yPEdMQ29udGV4dCo+IEFjdGl2ZUNv
bnRleHRMaXN0Owogc3RhdGljIEFjdGl2ZUNvbnRleHRMaXN0JiBhY3RpdmVDb250ZXh0TGlzdCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBY3RpdmVDb250ZXh0TGlzdCwgYWN0aXZlQ29u
dGV4dHMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQWN0aXZlQ29u
dGV4dExpc3QsIGFjdGl2ZUNvbnRleHRzLCAoKSk7CiAgICAgcmV0dXJuIGFjdGl2ZUNvbnRleHRz
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwCmluZGV4IGQzNDYzMDMxNDMzNjg0M2YyMmU1NGY2YmVlMDYwYThmNWQyNjc2Njcu
LjQyNDI3Y2Y1ZjM2MWUzMzVmMTYwNzU3YzAwZjA3NmYxNDMyOGU5YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC00Nyw3
ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBHcmFw
aGljc0xheWVyKiwgVmVjdG9yPEZsb2F0UmVjdD4+IFJlcGFpbnRNYXA7CiBzdGF0aWMgUmVwYWlu
dE1hcCYgcmVwYWludFJlY3RNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVwYWlu
dE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlcGFp
bnRNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCBlNmZhY2RhODBkYzMw
NWJmOGJjZjM2MjVmM2JiYmE4Mzc1YjllZWVmLi4xYzAyODZjMjQxZGZlOTZmYjU1YmYwZTQ5MTRm
Yzk3MjY3OWZiYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuY3BwCkBAIC0zNSw4ICszNSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNp
ZiAhVVNFKENHKQogdm9pZCBJbWFnZUJ1ZmZlcjo6dHJhbnNmb3JtQ29sb3JTcGFjZShDb2xvclNw
YWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxpbnQ+LCBkZXZpY2VSZ2JMVVQsICgpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxpbnQ+LCBsaW5lYXJSZ2JMVVQsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPGludD4sIGRldmljZVJnYkxVVCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8aW50PiwgbGluZWFy
UmdiTFVULCAoKSk7CiAKICAgICBpZiAoc3JjQ29sb3JTcGFjZSA9PSBkc3RDb2xvclNwYWNlKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKaW5kZXggMzI4NDRhMzNiNGVhZDhkZjJjM2RhNDRkN2UzYzM2YTUyZmFl
NGFjOC4uNzQ3ODQ2MjZkMGEwNDllZjNiY2MyYjZkZDA2MmE1ZmRkMTI0OTEwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTk0
LDcgKzE5NCw3IEBAIHN0YXRpYyBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVuZ2luZShN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpOwogZW51bSBSZXF1ZXJ5RW5naW5lT3B0aW9ucyB7
IERvTm90UmVzZXRFbmdpbmVzLCBSZXNldEVuZ2luZXMgfTsKIHN0YXRpYyBWZWN0b3I8TWVkaWFQ
bGF5ZXJGYWN0b3J5Kj4mIGluc3RhbGxlZE1lZGlhRW5naW5lcyhSZXF1ZXJ5RW5naW5lT3B0aW9u
cyByZXF1ZXJ5RmxhZ3MgPSBEb05vdFJlc2V0RW5naW5lcyApCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5Kj4sIGluc3RhbGxlZEVuZ2luZXMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPE1lZGlhUGxheWVy
RmFjdG9yeSo+LCBpbnN0YWxsZWRFbmdpbmVzLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgZW5naW5l
c1F1ZXJpZWQgPSBmYWxzZTsKIAogICAgIGlmIChyZXF1ZXJ5RmxhZ3MgPT0gUmVzZXRFbmdpbmVz
KSB7CkBAIC0yNTAsMTkgKzI1MCwxOSBAQCBzdGF0aWMgdm9pZCBhZGRNZWRpYUVuZ2luZShDcmVh
dGVNZWRpYUVuZ2luZVBsYXllciBjb25zdHJ1Y3RvciwgTWVkaWFFbmdpbmVTdXBwbwogCiBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhcHBsaWNhdGlvbk9jdGV0U3RyZWFtKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXBwbGljYXRpb25PY3RldFN0
cmVhbSwgKCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYXBwbGljYXRpb25PY3RldFN0cmVhbSwgKCJhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIGFwcGxpY2F0aW9uT2N0ZXRTdHJlYW07CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHRleHRQbGFpbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHRleHRQbGFpbiwgKCJ0ZXh0L3BsYWluIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB0ZXh0UGxhaW47CiB9CiAKIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIGNvZGVjcygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGNvZGVjcywgKCJjb2RlY3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgY29kZWNzLCAoImNvZGVjcyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gY29kZWNzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IDExYTVmOWYwMmQ2
NGQ1MzUyZmY5YjBmYWU4NjIzOTMyMmMwYjlkMzcuLmMyYjJiOTU5MTYwY2QwMDZjNmIyMDM5YmZi
YmNkZjkzN2Q4Y2U2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NoYWRvd0JsdXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NoYWRvd0JsdXIuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgcHJpdmF0ZToKIAogU2NyYXRjaEJ1
ZmZlciYgU2NyYXRjaEJ1ZmZlcjo6c2hhcmVkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFNjcmF0Y2hCdWZmZXIsIHNjcmF0Y2hCdWZmZXIsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEJ1ZmZlciwgKCkpOwogICAgIHJl
dHVybiBzY3JhdGNoQnVmZmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA4YmQ5YTYxY2Iw
Zjc5ZWQ2YTI1Y2EyZGUyMDkyODNhMzAxMTA4ZmI3Li5hZDhjNDMyNTMxODliMDllNjk0MTUxZTUy
MDk1ZGJhYjJlZTE2ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTIzMiwyMSArMjMyLDIxIEBA
IHN0YXRpYyBDRkFycmF5UmVmIG1ldGFkYXRhS2V5TmFtZXMoKQogLy8gRklYTUU6IEl0IHdvdWxk
IGJlIGJldHRlciBpZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhpcyBrZXku
CiBzdGF0aWMgQ0ZTdHJpbmdSZWYgQ01UaW1lUmFuZ2VTdGFydEtleSgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChDRlN0cmluZ1JlZiwga2V5LCAoQ0ZTVFIoInN0YXJ0IikpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJpbmdSZWYsIGtleSwgKENGU1RSKCJz
dGFydCIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJl
dHRlciBpZiBBVkNGVGltZWRNZXRhZGF0YUdyb3VwLmggZXhwb3J0ZWQgdGhpcyBrZXkuCiBzdGF0
aWMgQ0ZTdHJpbmdSZWYgQ01UaW1lUmFuZ2VEdXJhdGlvbktleSgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChDRlN0cmluZ1JlZiwga2V5LCAoQ0ZTVFIoImR1cmF0aW9uIikpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ0ZTdHJpbmdSZWYsIGtleSwgKENGU1RSKCJk
dXJhdGlvbiIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogLy8gRklYTUU6IEl0IHdvdWxkIGJl
IGJldHRlciBpZiBBVkNGIGV4cG9ydGVkIHRoaXMgbm90aWZpY2F0aW9uIG5hbWUuCiBzdGF0aWMg
Q0ZTdHJpbmdSZWYgQ0FDRkNvbnRleHROZWVkc0ZsdXNoTm90aWZpY2F0aW9uKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKENGU3RyaW5nUmVmLCBuYW1lLCAoQ0ZTVFIoImtDQUNGQ29udGV4
dE5lZWRzRmx1c2hOb3RpZmljYXRpb24iKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChDRlN0cmluZ1JlZiwgbmFtZSwgKENGU1RSKCJrQ0FDRkNvbnRleHROZWVkc0ZsdXNo
Tm90aWZpY2F0aW9uIikpKTsKICAgICByZXR1cm4gbmFtZTsKIH0KIApAQCAtODE2LDcgKzgxNiw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50CiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWlt
ZVR5cGVDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4s
IGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8
U3RyaW5nPiwgY2FjaGUsICgpKTsKICAgICBzdGF0aWMgYm9vbCB0eXBlTGlzdEluaXRpYWxpemVk
ID0gZmFsc2U7CiAKICAgICBpZiAodHlwZUxpc3RJbml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IDgyZTMwNjI5NzQwNGIyYzJmZWM2ZDE0OGY2ZmQ0Mzc0OWUwY2IwZTAuLmM4
NGMzODk2MjlmYTJlY2Q1NzAzNzk2MjM1ODNlNWQ0ZGIzMDNhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpib29sU3RyaW5n
KGJvb2wgdmFsKQogdHlwZWRlZiBIYXNoTWFwPE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQyo+IFBsYXllclRvUHJpdmF0ZU1hcFR5cGU7CiBzdGF0aWMgUGxh
eWVyVG9Qcml2YXRlTWFwVHlwZSYgcGxheWVyVG9Qcml2YXRlTWFwKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFBsYXllclRvUHJpdmF0ZU1hcFR5cGUsIG1hcCwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbGF5ZXJUb1ByaXZhdGVNYXBUeXBlLCBtYXAsICgp
KTsKICAgICByZXR1cm4gbWFwOwogfTsKICNlbmRpZgpAQCAtMTExOCw3ICsxMTE4LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhJbWFnZUdlbmVy
YXRvcihHcmFwaGljc0NvbnRleHQKIAogc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNh
Y2hlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+
LCBjYWNoZSwgKCkpOwogICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKIAogICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCmluZGV4IDQxNzMzZTBkODNjNzM0NjRhN2QyODdlNGUwNzcyM2IxMzliNGRmNzMuLmRiOTdm
Mjg3MTcwZWQ3ODhjNzg3NzM4ODBmMGRjMjBjMmUyNTI3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KQEAgLTE5MSw3ICsxOTEsNyBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6aXNBdmFpbGFibGUoKQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1p
bWVUeXBlQ2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+
LCBjYWNoZSwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFN0cmluZz4sIGNhY2hlLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXpl
ZCA9IGZhbHNlOwogCiAgICAgaWYgKHR5cGVMaXN0SW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFu
Z2VzRmx1c2hlci5jcHAKaW5kZXggZmQ0NGFhMDYzYTI5YzA0MGZhOWMwMDk1MmYxOWQ4YWI1MWFk
YjVlNy4uNjBiYmZlOTkwOTAxYTQ1YzM1ZmFkZTcxZjBiZjNiYzMxMjhhMTUwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0Zs
dXNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9M
YXllckNoYW5nZXNGbHVzaGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIExheWVyQ2hhbmdlc0ZsdXNoZXImIExheWVyQ2hhbmdlc0ZsdXNoZXI6OnNoYXJlZCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChMYXllckNoYW5nZXNGbHVzaGVyLCBmbHVzaGVy
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExheWVyQ2hhbmdlc0Zs
dXNoZXIsIGZsdXNoZXIsICgpKTsKICAgICByZXR1cm4gZmx1c2hlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJCYWNraW5n
U3RvcmVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmNwcAppbmRleCA2YmE3MmU2YjEyYzc3NTUzZDRkMjlh
N2U4NDQxZDBiNWUwZGUxOWZhLi4yZTJlMDNiZGQxZGRlODI0ODczMmNmNmRkNzliNjM1MzhiYTc4
ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlLmNwcApAQCAtODAsNyAr
ODAsNyBAQCBJbWFnZUJ1ZmZlckJhY2tpbmdTdG9yZUNhY2hlOjpJbWFnZUJ1ZmZlckJhY2tpbmdT
dG9yZUNhY2hlKCkKIAogSW1hZ2VCdWZmZXJCYWNraW5nU3RvcmVDYWNoZSYgSW1hZ2VCdWZmZXJC
YWNraW5nU3RvcmVDYWNoZTo6Z2V0KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdl
QnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUsIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEltYWdlQnVmZmVyQmFja2luZ1N0b3JlQ2FjaGUsIGNhY2hlLCAoKSk7
CiAgICAgcmV0dXJuIGNhY2hlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCmluZGV4IDI0OTQ5YjkzYWU5
YzU1MTE0YzExNWFiODQxMjNkNzMxZDg2MjY2YTkuLjgwODgzMGI4Yjg1N2JkMjg2YjgzZmU4ZDQ0
YzQ2YTk0MTcwOTdhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0dXaW4uY3BwCkBAIC01MCw3ICs1MCw3IEBAIFN0cmlu
ZyBwcmVmZXJyZWRFeHRlbnNpb25Gb3JJbWFnZVNvdXJjZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IFN0cmluZ01hcDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ01hcCwg
VVRJTWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZ01h
cCwgVVRJTWFwLCAoKSk7CiAgICAgaWYgKFVUSU1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgVVRJ
TWFwLmFkZCgicHVibGljLmh0bWwiLCAiaHRtbCIpOwogICAgICAgICBVVElNYXAuYWRkKCJwdWJs
aWMuanBlZyIsICJqcGVnIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCmluZGV4IGYyODZjOTU2MjZkNDE4ODI4
NzVhMDc2NmNmZTJkYWQ4YjI0OGI2MzcuLjg2ZWM2OWVmNzQ3ODg1ZGI0OTZjNDY3OTgzNTliYmMx
YWZmYTRjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvU291cmNlQWxwaGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhc3NSZWZQdHI8
U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIpCiAKIGNvbnN0
IEF0b21pY1N0cmluZyYgU291cmNlQWxwaGE6OmVmZmVjdE5hbWUoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzX2VmZmVjdE5hbWUsICgiU291cmNlQWxw
aGEiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc19lZmZlY3ROYW1lLCAo
IlNvdXJjZUFscGhhIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
IHJldHVybiBzX2VmZmVjdE5hbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCmluZGV4IDVlZWJm
MmNlZWE1NGQ1ZDRlNmJmNGNkODgwYWUwOGY4YTYwZDJhNzguLjcyZmI1ZDMzYjkwYTRkODUyOTUz
ODBjNmU2Y2NhNWFkNjZiYjBjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlR3JhcGhpYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcApAQCAtMzcsNyArMzcs
NyBAQCBQYXNzUmVmUHRyPFNvdXJjZUdyYXBoaWM+IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZShGaWx0
ZXIqIGZpbHRlcikKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VHcmFwaGljOjplZmZlY3RO
YW1lKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc19l
ZmZlY3ROYW1lLCAoIlNvdXJjZUdyYXBoaWMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgc19lZmZlY3ROYW1lLCAoIlNvdXJjZUdyYXBoaWMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfZWZmZWN0TmFtZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9T
aGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAKaW5kZXggOGI5OGU3ODA1MTA0MDllYWIwNDExYjAw
ZTVlMzY2OWI1NzZjYzQyMi4uNzNmM2UyMTJiNTA1MThkODAzNjk2Y2EwMzg0MTZkZmYyZGM1MGJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHBy
aXZhdGU6CiAKIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IFNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0RJbXBsLCBpbXBsLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNESW1wbCwgaW1wbCwgKCkpOwogICAgIHJldHVybiBp
bXBsLmdldE9yQ3JlYXRlQ29udGV4dCgpOwogfQogCkBAIC04OCw3ICs4OCw3IEBAIGVudW0gQ29u
dGV4dE9wZXJhdGlvbiB7CiAKIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBn
ZXRPckNyZWF0ZUNvbnRleHRGb3JJbXBsVGhyZWFkKENvbnRleHRPcGVyYXRpb24gb3ApCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTaGFyZWRHcmFwaGljc0NvbnRleHQzREltcGwsIGltcGws
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0RJbXBsLCBpbXBsLCAoKSk7CiAgICAgcmV0dXJuIG9wID09IENyZWF0ZSA/IGltcGwu
Y3JlYXRlQ29udGV4dCgpIDogaW1wbC5nZXRDb250ZXh0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmlsdGVyQ29udGV4dE9w
ZW5DTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvb3BlbmNsL0Zp
bHRlckNvbnRleHRPcGVuQ0wuY3BwCmluZGV4IGNiYTY2Njk4NTVmYzFhYmUwMjZjYzk4YWQ3NmYz
MWQ0NjljYWU0N2IuLjZhYTA1MDMxMDRhODU3NTJmNWVjZjgwZGM0Nzc4MGM5ZjMxZDEzZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9vcGVuY2wvRmls
dGVyQ29udGV4dE9wZW5DTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L29wZW5jbC9GaWx0ZXJDb250ZXh0T3BlbkNMLmNwcApAQCAtMTc4LDggKzE3OCw4IEBA
IGlubGluZSBib29sIEZpbHRlckNvbnRleHRPcGVuQ0w6OmNvbXBpbGVUcmFuc2Zvcm1Db2xvclNw
YWNlUHJvZ3JhbSgpCiAKIHZvaWQgRmlsdGVyQ29udGV4dE9wZW5DTDo6b3BlbkNMVHJhbnNmb3Jt
Q29sb3JTcGFjZShPcGVuQ0xIYW5kbGUmIHNvdXJjZSwgSW50UmVjdCBzb3VyY2VTaXplLCBDb2xv
clNwYWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKE9wZW5DTEhhbmRsZSwgZGV2aWNlUmdiTFVULCAoKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChPcGVuQ0xIYW5kbGUsIGxpbmVhclJnYkxVVCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPcGVuQ0xIYW5kbGUsIGRldmljZVJnYkxV
VCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChPcGVuQ0xIYW5kbGUs
IGxpbmVhclJnYkxVVCwgKCkpOwogCiAgICAgaWYgKHNyY0NvbG9yU3BhY2UgPT0gZHN0Q29sb3JT
cGFjZSB8fCBpbkVycm9yKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMGM0ZWRiZWMxMDkyOTUwNjQ1MTFh
ODIwNDE2MDI0YjJmODZiMDI1NS4uNDRiZWEzMmViZmJmNjRkOGNmY2I0OThiMTk3NGQ0MmRlYTdj
MzQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKQEAgLTE2NTAsNyArMTY1MCw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVD
YWNoZSgpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckFuZFJlZ2lzdGVyV2ViS2l0RWxlbWVu
dHMoKTsKIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBjYWNoZSwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4s
IGNhY2hlLCAoKSk7CiAgICAgc3RhdGljIGJvb2wgdHlwZUxpc3RJbml0aWFsaXplZCA9IGZhbHNl
OwogCiAgICAgaWYgKHR5cGVMaXN0SW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAppbmRl
eCBlZmM5NGYzZjkwZjA1Yjk0NGQ2M2Y0M2ZhMmM5NGE1NWQzNTQ2ZWRiLi5iNWIzMWZjMTljZjE1
NGZmOWI0OWU3NDhjZjI1NTRiYTk1MzViNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKQEAgLTc0
LDcgKzc0LDcgQEAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RmFjZUNhY2hlRW50
cnk+LCBXVEY6OkludEhhc2g8dWludDY0X3Q+LCBXVEY6OlUKIAogc3RhdGljIEhhcmZCdXp6RmFj
ZUNhY2hlKiBoYXJmQnV6ekZhY2VDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXJmQnV6ekZhY2VDYWNoZSwgc19oYXJmQnV6ekZhY2VDYWNoZSwgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXJmQnV6ekZhY2VDYWNoZSwgc19oYXJmQnV6ekZhY2VD
YWNoZSwgKCkpOwogICAgIHJldHVybiAmc19oYXJmQnV6ekZhY2VDYWNoZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0K
aW5kZXggNzljZjVjMWFjYjZjZTY1NjkxZWM3Mjc1NjJiNWM0ZjZhMDdjOThhYy4uYzM0OGI4MDIy
ZmY3MjkwMzFlNGY3Y2UzMjhiMzcxOTczNzFjMTlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCkBAIC0xNjYsNyArMTY2
LDcgQEAgUGFzc1JlZlB0cjxTaW1wbGVGb250RGF0YT4gRm9udENhY2hlOjpzaW1pbGFyRm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHQKICAgICAgICAgaWYgKGZhbWlseS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgc3RhdGljIFN0cmluZyogbWF0Y2hX
b3Jkc1szXSA9IHsgbmV3IFN0cmluZygiQXJhYmljIiksIG5ldyBTdHJpbmcoIlBhc2h0byIpLCBu
ZXcgU3RyaW5nKCJVcmR1IikgfTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGdlZXphU3RyLCAoIkdlZXphIFBybyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgZ2VlemFTdHIsICgiR2VlemEgUHJvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOwogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDMgJiYgIXNpbXBsZUZv
bnREYXRhOyArK2opCiAgICAgICAgICAgICBpZiAoZmFtaWx5LmNvbnRhaW5zKCptYXRjaFdvcmRz
W2pdLCBmYWxzZSkpCiAgICAgICAgICAgICAgICAgc2ltcGxlRm9udERhdGEgPSBnZXRDYWNoZWRG
b250RGF0YShkZXNjcmlwdGlvbiwgZ2VlemFTdHIpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NS
ZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNoZTo6c2ltaWxhckZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0CiAKIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IEZvbnRDYWNo
ZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgU2hvdWxkUmV0YWluIHNob3VsZFJldGFpbikKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgdGltZXNTdHIsICgiVGltZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICAvLyBGSVhNRTogV291bGQgYmUgZXZlbiBiZXR0ZXIg
dG8gc29tZWhvdyBnZXQgdGhlIHVzZXIncyBkZWZhdWx0IGZvbnQgaGVyZS4gIEZvciBub3cgd2Un
bGwgcGljawogICAgIC8vIHRoZSBkZWZhdWx0IHRoYXQgdGhlIHVzZXIgd291bGQgZ2V0IHdpdGhv
dXQgY2hhbmdpbmcgYW55IHByZWZzLgpAQCAtMTg4LDcgKzE4OCw3IEBAIFBhc3NSZWZQdHI8U2lt
cGxlRm9udERhdGE+IEZvbnRDYWNoZTo6Z2V0TGFzdFJlc29ydEZhbGxiYWNrRm9udChjb25zdCBG
b250RGVzY3JpCiAgICAgLy8gdGhlIHVzZXIgZG9lc24ndCBoYXZlIGl0LCB3ZSBmYWxsIGJhY2sg
b24gTHVjaWRhIEdyYW5kZSBiZWNhdXNlIHRoYXQncwogICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUg
dGhlcmUsIGFjY29yZGluZyB0byBOYXRoYW4gVGF5bG9yLiBUaGlzIGlzIGdvb2QgZW5vdWdoCiAg
ICAgLy8gdG8gYXZvaWQgYSBjcmFzaCBhdCBsZWFzdC4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgbHVjaWRhR3JhbmRlU3RyLCAoIkx1Y2lkYSBHcmFuZGUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgbHVjaWRhR3JhbmRlU3RyLCAoIkx1Y2lkYSBHcmFuZGUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIGdldENh
Y2hlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgbHVjaWRhR3JhbmRlU3RyLCBmYWxzZSwgc2hv
dWxkUmV0YWluKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDkzZDlh
ODJlYjgzMTdiZmNiOTE1NWMwYzU1NmJjMzcxN2E2M2E1N2EuLjg4MmM0NzAzYjgyZjA5OGQxOTIy
ZWE0ZGFiMzQ1N2MxMDViMzc4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAg
LTE0MDYsNyArMTQwNiw3IEBAIHN0YXRpYyB2b2lkIGFkZEZpbGVUeXBlc1RvQ2FjaGUoTlNBcnJh
eSAqIGZpbGVUeXBlcywgSGFzaFNldDxTdHJpbmc+ICZjYWNoZSkKIAogc3RhdGljIEhhc2hTZXQ8
U3RyaW5nPiBtaW1lQ29tbW9uVHlwZXNDYWNoZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgpKTsKICAgICBzdGF0aWMgYm9vbCB0
eXBlTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIXR5cGVMaXN0SW5pdGlhbGl6
ZWQpIHsKQEAgLTE0MjAsNyArMTQyMCw3IEBAIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZUNv
bW1vblR5cGVzQ2FjaGUoKQogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IG1pbWVNb2Rlcm5UeXBl
c0NhY2hlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2Fj
aGUsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJp
bmc+LCBjYWNoZSwgKCkpOwogICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBm
YWxzZTsKICAgICAKICAgICBpZiAoIXR5cGVMaXN0SW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5k
ZXggNDc1NWUzMDc3ZDJiOThkODYyZjNlNGZhNmJiNzMyY2Q2NGZiNTVmYy4uYTQ1N2I4ODM2ZDZi
Mzk1ZWM4YjhjNzM1NDJjZTkxYTVkNzA2NGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTMwNyw3ICszMDcs
NyBAQCBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRhPiBGb250Q2FjaGU6OmZvbnREYXRhRnJvbURl
c2NyaXB0aW9uQW5kTG9nRm9udChjb25zdCBGbwogCiBQYXNzUmVmUHRyPFNpbXBsZUZvbnREYXRh
PiBGb250Q2FjaGU6OmdldExhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIFNob3VsZFJldGFpbiBzaG91bGRSZXRhaW4pCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZhbGxiYWNrRm9udE5hbWUsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmYWxsYmFj
a0ZvbnROYW1lLCAoKSk7CiAgICAgaWYgKCFmYWxsYmFja0ZvbnROYW1lLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIGdldENhY2hlZEZvbnREYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFsbGJhY2tG
b250TmFtZSwgZmFsc2UsIHNob3VsZFJldGFpbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5k
ZXggOWJjOGQ1YzI3NzBmYTVhMDAwOTljMTg4YmM0N2NhNTE2ZGZmYjc3MS4uZTg4ZDU4Mjc3MGM3
MjI5YzM0NjE5NDg1ZGUzMGU4ZDU1MWYwYTBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAg
LTE1Nyw3ICsxNTcsNyBAQCBzdHJ1Y3QgRml4ZWRTaXplRm9udERhdGFLZXlUcmFpdHMgOiBXVEY6
OkdlbmVyaWNIYXNoVHJhaXRzPEZpeGVkU2l6ZUZvbnREYXRhS2V5PgogICAgIHN0YXRpYyBjb25z
dCBib29sIGVtcHR5VmFsdWVJc1plcm8gPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdCBGaXhlZFNp
emVGb250RGF0YUtleSYgZW1wdHlWYWx1ZSgpCiAgICAgewotICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEZpeGVkU2l6ZUZvbnREYXRhS2V5LCBrZXksIChudWxsQXRvbSkpOworICAgICAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRml4ZWRTaXplRm9udERhdGFLZXksIGtleSwg
KG51bGxBdG9tKSk7CiAgICAgICAgIHJldHVybiBrZXk7CiAgICAgfQogICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShGaXhlZFNpemVGb250RGF0YUtleSYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCmluZGV4IDM3Zjg0OTgwYmE0
ODM0ZjcxMGNjY2JlZTcyOWJlZDg1OWVhNzU0ZjQuLmVlMzYyMGQ0MjU0YThlMDJlNjEzMzQ3OTcx
NGQ5YTE0MTM0MDU4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
YW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRz
R3RrLmNwcApAQCAtMjE2LDcgKzIxNiw3IEBAIGdib29sZWFuIEdhbWVwYWRzR3RrOjppc0dhbWVw
YWREZXZpY2UoR1VkZXZEZXZpY2UqIGRldmljZSkKIAogdm9pZCBzYW1wbGVHYW1lcGFkcyhHYW1l
cGFkTGlzdCogaW50bykKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEdhbWVwYWRzR3RrLCBn
YW1lcGFkc0d0aywgKGludG8tPmxlbmd0aCgpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEdhbWVwYWRzR3RrLCBnYW1lcGFkc0d0aywgKGludG8tPmxlbmd0aCgpKSk7CiAg
ICAgZ2FtZXBhZHNHdGsudXBkYXRlR2FtZXBhZExpc3QoaW50byk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvS2V5QmluZGluZ1RyYW5zbGF0b3IuY3BwCmluZGV4
IGM2MjFmZDM0YzI0YjhjZGE1MWQyZmQxYTdhOWUxYmY2NDUyZDQzNTYuLjdhMWM0NGUxOWQ4NDQy
MGJkZWYyMmUxMzk3YjQzODY1Yjc3MTFmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9LZXlCaW5kaW5nVHJhbnNsYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0tleUJpbmRpbmdUcmFuc2xhdG9yLmNwcApAQCAtMjEzLDggKzIxMyw4IEBA
IHZvaWQgS2V5QmluZGluZ1RyYW5zbGF0b3I6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQo
R2RrRXZlbnRLZXkqIGV2ZW50LCBFdmVuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEludENvbnN0Q2hhckhhc2hNYXAsIGtleURvd25Db21tYW5kc01h
cCwgKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW50Q29uc3RDaGFySGFzaE1hcCwga2V5
UHJlc3NDb21tYW5kc01hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChJbnRDb25zdENoYXJIYXNoTWFwLCBrZXlEb3duQ29tbWFuZHNNYXAsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW50Q29uc3RDaGFySGFzaE1hcCwga2V5UHJlc3ND
b21tYW5kc01hcCwgKCkpOwogCiAgICAgaWYgKGtleURvd25Db21tYW5kc01hcC5pc0VtcHR5KCkp
IHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhrZXlEb3du
RW50cmllcyk7IGkrKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkSGVscGVyLmNwcAppbmRleCA4OWI5ZmJhOGRkYTdjNjcxYjI5ZDUxYWM5YzhjMzY0ODk1YTA3
MWMyLi5kZDRhYTBkNWZjNGUwYzBiMjIxNmVlOTJkMTFiZjdmOWFjMWQ1OTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCkBAIC03Myw3
ICs3Myw3IEBAIHN0YXRpYyB2b2lkIGluaXRHZGtBdG9tcygpCiAKIFBhc3RlYm9hcmRIZWxwZXIq
IFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFBhc3RlYm9hcmRIZWxwZXIsIGRlZmF1bHRIZWxwZXIsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGFzdGVib2FyZEhlbHBlciwgZGVmYXVs
dEhlbHBlciwgKCkpOwogICAgIHJldHVybiAmZGVmYXVsdEhlbHBlcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdp
bmRvdy5jcHAKaW5kZXggYzhlODFlNDZiNmM1YTAzOWVlMWMzODVhMzJjMTlmNDg0NGE1YTIyYy4u
MDE4NGI3NWUzMThiODBhN2NlNWZjMmQ5NDIwMzMyZmVmZDk1MDI1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5k
b3cuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgSGFz
aE1hcDxXaW5kb3csIFJlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93Kj4gV2luZG93SGFzaE1hcDsK
IHN0YXRpYyBXaW5kb3dIYXNoTWFwJiBnZXRXaW5kb3dIYXNoTWFwKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFdpbmRvd0hhc2hNYXAsIHdpbmRvd0hhc2hNYXAsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoV2luZG93SGFzaE1hcCwgd2luZG93SGFzaE1hcCwg
KCkpOwogICAgIHJldHVybiB3aW5kb3dIYXNoTWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IDMyZTM3MDQzMWM4Y2UwOWVl
ZWFiY2RlZjZkMTRmZTVjMTExZTk3ODkuLmQ3M2Y2YzRhMGFiNjNmZWRhN2NkMDkzNmU3N2YyZWY3
NTY0ZjQxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0azMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVt
ZUd0azMuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIGd0a1N0eWxlQ2hhbmdlZENh
bGxiYWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKikKIAogc3RhdGljIFN0eWxlQ29udGV4dE1hcCYg
c3R5bGVDb250ZXh0TWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQ29udGV4
dE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxl
Q29udGV4dE1hcCwgbWFwLCAoKSk7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZh
bHNlOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1VzZXJBZ2VudEd0ay5jcHAKaW5kZXggMWFmNTZhNGVkNzczNDNhZjc3MTM0ODg5MDI3ZmFj
N2RkNTU4YjA2ZC4uY2VjNTY1OTZjMzRmOWU3OTJiZDlmYjQzNDk2YmM1YjFiNzkwOTZkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1VzZXJBZ2VudEd0ay5jcHAKQEAgLTQ5LDcg
KzQ5LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNwdURlc2NyaXB0aW9uRm9yVUFTdHJpbmcoKQog
CiBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtVmVyc2lvbkZvclVBU3RyaW5nKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdWFPU1ZlcnNpb24sIChTdHJpbmcoKSkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHVhT1NWZXJzaW9uLCAoU3RyaW5n
KCkpKTsKICAgICBpZiAoIXVhT1NWZXJzaW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHVh
T1NWZXJzaW9uOwogCkBAIC02OSw4ICs2OSw4IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudChj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvCiAg
ICAgLy8gYnJvd3NlcnMgdGhhdCBhcmUgIlNhZmFyaSIgYnV0IG5vdCBydW5uaW5nIG9uIE9TIFgg
YXJlIHRoZSBTYWZhcmkgaU9TIGJyb3dzZS4gR2V0dGluZyB0aGlzCiAgICAgLy8gd3JvbmcgY2Fu
IGNhdXNlIHNpdGVzIHRvIGxvYWQgdGhlIHdyb25nIEphdmFTY3JpcHQsIENTUywgb3IgY3VzdG9t
IGZvbnRzLiBJbiBzb21lIGNhc2VzCiAgICAgLy8gc2l0ZXMgd29uJ3QgbG9hZCByZXNvdXJjZXMg
YXQgYWxsLgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQ1N0cmluZywgdWFWZXJzaW9u
LCAoU3RyaW5nOjpmb3JtYXQoIiVpLiVpIiwgVVNFUl9BR0VOVF9HVEtfTUFKT1JfVkVSU0lPTiwg
VVNFUl9BR0VOVF9HVEtfTUlOT1JfVkVSU0lPTikudXRmOCgpKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXRpY1VBLCAoU3RyaW5nOjpmb3JtYXQoIk1vemlsbGEv
NS4wIChNYWNpbnRvc2g7ICVzKSBBcHBsZVdlYktpdC8lcyAoS0hUTUwsIGxpa2UgR2Vja28pIFNh
ZmFyaS8lcyIsCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IENTdHJp
bmcsIHVhVmVyc2lvbiwgKFN0cmluZzo6Zm9ybWF0KCIlaS4laSIsIFVTRVJfQUdFTlRfR1RLX01B
Sk9SX1ZFUlNJT04sIFVTRVJfQUdFTlRfR1RLX01JTk9SX1ZFUlNJT04pLnV0ZjgoKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0YXRpY1VBLCAo
U3RyaW5nOjpmb3JtYXQoIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7ICVzKSBBcHBsZVdlYktpdC8l
cyAoS0hUTUwsIGxpa2UgR2Vja28pIFNhZmFyaS8lcyIsCiAgICAgICAgIHBsYXRmb3JtVmVyc2lv
bkZvclVBU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdWFWZXJzaW9uLmRhdGEoKSwgdWFWZXJzaW9u
LmRhdGEoKSkpKTsKIAogICAgIGlmIChhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQu
Y3BwCmluZGV4IDY3MWFhZGI5MmRiYzU0ZjgzODY3NDBjYjNiYzdhYTQ0OGQ5YTA3YTMuLjg0M2M5
NGE5ODA1ZjkyNzdmNjRjYTAyYTQzZDk2YjMwNDRmZDVkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIHZvaWQgc2NoZWR1bGVTY3JhdGNoQnVmZmVy
UHVyZ2UoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUHVyZ2VTY3JhdGNoQnVmZmVyVGlt
ZXIsIHB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFB1cmdlU2NyYXRjaEJ1ZmZlclRpbWVyLCBwdXJnZVNjcmF0Y2hCdWZmZXJU
aW1lciwgKCkpOwogICAgIGlmIChwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lci5pc0FjdGl2ZSgpKQog
ICAgICAgICBwdXJnZVNjcmF0Y2hCdWZmZXJUaW1lci5zdG9wKCk7CiAgICAgcHVyZ2VTY3JhdGNo
QnVmZmVyVGltZXIuc3RhcnRPbmVTaG90KDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0N1cnNvcklPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
Q3Vyc29ySU9TLmNwcAppbmRleCAyNDY5M2FhMTE2ZjFlYzE3OGM1YmY5YjdlMmE2NzBjZDMwNGU3
ZmUzLi5iMDk0MGE5ZjlmZTY3MmFkZmE1ZDYwNDhjOTgzNDQ4NmE0MWIzMDJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcApAQCAtMzAsNyArMzAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBDdXJzb3ImIGN1cnNvcigpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBDdXJzb3IsIGN1cnNvciwgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBDdXJzb3IsIGN1cnNvciwgKCkpOwogICAg
IHJldHVybiBjdXJzb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9UaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKaW5kZXggYWQx
MDY0MWYwMjE1NDY2NmMyYmI0ZTNhMTU5NGFkNmU5M2UwMDNkYi4uZWEyMzFiNzc4NzVkNTcyOGU5
MzBmMzU2ZmZlNjcyNWQ2YmY3M2M5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1RpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI6OnRyaW1VbnBh
cmVudGVkVGlsZXNUb1RhcmdldChpbnQgdGFyZ2V0KQogCiBUaWxlQ29udHJvbGxlck1lbW9yeUhh
bmRsZXImIHRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXIsIHN0YXRpY1RpbGVDb250cm9sbGVy
TWVtb3J5SGFuZGxlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXIsIHN0YXRpY1RpbGVDb250cm9sbGVyTWVtb3J5SGFu
ZGxlciwgKCkpOwogICAgIHJldHVybiBzdGF0aWNUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5tbQppbmRleCA3M2E5ODJhZDI2NWUwYWZlN2Q3NDM4YTdmZmJiMTYxZTQ1ZDFjMTI3
Li40MDIwNDg1ZDdiYWZhMGVkYjhmMjk2OTM3OTRjZTdkNTU2OWY0NWM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCkBAIC02
OCw3ICs2OCw3IEBAIHN0YXRpYyBjb25zdCBkb3VibGUga0dyYXZpdHkgPSA5LjgwNjY1OwogCiAr
IChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1hbmFnZXIKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFJldGFpblB0cjxXZWJDb3JlTW90aW9uTWFuYWdlcj4sIHNoYXJlZE1vdGlvbk1h
bmFnZXIsIChbW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIGFsbG9jXSBpbml0XSkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8V2ViQ29yZU1vdGlvbk1hbmFnZXI+
LCBzaGFyZWRNb3Rpb25NYW5hZ2VyLCAoW1tXZWJDb3JlTW90aW9uTWFuYWdlciBhbGxvY10gaW5p
dF0pKTsKICAgICByZXR1cm4gc2hhcmVkTW90aW9uTWFuYWdlci5nZXQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0NvbnRlbnRPYnNlcnZhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0
aW9uLmNwcAppbmRleCA4NTU4MTlhYjRjYjliYzY5OTgzNzA3YjVjMzgxMTQzZjNjMGQ4ZjZhLi4w
ZmI4YWU5OTAwYjhjZDM3NTllZDU2ZDMzZmQ0YjgxYmI3ZmFmMWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLQ29udGVudE9ic2VydmF0aW9uLmNw
cApAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgSGFzaE1hcDx2b2lkICosIHZvaWQgKj4gKiBXZWJU
aHJlYWRHZXRPYnNlcnZlZENvbnRlbnRNb2RpZmllcnMoKQogewogICAgIEFTU0VSVChXZWJUaHJl
YWRJc0xvY2tlZE9yRGlzYWJsZWQoKSk7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHZvaWQgKiwgdm9p
ZCAqPiBWb2lkVm9pZE1hcDsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFZvaWRWb2lkTWFwLCBv
YnNlcnZlZENvbnRlbnRNb2RpZmllcnMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoVm9pZFZvaWRNYXAsIG9ic2VydmVkQ29udGVudE1vZGlmaWVycywgKCkpOwogICAg
IHJldHVybiAmb2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCBiOGRhZThhNTYzZjBiMjI3NWVlZDEw
MWUxMDg4OGU3MGNmZWYxNTEyLi5iNDg1YTk1MzgzZDMzZGNkYzViMjRiOGY5MjM2ZGEyMjAxMWNl
MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAg
LTE2MCw3ICsxNjAsNyBAQCBjb25zdCBmbG9hdCBEcmFnTGlua1VybEZvbnRTaXplID0gMTA7CiBz
dGF0aWMgRm9udCYgZm9udEZyb21OU0ZvbnQoTlNGb250ICpmb250KQogewogICAgIHN0YXRpYyBO
U0ZvbnQgKmN1cnJlbnRGb250OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udCwgY3VycmVu
dFJlbmRlcmVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnQs
IGN1cnJlbnRSZW5kZXJlciwgKCkpOwogICAgIAogICAgIGlmIChbZm9udCBpc0VxdWFsOmN1cnJl
bnRGb250XSkKICAgICAgICAgcmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA3N2I5NmE2MWVh
ZTFiZGMzMTYzZmU1NDdjODlmNzBmODU2ZTM0ZGNlLi43OGIyY2Y0Njg3Y2FmYzFmZmJjZDkzZjM5
NWZmZTc5ZmRiZDA3NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFNjcm9sbGJhclRoZW1lTWFjLCB0aGVtZSwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZU1hYywgdGhlbWUs
ICgpKTsKICAgICByZXR1cm4gJnRoZW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VGhlbWVNYWMubW0KaW5kZXggMDk4NzQ3NDRjN2I5ZWRiMGY0MDE5MmE5N2M4OTZkNjYxMjBiNjRh
OC4uODQ1MjVjY2RmN2JjNDM1YjgwODYxMjE3YTBhMWUwYmYwYWNjNjNjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQpAQCAtMTI0LDcgKzEyNCw3IEBAIGVudW0gewog
CiBUaGVtZSogcGxhdGZvcm1UaGVtZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChUaGVt
ZU1hYywgdGhlbWVNYWMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
VGhlbWVNYWMsIHRoZW1lTWFjLCAoKSk7CiAgICAgcmV0dXJuICZ0aGVtZU1hYzsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCmluZGV4IDg5ZmVmMDMwOWM5
NDk5NDJlMjRkYTFjMjZkMzlhNThkNTdkMTQ1ZWEuLjBjYTNjYjUyNzRiZGE3MGIyYmMyZDcxMmIz
NTllMGQxZDIwMzJjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9U
aHJlYWRDaGVjay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hl
Y2subW0KQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9u
KGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICBpZiAo
cm91bmQgPj0gTWF4aW11bVRocmVhZFZpb2xhdGlvblJvdW5kKQogICAgICAgICByZXR1cm47CiAK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgbG9nZ2VkRnVuY3Rpb25z
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5n
PiwgbG9nZ2VkRnVuY3Rpb25zLCAoKSk7CiAgICAgc3dpdGNoICh0aHJlYWRWaW9sYXRpb25CZWhh
dmlvcltyb3VuZF0pIHsKICAgICAgICAgY2FzZSBOb1RocmVhZENoZWNrOgogICAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKaW5kZXggNmE4NjE4MWI4OTk0NWY0
NWFjODFjOTU5MjE3NjRhZDg3NjQyM2YwNS4uZjI4MTEzMWJkOTg3YmVlNGNiMTcxYmFlNTgzMDE3
Y2JlNWQ4YjhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcApAQCAtMjI1LDcgKzIy
NSw3IEBAIFJlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
Y29uc3RyYWludHMoKSBjb25zdAogY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMmIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlOjpzdGF0ZXMoKSBjb25zdAogewogICAgIGlmICghbV9zb3VyY2Up
IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0
YXRlcywgbm9TdGF0ZSwgKCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXMsIG5vU3RhdGUsICgpKTsKICAgICAgICAg
cmV0dXJuIG5vU3RhdGU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKaW5kZXggNWU0ZjM0ZTg0NjhjZTY4ZWQzYzZkMDMy
N2RiYzZiMmQ2YTU0NGMxZS4uY2VkYjAzOTczNTkyMzAzMWI3YTk5Yjc3NjZmMDk4YzhkNDkwMjE1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIu
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhU3RyZWFtQ2Vu
dGVyJiBNZWRpYVN0cmVhbUNlbnRlcjo6cGxhdGZvcm1DZW50ZXIoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lciwgY2VudGVyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLCBjZW50ZXIsICgpKTsKICAgICByZXR1cm4g
Y2VudGVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCmluZGV4IGJmYjlh
M2Q3YzY1ZDI4ZjcyODQyMDEwZjI0NWNmNTU4MWM0ZWI3YzguLjYyMDI0MmQ3MWZhNGQwYTEwOTEy
YzU0MDRhMjM1NmQxNzNhODk2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1t
CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogCiBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBjYXB0dXJlRGV2aWNlTGlzdCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0
b3I8Q2FwdHVyZURldmljZT4sIGNhcHR1cmVEZXZpY2VMaXN0LCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxDYXB0dXJlRGV2aWNlPiwgY2FwdHVyZURldmlj
ZUxpc3QsICgpKTsKICAgICBzdGF0aWMgYm9vbCBmaXJzdFRpbWUgPSB0cnVlOwogCiAgICAgaWYg
KGZpcnN0VGltZSAmJiAhY2FwdHVyZURldmljZUxpc3Quc2l6ZSgpKSB7CkBAIC0xNzcsNyArMTc3
LDcgQEAgYm9vbCBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjppc0F2YWlsYWJsZSgpCiAKIEFWQ2Fw
dHVyZURldmljZU1hbmFnZXImIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNoYXJlZCgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLCBtYW5hZ2VyLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEFWQ2FwdHVyZURldmljZU1h
bmFnZXIsIG1hbmFnZXIsICgpKTsKICAgICByZXR1cm4gbWFuYWdlcjsKIH0KIApAQCAtNDU2LDcg
KzQ1Niw3IEBAIHZvaWQgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6ZGV2aWNlRGlzY29ubmVjdGVk
KEFWQ2FwdHVyZURldmljZVR5cGUqIGRldmljZSkKIAogY29uc3QgVmVjdG9yPEF0b21pY1N0cmlu
Zz4mIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZhbGlkQ29uc3RyYWludE5hbWVzKCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9taWNTdHJpbmc+LCBjb25zdHJhaW50cywg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8QXRvbWljU3Ry
aW5nPiwgY29uc3RyYWludHMsICgpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWlj
U3RyaW5nPiBoZWlnaHRDb25zdHJhaW50KCJoZWlnaHQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB3
aWR0aENvbnN0cmFpbnQoIndpZHRoIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZnJhbWVSYXRlQ29u
c3RyYWludCgiZnJhbWVSYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CkBAIC00NzYsNyArNDc2LDcgQEAgY29uc3QgVmVjdG9yPEF0b21pY1N0cmluZz4mIEFWQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnZhbGlkQ29uc3RyYWludE5hbWVzKCkKIAogY29uc3QgVmVjdG9yPEF0
b21pY1N0cmluZz4mIEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnZhbGlkRmFjaW5nTW9kZXMoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPEF0b21pY1N0cmluZz4sIG1vZGVzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxBdG9taWNTdHJp
bmc+LCBtb2RlcywgKCkpOwogICAgIAogICAgIGlmICghbW9kZXMuc2l6ZSgpKSB7CiAgICAgICAg
IG1vZGVzLmluc2VydChNZWRpYVN0cmVhbVNvdXJjZVN0YXRlczo6VXNlciwgTWVkaWFTdHJlYW1T
b3VyY2VTdGF0ZXM6OmZhY2luZ01vZGUoTWVkaWFTdHJlYW1Tb3VyY2VTdGF0ZXM6OlVzZXIpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRp
YVN0cmVhbUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCmluZGV4IDM3MGE1MjI3NmI0MWZmMmIyMzk1
YWJhOTQ4Yjk2YTE5YTZlNjFmYjYuLjhkOGQ5MGRmMTRjMmNmY2FiMmQwYjU3ZThhOWY1YTg3NmU0
YzU0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBNZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJlYW1DZW50
ZXI6OnBsYXRmb3JtQ2VudGVyKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoTWVkaWFTdHJlYW1DZW50ZXJNYWMsIGNlbnRlciwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNZWRpYVN0cmVhbUNlbnRlck1hYywg
Y2VudGVyLCAoKSk7CiAgICAgcmV0dXJuIGNlbnRlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4IDIw
Y2IxYWI4YjQxMmNkMmI0M2ZhZWJmOTgwYjgyN2ZhYzMyODMwODcuLjY5YmQ2MDA1NjFkY2NiMDM2
ODhkYzA3YTY4OGY2MzZmNDI4ZjFlMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAgLTYzLDcgKzYzLDcgQEAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPE1vY2tTb3VyY2U+PiBNb2NrU291cmNlTWFw
OwogCiBzdGF0aWMgTW9ja1NvdXJjZU1hcCYgbW9ja1NvdXJjZU1hcCgpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChNb2NrU291cmNlTWFwLCBtb2NrU291cmNlTWFwLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE1vY2tTb3VyY2VNYXAsIG1vY2tTb3VyY2VNYXAs
ICgpKTsKICAgICByZXR1cm4gbW9ja1NvdXJjZU1hcDsKIH0KIApAQCAtMTE5LDcgKzExOSw3IEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVNb2NrU291cmNlcygpCiAKIHZvaWQgTW9ja01lZGlhU3Ry
ZWFtQ2VudGVyOjpyZWdpc3Rlck1vY2tNZWRpYVN0cmVhbUNlbnRlcigpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChNb2NrTWVkaWFTdHJlYW1DZW50ZXIsIGNlbnRlciwgKCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNb2NrTWVkaWFTdHJlYW1DZW50ZXIsIGNlbnRl
ciwgKCkpOwogICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyZWQgPSBmYWxzZTsKICAgICBpZiAoIXJl
Z2lzdGVyZWQpIHsKICAgICAgICAgcmVnaXN0ZXJlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrQm94LmNwcAppbmRleCAyODZl
ODFiNDkzM2UzMDQ2NmQ5OGIxYTM4ZGVjMjQ5ODU5MTAyZGVjLi5jNWQ4MTdmMzdhZjUzOWRiY2Q2
N2VlN2ZlY2E5MGMwZTdjZTA2YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja0JveC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgTW9ja1Ry
YWNrQm94OjpNb2NrVHJhY2tCb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYg
TW9ja1RyYWNrQm94Ojp0eXBlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
dHJhaywgKEFTQ0lJTGl0ZXJhbCgidHJhayIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgdHJhaywgKEFTQ0lJTGl0ZXJhbCgidHJhayIpKSk7CiAgICAgcmV0
dXJuIHRyYWs7CiB9CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6
Ok1vY2tJbml0aWFsaXphdGlvbkJveChBcnJheUJ1ZmZlciogZGF0YSkKIAogY29uc3QgU3RyaW5n
JiBNb2NrSW5pdGlhbGl6YXRpb25Cb3g6OnR5cGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBpbml0LCAoQVNDSUlMaXRlcmFsKCJpbml0IikpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbml0LCAoQVNDSUlMaXRlcmFsKCJpbml0Iikp
KTsKICAgICByZXR1cm4gaW5pdDsKIH0KIApAQCAtMTMyLDcgKzEzMiw3IEBAIE1vY2tTYW1wbGVC
b3g6Ok1vY2tTYW1wbGVCb3goQXJyYXlCdWZmZXIqIGRhdGEpCiAKIGNvbnN0IFN0cmluZyYgTW9j
a1NhbXBsZUJveDo6dHlwZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNt
cGwsIChBU0NJSUxpdGVyYWwoInNtcGwiKSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHNtcGwsIChBU0NJSUxpdGVyYWwoInNtcGwiKSkpOwogICAgIHJldHVy
biBzbXBsOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IDRjM2U1MWJjMjQyOTZjYWM1YjA1YzBlZGIyZWNmMjZlY2Q3MTdkYzEuLjMxMmM2Mjc2
ODgyYWFhNWY1NGNmMjJmMjc1MWI4NjQzOGI0MTYwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01l
ZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFBhc3NPd25QdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y3Jl
YXRlKE1lZGlhCiAKIHN0YXRpYyBIYXNoU2V0PFN0cmluZz4gbWltZVR5cGVDYWNoZSgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIGNhY2hlLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgY2FjaGUsICgp
KTsKICAgICBzdGF0aWMgYm9vbCBpc0luaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAoIWlz
SW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ3JlZGVudGlhbFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKaW5kZXggZDg2ZmQ4MWM0YzA2YjE3YTM2YjM3YmVmNjNj
NmM5YmExMjQyODgxNi4uNDEwMDVkMGFkZGFlMmMzYmY0ZTg5ZTIyMDRjZjYyYTg0NDAyZTBhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3Rv
cmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFs
U3RvcmFnZS5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBAQCB0eXBlZGVmIEhhc2hNYXA8UHJvdGVjdGlv
blNwYWNlLCBDcmVkZW50aWFsPiBQcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXA7CiBzdGF0
aWMgUHJvdGVjdGlvblNwYWNlVG9DcmVkZW50aWFsTWFwJiBwcm90ZWN0aW9uU3BhY2VUb0NyZWRl
bnRpYWxNYXAoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChQcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRpYWxNYXAsIG1hcCwgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQcm90ZWN0aW9uU3BhY2VUb0NyZWRlbnRp
YWxNYXAsIG1hcCwgKCkpOwogICAgIHJldHVybiBtYXA7CiB9CiAKIHN0YXRpYyBIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnNXaXRoQ3JlZGVudGlhbHMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNldCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmluZz4sIHNl
dCwgKCkpOwogICAgIHJldHVybiBzZXQ7CiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdHlwZWRlZiBI
YXNoTWFwPFN0cmluZywgUHJvdGVjdGlvblNwYWNlPiBQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNw
YWNlTWFwOwogc3RhdGljIFBhdGhUb0RlZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAmIHBhdGhUb0Rl
ZmF1bHRQcm90ZWN0aW9uU3BhY2VNYXAoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQYXRoVG9EZWZhdWx0UHJvdGVjdGlvblNwYWNlTWFw
LCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUGF0aFRvRGVm
YXVsdFByb3RlY3Rpb25TcGFjZU1hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRl
eCA1NGI4NWQ3ZjE2NjNjY2FiM2UyNzg2ODI2ZGNiYzExZTNmZTVjNzM1Li5iZjBkNWE3MzU1Y2I2
ZGVhZmY5ZmJmYjQzNTM0MzAzODNjYzliMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtMzUxLDE0ICszNTEsMTQgQEAgdm9pZCBm
aW5kQ2hhcnNldEluTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBp
bnQmIGNoYXJzZXRQb3MsIHUKIAogQ29udGVudFNlY3VyaXR5UG9saWN5OjpSZWZsZWN0ZWRYU1NE
aXNwb3NpdGlvbiBwYXJzZVhTU1Byb3RlY3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIs
IFN0cmluZyYgZmFpbHVyZVJlYXNvbiwgdW5zaWduZWQmIGZhaWx1cmVQb3NpdGlvbiwgU3RyaW5n
JiByZXBvcnRVUkwpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVS
ZWFzb25JbnZhbGlkVG9nZ2xlLCAoQVNDSUlMaXRlcmFsKCJleHBlY3RlZCAwIG9yIDEiKSkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFNlcGFy
YXRvciwgKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgc2VtaWNvbG9uIikpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRFcXVhbHMsIChBU0NJSUxp
dGVyYWwoImV4cGVjdGVkIGVxdWFscyBzaWduIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRNb2RlLCAoQVNDSUlMaXRlcmFsKCJpbnZhbGlk
IG1vZGUgZGlyZWN0aXZlIikpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFp
bHVyZVJlYXNvbkludmFsaWRSZXBvcnQsIChBU0NJSUxpdGVyYWwoImludmFsaWQgcmVwb3J0IGRp
cmVjdGl2ZSIpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFz
b25EdXBsaWNhdGVNb2RlLCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgbW9kZSBkaXJlY3RpdmUi
KSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uRHVwbGlj
YXRlUmVwb3J0LCAoQVNDSUlMaXRlcmFsKCJkdXBsaWNhdGUgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkRGly
ZWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJ1bnJlY29nbml6ZWQgZGlyZWN0aXZlIikpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxp
ZFRvZ2dsZSwgKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgMCBvciAxIikpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZFNlcGFy
YXRvciwgKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgc2VtaWNvbG9uIikpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBmYWlsdXJlUmVhc29uSW52YWxpZEVxdWFs
cywgKEFTQ0lJTGl0ZXJhbCgiZXhwZWN0ZWQgZXF1YWxzIHNpZ24iKSkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25JbnZhbGlkTW9kZSwg
KEFTQ0lJTGl0ZXJhbCgiaW52YWxpZCBtb2RlIGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkludmFsaWRSZXBvcnQs
IChBU0NJSUxpdGVyYWwoImludmFsaWQgcmVwb3J0IGRpcmVjdGl2ZSIpKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkR1cGxpY2F0ZU1v
ZGUsIChBU0NJSUxpdGVyYWwoImR1cGxpY2F0ZSBtb2RlIGRpcmVjdGl2ZSIpKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZmFpbHVyZVJlYXNvbkR1cGxpY2F0
ZVJlcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiZHVwbGljYXRlIHJlcG9ydCBkaXJlY3RpdmUiKSkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZhaWx1cmVSZWFzb25J
bnZhbGlkRGlyZWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJ1bnJlY29nbml6ZWQgZGlyZWN0aXZlIikp
KTsKIAogICAgIHVuc2lnbmVkIHBvcyA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvblN0dWIuY3BwCmlu
ZGV4IGViNmIzZTM4ZDA4ZDhmNDAwOTBmOWRhYWIzNTMyNThjN2U2MThmNTkuLmM5ZDBjZjE1ZjE4
ODI2MmQzMDI2MjRjNTRlMDk5ZDIwNmNhNTJhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU3R1Yi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb25TdHViLmNw
cApAQCAtNTMsNyArNTMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNyZWF0ZVByaXZhdGVCcm93cwogCiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9u
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgc2Vz
c2lvbiwgKDApKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLCBzZXNzaW9uLCAoMCkpOwogICAgIHJldHVybiBzZXNzaW9uOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
CmluZGV4IDJlZDQxZGIyMDk1YTNmYjRlMGY0MTgwZDRmZTgyYzllMWJiYjRhYmYuLjhhNWYyN2Iy
ODQ4N2YxYjkyMjRhNGZkZTU2MTQ0OGIzZmZiODIyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00OCw3ICs0OCw3IEBA
IHN0YXRpYyBCdWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCYgYnVpbHRpblJlc291
cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoCiAjZWxzZQogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAjZW5kaWYKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRs
ZUNvbnN0cnVjdG9yTWFwLCBtYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoQnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAsIG1hcCwgKCkpOwogICAg
IHJldHVybiBtYXA7CiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdHlwZWRlZiBIYXNoTWFwPEF0b21p
Y1N0cmluZywgUmVzb3VyY2VIYW5kbGU6OkJ1aWx0aW5TeW5jaHJvbm91c0xvYWRlcj4gQnVpbHRp
blIKIHN0YXRpYyBCdWlsdGluUmVzb3VyY2VIYW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCYgYnVp
bHRpblJlc291cmNlSGFuZGxlU3luY2hyb25vdXNMb2FkZXJNYXAoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChCdWlsdGluUmVzb3VyY2VI
YW5kbGVTeW5jaHJvbm91c0xvYWRlck1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEJ1aWx0aW5SZXNvdXJjZUhhbmRsZVN5bmNocm9ub3VzTG9hZGVyTWFw
LCBtYXAsICgpKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDVj
MDU3ZWJiNDRlMWQ0N2QxNDk4ODc5ZTQxZDliMDVlYWMzMmRlNGEuLjM5MmU5YTQxYTQ3ZTFjMTcw
NzA1Mzg1ZDMyODY4YWI1OTAxOWQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBAIC0yODgsMTIgKzI4
OCwxMiBAQCBTdHJpbmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFkZXJGaWVsZChjb25z
dCBjaGFyKiBuYW1lKSBjb25zdAogCiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjp1cGRhdGVI
ZWFkZXJQYXJzZWRTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGFnZUhlYWRlciwgKCJhZ2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbEhlYWRlciwgKCJjYWNoZS1jb250cm9s
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkYXRlSGVhZGVyLCAoImRhdGUiLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGV4cGlyZXNIZWFkZXIsICgiZXhwaXJlcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgbGFzdE1vZGlmaWVkSGVhZGVyLCAoImxhc3QtbW9kaWZpZWQiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHByYWdtYUhlYWRlciwgKCJwcmFnbWEiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYWdlSGVhZGVyLCAoImFnZSIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjYWNoZUNvbnRyb2xIZWFkZXIsICgiY2FjaGUtY29u
dHJvbCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkYXRlSGVhZGVyLCAo
ImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZXhwaXJlc0hlYWRl
ciwgKCJleHBpcmVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxhc3RN
b2RpZmllZEhlYWRlciwgKCJsYXN0LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBB
dG9taWNTdHJpbmcsIHByYWdtYUhlYWRlciwgKCJwcmFnbWEiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgYWdl
SGVhZGVyKSkKICAgICAgICAgbV9oYXZlUGFyc2VkQWdlSGVhZGVyID0gZmFsc2U7CkBAIC0zNDgs
MTEgKzM0OCwxMSBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpwYXJzZUNhY2hlQ29udHJv
bERpcmVjdGl2ZXMoKSBjb25zdAogICAgIG1fY2FjaGVDb250cm9sQ29udGFpbnNOb0NhY2hlID0g
ZmFsc2U7CiAgICAgbV9jYWNoZUNvbnRyb2xNYXhBZ2UgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0cmluZywgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBub0NhY2hlRGlyZWN0aXZlLCAoIm5vLWNhY2hlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBub1N0b3JlRGlyZWN0aXZlLCAoIm5vLXN0b3JlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBtdXN0UmV2YWxpZGF0ZURpcmVjdGl2ZSwgKCJtdXN0LXJldmFsaWRh
dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIG1heEFnZURpcmVjdGl2ZSwgKCJtYXgtYWdl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGNhY2hlQ29udHJvbFN0cmlu
ZywgKCJjYWNoZS1jb250cm9sIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IG5vQ2FjaGVEaXJlY3RpdmUsICgibm8tY2FjaGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgbm9TdG9yZURpcmVjdGl2ZSwgKCJuby1zdG9yZSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBtdXN0UmV2YWxpZGF0ZURpcmVjdGl2ZSwgKCJtdXN0LXJl
dmFsaWRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWF4QWdlRGly
ZWN0aXZlLCAoIm1heC1hZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAKICAgICBTdHJpbmcgY2FjaGVDb250cm9sVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0
KGNhY2hlQ29udHJvbFN0cmluZyk7CiAgICAgaWYgKCFjYWNoZUNvbnRyb2xWYWx1ZS5pc0VtcHR5
KCkpIHsKQEAgLTM4Niw3ICszODYsNyBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpwYXJz
ZUNhY2hlQ29udHJvbERpcmVjdGl2ZXMoKSBjb25zdAogICAgICAgICAvLyBIYW5kbGUgUHJhZ21h
OiBuby1jYWNoZQogICAgICAgICAvLyBUaGlzIGlzIGRlcHJlY2F0ZWQgYW5kIGVxdWl2YWxlbnQg
dG8gQ2FjaGUtY29udHJvbDogbm8tY2FjaGUKICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIHRva2Vu
aXppbmcgdGhlIHZhbHVlLCBpdCBpcyBub3QgaW1wb3J0YW50Ci0gICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmFnbWFIZWFkZXIsICgicHJhZ21hIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBwcmFnbWFIZWFkZXIsICgicHJh
Z21hIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBTdHJp
bmcgcHJhZ21hVmFsdWUgPSBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KHByYWdtYUhlYWRlcik7CiAK
ICAgICAgICAgbV9jYWNoZUNvbnRyb2xDb250YWluc05vQ2FjaGUgPSBwcmFnbWFWYWx1ZS5sb3dl
cigpLmNvbnRhaW5zKG5vQ2FjaGVEaXJlY3RpdmUpOwpAQCAtNDE4LDggKzQxOCw4IEBAIGJvb2wg
UmVzb3VyY2VSZXNwb25zZUJhc2U6Omhhc0NhY2hlVmFsaWRhdG9yRmllbGRzKCkgY29uc3QKIHsK
ICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBsYXN0TW9kaWZpZWRIZWFkZXIsICgibGFzdC1tb2RpZmll
ZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZVRhZ0hlYWRlciwgKCJldGFnIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGxhc3RNb2RpZmllZEhlYWRlciwgKCJsYXN0
LW1vZGlmaWVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGVUYWdIZWFk
ZXIsICgiZXRhZyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gIW1faHR0cEhlYWRlckZpZWxkcy5nZXQobGFzdE1vZGlmaWVkSGVhZGVyKS5pc0VtcHR5
KCkgfHwgIW1faHR0cEhlYWRlckZpZWxkcy5nZXQoZVRhZ0hlYWRlcikuaXNFbXB0eSgpOwogfQog
CkBAIC00NTAsNyArNDUwLDcgQEAgZG91YmxlIFJlc291cmNlUmVzcG9uc2VCYXNlOjpkYXRlKCkg
Y29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIAogICAgIGlmICghbV9oYXZl
UGFyc2VkRGF0ZUhlYWRlcikgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJkYXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImRhdGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIG1fZGF0ZSA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFk
ZXIobV9odHRwSGVhZGVyRmllbGRzLCBoZWFkZXJOYW1lKTsKICAgICAgICAgbV9oYXZlUGFyc2Vk
RGF0ZUhlYWRlciA9IHRydWU7CiAgICAgfQpAQCAtNDYyLDcgKzQ2Miw3IEBAIGRvdWJsZSBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6YWdlKCkgY29uc3QKICAgICBsYXp5SW5pdChDb21tb25GaWVsZHNP
bmx5KTsKIAogICAgIGlmICghbV9oYXZlUGFyc2VkQWdlSGVhZGVyKSB7Ci0gICAgICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImFnZSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJhZ2Ui
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgICAgIFN0cmluZyBo
ZWFkZXJWYWx1ZSA9IG1faHR0cEhlYWRlckZpZWxkcy5nZXQoaGVhZGVyTmFtZSk7CiAgICAgICAg
IGJvb2wgb2s7CiAgICAgICAgIG1fYWdlID0gaGVhZGVyVmFsdWUudG9Eb3VibGUoJm9rKTsKQEAg
LTQ3OCw3ICs0NzgsNyBAQCBkb3VibGUgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmV4cGlyZXMoKSBj
b25zdAogICAgIGxhenlJbml0KENvbW1vbkZpZWxkc09ubHkpOwogCiAgICAgaWYgKCFtX2hhdmVQ
YXJzZWRFeHBpcmVzSGVhZGVyKSB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBoZWFkZXJOYW1lLCAoImV4cGlyZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIGhlYWRlck5hbWUsICgiZXhwaXJlcyIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgbV9leHBpcmVzID0gcGFyc2VEYXRl
VmFsdWVJbkhlYWRlcihtX2h0dHBIZWFkZXJGaWVsZHMsIGhlYWRlck5hbWUpOwogICAgICAgICBt
X2hhdmVQYXJzZWRFeHBpcmVzSGVhZGVyID0gdHJ1ZTsKICAgICB9CkBAIC00OTAsNyArNDkwLDcg
QEAgZG91YmxlIFJlc291cmNlUmVzcG9uc2VCYXNlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAg
IGxhenlJbml0KENvbW1vbkZpZWxkc09ubHkpOwogCiAgICAgaWYgKCFtX2hhdmVQYXJzZWRMYXN0
TW9kaWZpZWRIZWFkZXIpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIGhlYWRlck5hbWUsICgibGFzdC1tb2RpZmllZCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IEF0b21pY1N0cmluZywgaGVhZGVyTmFtZSwgKCJsYXN0LW1vZGlmaWVkIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBtX2xhc3RNb2RpZmll
ZCA9IHBhcnNlRGF0ZVZhbHVlSW5IZWFkZXIobV9odHRwSGVhZGVyRmllbGRzLCBoZWFkZXJOYW1l
KTsKICAgICAgICAgbV9oYXZlUGFyc2VkTGFzdE1vZGlmaWVkSGVhZGVyID0gdHJ1ZTsKICAgICB9
CkBAIC01MDEsMTMgKzUwMSwxMyBAQCBib29sIFJlc291cmNlUmVzcG9uc2VCYXNlOjppc0F0dGFj
aG1lbnQoKSBjb25zdAogewogICAgIGxhenlJbml0KENvbW1vbkFuZFVuY29tbW9uRmllbGRzKTsK
IAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBoZWFkZXJOYW1l
LCAoImNvbnRlbnQtZGlzcG9zaXRpb24iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgaGVhZGVyTmFtZSwgKCJjb250ZW50LWRpc3Bvc2l0aW9uIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIFN0cmluZyB2YWx1ZSA9IG1faHR0cEhlYWRlckZp
ZWxkcy5nZXQoaGVhZGVyTmFtZSk7CiAgICAgc2l6ZV90IGxvYyA9IHZhbHVlLmZpbmQoJzsnKTsK
ICAgICBpZiAobG9jICE9IG5vdEZvdW5kKQogICAgICAgICB2YWx1ZSA9IHZhbHVlLmxlZnQobG9j
KTsKICAgICB2YWx1ZSA9IHZhbHVlLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdHRhY2htZW50U3RyaW5nLCAoImF0dGFjaG1l
bnQiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgYXR0YWNobWVudFN0cmlu
ZywgKCJhdHRhY2htZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZSwgYXR0YWNobWVudFN0cmluZyk7CiB9
CiAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggMDZmMjdlNDg2YzhmYmFjNTlmY2E2MzdjNzk2
MGNkZTkwODEzOTY0Yi4uMzg1ZGQ0Y2YxNzhiMWUxMjJlMDZiNzQzMmU0ZjA0Nzg2YzM4MGQwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC04MSwxNCArODEsMTQgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGF0aWMgSGFzaFNldDxTdHJpbmc+JiBhbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRl
SG9zdHMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBob3N0
cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0cmlu
Zz4sIGhvc3RzLCAoKSk7CiAgICAgcmV0dXJuIGhvc3RzOwogfQogCiBzdGF0aWMgSGFzaE1hcDxT
dHJpbmcsIFJldGFpblB0cjxDRkRhdGFSZWY+PiYgY2xpZW50Q2VydHMoKQogewogICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxDRkRhdGFSZWY+PiBDZXJ0c01hcDsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKENlcnRzTWFwLCBjZXJ0cywgKCkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChDZXJ0c01hcCwgY2VydHMsICgpKTsKICAgICByZXR1cm4gY2Vy
dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggMmNmNWU2NzU0OWZhMjY3
ZjAxNjA0Y2YyNjY5ZGUwMmFiNjA3NDFkZC4uNDJhZTNjODllOGQwZTMwZWZiZGY0NTc4Zjk1ZTcz
Yjk3NWYwM2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTEyOCw5ICsxMjgs
OSBAQCBzdGF0aWMgY2hhciogY29va2llSmFyUGF0aCgpCiB9CiAKIHN0YXRpYyBNdXRleCogc2hh
cmVkUmVzb3VyY2VNdXRleChjdXJsX2xvY2tfZGF0YSBkYXRhKSB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChNdXRleCwgY29va2llTXV0ZXgsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KE11dGV4LCBkbnNNdXRleCwgKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHNo
YXJlTXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgs
IGNvb2tpZU11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11
dGV4LCBkbnNNdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChN
dXRleCwgc2hhcmVNdXRleCwgKCkpOwogCiAgICAgc3dpdGNoIChkYXRhKSB7CiAgICAgICAgIGNh
c2UgQ1VSTF9MT0NLX0RBVEFfQ09PS0lFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ndGsvQ3JlZGVudGlhbEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAppbmRl
eCAwODZkYmMxNWQ5Y2MxNjY2MjY4Y2FjNGM5Yjk2ZTY4MGY0ODE3MmE1Li5hODFjOTcwNThiNGQ2
M2QyZTE0ZWFhNzdlY2RlMmUyZWExZDg1Yzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2d0ay9DcmVkZW50aWFsQmFja2luZ1N0b3JlLmNw
cApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENyZWRlbnRpYWxCYWNr
aW5nU3RvcmUmIGNyZWRlbnRpYWxCYWNraW5nU3RvcmUoKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSwgYmFja2luZ1N0b3JlLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENyZWRlbnRpYWxCYWNraW5nU3RvcmUsIGJhY2tp
bmdTdG9yZSwgKCkpOwogICAgIHJldHVybiBiYWNraW5nU3RvcmU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29raWVKYXJTb3VwLmNwcApp
bmRleCAzZjgwMmYxZjVkZWRjNzIwZjIxMWE1N2Y2MTk3ZWJkMjZmN2YyOGU3Li43MDhiYjcwNmRl
YmEzYmVlODA5ZDVmN2VmODYyYjMzZjJlNGVjNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHN0YXRpYyBTb3VwQ29va2llSmFyKiBjb29raWVKYXJGb3JTZXNzaW9uKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikKIAogc3RhdGljIEdSZWZQdHI8U291cENvb2tp
ZUphcj4mIGRlZmF1bHRDb29raWVKYXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoR1Jl
ZlB0cjxTb3VwQ29va2llSmFyPiwgY29va2llSmFyLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEdSZWZQdHI8U291cENvb2tpZUphcj4sIGNvb2tpZUphciwgKCkpOwog
ICAgIHJldHVybiBjb29raWVKYXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggZGIw
M2JhODNlOWFiNTY3NmRiMGM2NjQyNThhZDAwZmYxMmQyZTdkYi4uMjBhZWMzMTI2YzdlMjMwZjZm
Y2UzNTFiZjg4YmJlNDA4N2FiYjY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTIzMiwx
NCArMjMyLDE0IEBAIHN0YXRpYyBib29sIGdJZ25vcmVTU0xFcnJvcnMgPSBmYWxzZTsKIAogc3Rh
dGljIEhhc2hTZXQ8U3RyaW5nPiYgYWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZUhvc3RzKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8U3RyaW5nPiwgaG9zdHMsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTdHJpbmc+LCBob3N0cywg
KCkpOwogICAgIHJldHVybiBob3N0czsKIH0KIAogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgSG9z
dFRMU0NlcnRpZmljYXRlU2V0PiBDZXJ0aWZpY2F0ZXNNYXA7CiBzdGF0aWMgQ2VydGlmaWNhdGVz
TWFwJiBjbGllbnRDZXJ0aWZpY2F0ZXMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ2Vy
dGlmaWNhdGVzTWFwLCBjZXJ0aWZpY2F0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoQ2VydGlmaWNhdGVzTWFwLCBjZXJ0aWZpY2F0ZXMsICgpKTsKICAgICByZXR1
cm4gY2VydGlmaWNhdGVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKaW5kZXggMjgwZThjMGM1Mjkx
NjI3MDNjOGRiZjNiMTBiZjk2ODBhZWI0ZjVlZC4uMWVhZDYyNDI2ZWFhNDdjZjRlY2RmNzM0MzJk
NTQyYmQ5ZGFkOTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvd2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcApAQCAtNDMsNyArNDMsNyBAQCBzdGF0
aWMgdWludDMyX3QgbWFnaWNOdW1iZXIoKQogCiBjb25zdCBTdHJpbmcmIGZpbGVFeHRlbnNpb24o
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNpb24sIChB
U0NJSUxpdGVyYWwoIi5kb3dubG9hZCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZXh0ZW5zaW9uLCAoQVNDSUlMaXRlcmFsKCIuZG93bmxvYWQi
KSkpOwogICAgIHJldHVybiBleHRlbnNpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKaW5kZXggMjYy
ZmUxOTBlY2ExYjc5Y2RkMzgzZjZkYWM0OWM5OTA2OWYzY2I0ZS4uOWE1M2NhNjJmMTkyN2FlYjNm
MGQyMTg2MjEwZjg4ZmU5NzgwODM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHVibGljOgogICAgIFQgZ2V0KGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQogICAgIHsKICAg
ICAgICAgaWYgKGtleS5pc051bGwoKSkgewotICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChULCB2YWx1ZUZvck51bGwsIChjcmVhdGVWYWx1ZUZvck51bGxLZXkoKSkpOworICAgICAgICAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFQsIHZhbHVlRm9yTnVsbCwgKGNyZWF0
ZVZhbHVlRm9yTnVsbEtleSgpKSk7CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JOdWxsOwog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCmluZGV4IDg1ZDg3YjU5ZmE4ODIy
ZDBmMzVjMzUyNmEzYWI2NWM4MDVhOTRjOTIuLmQ2NDk1NDRiZThjYmMyMjA5NDg0YjkxYmJjN2Q4
ZTY3ODJhZjllMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlVG9TY3JpcHRNYXBwaW5nRGVmYXVsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcApAQCAtMTYzLDcgKzE2Myw3
IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFVTY3JpcHRDb2RlLCBEZWZhdWx0SGFzaDxTdHJp
bmc+OjpIYXNoLCBTY3JpcHROYW1lQ29kZU1hCiAKIFVTY3JpcHRDb2RlIHNjcmlwdE5hbWVUb0Nv
ZGUoY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U2NyaXB0TmFtZUNvZGVNYXAsIHNjcmlwdE5hbWVDb2RlTWFwLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFNjcmlwdE5hbWVDb2RlTWFwLCBzY3JpcHROYW1lQ29kZU1h
cCwgKCkpOwogICAgIGlmIChzY3JpcHROYW1lQ29kZU1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoc2NyaXB0TmFtZUNvZGVMaXN0KSAvIHNpemVv
ZihTY3JpcHROYW1lQ29kZSk7ICsraSkKICAgICAgICAgICAgIHNjcmlwdE5hbWVDb2RlTWFwLnNl
dChBU0NJSUxpdGVyYWwoc2NyaXB0TmFtZUNvZGVMaXN0W2ldLm5hbWUpLCBzY3JpcHROYW1lQ29k
ZUxpc3RbaV0uY29kZSk7CkBAIC0zODksNyArMzg5LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgVVNjcmlwdENvZGUsIERlZmF1bHRIYXNoPFN0cmluZz46Okhhc2gsIExvY2FsZVNjcmlwdE1h
cEgKIAogVVNjcmlwdENvZGUgbG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihjb25z
dCBTdHJpbmcmIGxvY2FsZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsZVNjcmlw
dE1hcCwgbG9jYWxlU2NyaXB0TWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKExvY2FsZVNjcmlwdE1hcCwgbG9jYWxlU2NyaXB0TWFwLCAoKSk7CiAgICAgaWYgKGxv
Y2FsZVNjcmlwdE1hcC5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplb2YobG9jYWxlU2NyaXB0TGlzdCkgLyBzaXplb2YoTG9jYWxlU2NyaXB0KTsgKytpKQog
ICAgICAgICAgICAgbG9jYWxlU2NyaXB0TWFwLnNldChBU0NJSUxpdGVyYWwobG9jYWxlU2NyaXB0
TGlzdFtpXS5sb2NhbGUpLCBsb2NhbGVTY3JpcHRMaXN0W2ldLnNjcmlwdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDlk
OTQwNjZiNGQzMmQwYzViY2FlMjdhZmQ0YzQzNTgzNGIwZGQzYmQuLjEwOGQzYjY1ZGM3OTU1YmMw
NDUyMTU1NjYxNzU2MTJlYTIwZjNhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIGNvbXBhcmVBbmRTd2FwTm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRv
cihUZXh0QnJlYWtJdGVyYXQKICNpZiBFTkFCTEUoQ09NUEFSRV9BTkRfU1dBUCkKICAgICByZXR1
cm4gV1RGOjp3ZWFrQ29tcGFyZUFuZFN3YXAocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZub25T
aGFyZWRDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKSwgZXhwZWN0ZWQsIG5ld1ZhbHVlKTsKICNlbHNl
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChzdGQ6Om11dGV4LCBub25TaGFyZWRDaGFyYWN0ZXJC
cmVha0l0ZXJhdG9yTXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoc3RkOjptdXRleCwgbm9uU2hhcmVkQ2hhcmFjdGVyQnJlYWtJdGVyYXRvck11dGV4LCAoKSk7
CiAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2tlcihub25TaGFyZWRDaGFyYWN0
ZXJCcmVha0l0ZXJhdG9yTXV0ZXgpOwogICAgIGlmIChub25TaGFyZWRDaGFyYWN0ZXJCcmVha0l0
ZXJhdG9yICE9IGV4cGVjdGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9jZi9IeXBoZW5hdGlvbkNGLmNwcAppbmRleCAwZGVkYTg3
ZmNjN2FiZDk3OTliNmI0YWI4MWQwMjVkYmFmYWU2YmRkLi5jNzgwMmI5YjAxOWExNTQwNjY3M2E1
N2I4NzdhNTNmY2ViMmVmMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2NmL0h5cGhlbmF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvY2YvSHlwaGVuYXRpb25DRi5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmV0YWluUHRyPENGTG9j
YWxlUmVmPiBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlPFJldGFpblB0cjxDRkxvY2FsZVJlZj4+
OjpjcmVhdGUKIAogc3RhdGljIEF0b21pY1N0cmluZ0tleWVkTVJVQ2FjaGU8UmV0YWluUHRyPENG
TG9jYWxlUmVmPj4mIGNmTG9jYWxlQ2FjaGUoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZTxSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+PiwgY2FjaGUs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nS2V5
ZWRNUlVDYWNoZTxSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+PiwgY2FjaGUsICgpKTsKICAgICByZXR1
cm4gY2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L3djaGFyL1RleHRCcmVha0l0ZXJhdG9yV2NoYXIuY3BwCmluZGV4IDgzMGVkNTU0YmMx
MmE3MzI3ZmEwNjQwNTgzYzY5NGYwZTRlMjYzYTkuLjdmNDUxOTkzZTdjM2IzNjRhNjhkYzhkNTRj
ZWU3ODBiNzhkM2I5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
d2NoYXIvVGV4dEJyZWFrSXRlcmF0b3JXY2hhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC93Y2hhci9UZXh0QnJlYWtJdGVyYXRvcldjaGFyLmNwcApAQCAtMjMwLDcgKzIz
MCw3IEBAIGludCBTZW50ZW5jZUJyZWFrSXRlcmF0b3I6OnByZXZpb3VzKCkKIAogVGV4dEJyZWFr
SXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5n
dGgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXb3JkQnJlYWtJdGVyYXRvciwgaXRlcmF0
b3IsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoV29yZEJyZWFrSXRl
cmF0b3IsIGl0ZXJhdG9yLCAoKSk7CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5nLCBsZW5ndGgp
OwogICAgIHJldHVybiAmaXRlcmF0b3I7CiB9CkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCByZWxl
YXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogCiBUZXh0
QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcs
IGludCBsZW5ndGgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTZW50ZW5jZUJyZWFrSXRl
cmF0b3IsIGl0ZXJhdG9yLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KFNlbnRlbmNlQnJlYWtJdGVyYXRvciwgaXRlcmF0b3IsICgpKTsKICAgICBpdGVyYXRvci5yZXNl
dChzdHJpbmcsIGxlbmd0aCk7CiAgICAgcmV0dXJuICZpdGVyYXRvcjsKIH0KQEAgLTM0MCw3ICsz
NDAsNyBAQCBib29sIGlzV29yZFRleHRCcmVhayhUZXh0QnJlYWtJdGVyYXRvciopCiAKIFRleHRC
cmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcs
IGludCBsZW5ndGgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDaGFyQnJlYWtJdGVyYXRv
ciwgaXRlcmF0b3IsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ2hh
ckJyZWFrSXRlcmF0b3IsIGl0ZXJhdG9yLCAoKSk7CiAgICAgaXRlcmF0b3IucmVzZXQoc3RyaW5n
LCBsZW5ndGgpOwogICAgIHJldHVybiAmaXRlcmF0b3I7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC93aW4vTG9jYWxlV2luLmNwcAppbmRleCA3MDdhNTUzMDU0YjU1MGNkNjZl
ZDYzNWUyNjRlYzYxYzViM2M1OTk1Li5hYjAzNmFhMGQxMDBlMDFhNDA5YzExYzcxYWExZjBkNzk0
ZjQ1NDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dpbi9Mb2Nh
bGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdp
bi5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgTENJRCBXSU5BUEkgY29udmVydExvY2Fs
ZU5hbWVUb0xDSUQoTFBDV1NUUiBuYW1lLCBEV09SRCkKIHsKICAgICBpZiAoIW5hbWUgfHwgIW5h
bWVbMF0pCiAgICAgICAgIHJldHVybiBMT0NBTEVfVVNFUl9ERUZBVUxUOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoTmFtZVRvTENJRE1hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKE5hbWVUb0xDSURNYXAsIG1hcCwgKCkpOwogICAgIGVuc3VyZU5hbWVU
b0xDSURNYXAobWFwKTsKICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IFN0cmluZyhuYW1lKS5yZXBs
YWNlKCdfJywgJy0nKS5sb3dlcigpOwogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKaW5kZXggMzEyMDM5NjQ5
NjAyOTc4ZDhlNGRhMGIyZTIxMDMxNmVjMGY4NjcwMi4uMjEyMWU0ZmQzY2U1MTQ5N2M5YWM5OWFh
N2NlOGQ4OWE3YjAxODVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFV0aWxpdGllc1dpbi5jcHAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIG1h
cmt1cFRvQ0ZIVE1MKGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25zdCBTdHJpbmcmIHNyY1VSTCwg
VmVjdG9yPGNoYXI+JiByZQogCiB2b2lkIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVO
ZXdsaW5lcyhTdHJpbmcmIHN0cikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
d2luZG93c05ld2xpbmUsIChBU0NJSUxpdGVyYWwoIlxyXG4iKSkpOworICAgIERFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdpbmRvd3NOZXdsaW5lLCAoQVNDSUlMaXRlcmFs
KCJcclxuIikpKTsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBmb3IgKHVuc2lnbmVk
IGluZGV4ID0gMDsgaW5kZXggPCBzdHIubGVuZ3RoKCk7ICsraW5kZXgpIHsKICAgICAgICAgaWYg
KHN0cltpbmRleF0gIT0gJ1xuJyB8fCAoaW5kZXggPiAwICYmIHN0cltpbmRleCAtIDFdID09ICdc
cicpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmlu
ZGV4IGU4MTRlYzM1ZDJhMDk5YTdhZTZjZDI4ZjU3YzJhZDg4ZmE1MzhlYjIuLmYxYjhhYWQ5ODVh
OGVhYWY4Y2IxYTg4YWZkNjlmNmQ5ZmQxN2RjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCBTdHJpbmcgZGly
ZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAKIHN0YXRpYyBTdHJpbmcgYnVuZGxlTmFt
ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG5hbWUsIChBU0NJSUxpdGVy
YWwoIldlYktpdCIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgbmFtZSwgKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0IikpKTsKIAogI2lmIFVTRShDRikKICAgICBz
dGF0aWMgYm9vbCBpbml0aWFsaXplZDsKQEAgLTI4Myw3ICsyODMsNyBAQCBzdGF0aWMgU3RyaW5n
IHN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQgcGF0aElkZW50aWZpZXIpCiAgICAgYnVmZmVyLnJlc2l6
ZSh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOwogICAgIFN0cmluZyBkaXJlY3RvcnkgPSBTdHJpbmc6
OmFkb3B0KGJ1ZmZlcik7CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29tcGFu
eU5hbWVEaXJlY3RvcnksIChBU0NJSUxpdGVyYWwoIkFwcGxlIENvbXB1dGVyXFwiKSkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbXBhbnlOYW1lRGlyZWN0
b3J5LCAoQVNDSUlMaXRlcmFsKCJBcHBsZSBDb21wdXRlclxcIikpKTsKICAgICBkaXJlY3Rvcnkg
PSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0b3J5LCBjb21wYW55TmFtZURpcmVjdG9y
eSArIGJ1bmRsZU5hbWUoKSk7CiAgICAgaWYgKCFtYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5
KSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGFiYXNlLmNwcAppbmRleCBhNWZhODRjYzBhZDM5NGVkYzgzZjExYTIxMjM4NWZhMTM1Njcw
OWYxLi4xNGZjY2YxYWNmZjIyYTA1NGU4M2RmYzA0MzJmMjJjYWY3MDg3YzVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApAQCAtNDcsNyArNDcsNyBAQCBzdGF0
aWMgYm9vbCBnUGVyc2lzdGVudFBsdWdpbk1ldGFkYXRhQ2FjaGVJc0VuYWJsZWQ7CiAKIFN0cmlu
ZyYgcGVyc2lzdGVudFBsdWdpbk1ldGFkYXRhQ2FjaGVQYXRoKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgY2FjaGVQYXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgY2FjaGVQYXRoLCAoKSk7CiAgICAgcmV0dXJuIGNhY2hlUGF0
aDsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlci5jcHAKaW5kZXggMzlhZTc5NGUyZmIwOTcyMTlhNTIyM2ViZmJlZWRm
NjliNmUyODYyYy4uY2EwNTc5ZTU4OTljYzE1ODhmOGQ2ZWQ5OWU0YjJkMTgxZWI2NzZmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbk1haW5UaHJlYWRTY2hlZHVs
ZXIuY3BwCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlciYgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIsIHNj
aGVkdWxlciwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVnaW5N
YWluVGhyZWFkU2NoZWR1bGVyLCBzY2hlZHVsZXIsICgpKTsKIAogICAgIHJldHVybiBzY2hlZHVs
ZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA3YWJj
NjI2ZGZkNmE1MDdkYTRhYjVhNTRiMjc2MzVjYzAwNGE5YTI2Li5lMzgxYTA2MDk0YWNiYmJjZjUy
ZGMxZjQzMDE4ZTg1ZDJmNzM5NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTI0MTMsNyArMjQxMyw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6
YmxvY2tFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKICAgICAKIHN0YXRpYyBDb250aW51YXRp
b25PdXRsaW5lVGFibGVNYXAqIGNvbnRpbnVhdGlvbk91dGxpbmVUYWJsZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXAsIHRhYmxlLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRpbnVhdGlvbk91dGxpbmVU
YWJsZU1hcCwgdGFibGUsICgpKTsKICAgICByZXR1cm4gJnRhYmxlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDc3
Mjg0MjU1OTQwMWI1NWJlNzRmNjA1MWRmZDk1MzUzODNmYmM0NzIuLjUzZTlmNjE1OGRlMmUyNTAy
YTVjNmIzN2YyNThkOTBmYmYzZTk1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0yMDU5LDcgKzIwNTksNyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6Y2hlY2tMaW5lc0ZvclRleHRPdmVyZmxvdygpCiAgICAgLy8gRGV0
ZXJtaW5lIHRoZSB3aWR0aCBvZiB0aGUgZWxsaXBzaXMgdXNpbmcgdGhlIGN1cnJlbnQgZm9udC4K
ICAgICAvLyBGSVhNRTogQ1NTMyBzYXlzIHRoaXMgaXMgY29uZmlndXJhYmxlLCBhbHNvIG5lZWQg
dG8gdXNlIDB4MDAyRSAoRlVMTCBTVE9QKSBpZiBob3Jpem9udGFsIGVsbGlwc2lzIGlzICJub3Qg
cmVuZGVyYWJsZSIKICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS5mb250KCk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250
YWxFbGxpcHNpcywgMSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGVsbGlwc2lzU3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOwogICAgIGNv
bnN0IEZvbnQmIGZpcnN0TGluZUZvbnQgPSBmaXJzdExpbmVTdHlsZSgpLmZvbnQoKTsKICAgICBp
bnQgZmlyc3RMaW5lRWxsaXBzaXNXaWR0aCA9IGZpcnN0TGluZUZvbnQud2lkdGgoY29uc3RydWN0
VGV4dFJ1bih0aGlzLCBmaXJzdExpbmVGb250LCAmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBmaXJz
dExpbmVTdHlsZSgpKSk7CiAgICAgaW50IGVsbGlwc2lzV2lkdGggPSAoZm9udCA9PSBmaXJzdExp
bmVGb250KSA/IGZpcnN0TGluZUVsbGlwc2lzV2lkdGggOiBmb250LndpZHRoKGNvbnN0cnVjdFRl
eHRSdW4odGhpcywgZm9udCwgJmhvcml6b250YWxFbGxpcHNpcywgMSwgc3R5bGUoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb21iaW5lVGV4dC5jcHAKaW5kZXggZGQ0
ZmQzMTdiZjJmNmY1Zjg3YTk0YTI2YTBlOGE2NzFkNjVkMTQ0MC4uZmZlZTAwZjE3MzY2ODMxZWE2
Y2IxYWQyMjhlZjBiMGFjN2JkNzk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQ29tYmluZVRleHQuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBSZW5kZXJDb21i
aW5lVGV4dDo6Y29tYmluZVRleHQoKQogICAgICAgICBtX2NvbWJpbmVGb250U3R5bGUtPmZvbnQo
KS51cGRhdGUoZm9udFNlbGVjdG9yKTsKIAogICAgIGlmIChtX2lzQ29tYmluZWQpIHsKLSAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVy
U3RyaW5nLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFj
dGVyU3RyaW5nLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CiAgICAgICAgIFJl
bmRlclRleHQ6OnNldFRleHRJbnRlcm5hbChvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlclN0cmlu
Zy5pbXBsKCkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3Vu
dGVyLmNwcAppbmRleCA1ZmFhZjE5ZjQyYjY5MmQxODgwMmNlOWQ0MDM3N2IyNWIzNzU5OGZiLi4x
ZmQ5ZGM5ODQwYzU3ODI1ZGUxNDA1MGE5YmQ0YjhlOWQxMmUxN2U5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBD
b3VudGVyTm9kZSogbWFrZUNvdW50ZXJOb2RlKFJlbmRlck9iamVjdCosIGNvbnN0IEF0b21pY1N0
cmluZyYgaWRlbnRpZmllCiAKIHN0YXRpYyBDb3VudGVyTWFwcyYgY291bnRlck1hcHMoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ291bnRlck1hcHMsIHN0YXRpY0NvdW50ZXJNYXBzLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKENvdW50ZXJNYXBzLCBzdGF0
aWNDb3VudGVyTWFwcywgKCkpOwogICAgIHJldHVybiBzdGF0aWNDb3VudGVyTWFwczsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcAppbmRleCA4ZDljNmMxMWFlYjU3YjU1ZWQxNDAxYTc3ZjVmZDg4MTJkYjZk
OTBhLi41ODU4NTE3Y2Q4Yzk1OGU4OGZmOTNmZTVlYTcxODNkYWFlZThhOWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcApAQCAtOTk2LDggKzk5Niw4IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRlcmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBjb25zdCBVQ2hhciBlbGxpcHNpc0FuZFNwYWNl
WzJdID0geyBob3Jpem9udGFsRWxsaXBzaXMsICcgJyB9OwotICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgZWxsaXBzaXNBbmRTcGFjZVN0ciwgKGVsbGlwc2lzQW5kU3Bh
Y2UsIDIpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGVsbGlw
c2lzU3RyLCAoJmhvcml6b250YWxFbGxpcHNpcywgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc0FuZFNwYWNlU3RyLCAoZWxs
aXBzaXNBbmRTcGFjZSwgMikpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBlbGxpcHNpc1N0ciwgKCZob3Jpem9udGFsRWxsaXBzaXMsIDEpKTsK
ICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSA9IG51bVZpc2libGVMaW5lcyA9
PSAxID8gZmlyc3RMaW5lU3R5bGUoKSA6IHN0eWxlKCk7CiAgICAgICAgIGNvbnN0IEZvbnQmIGZv
bnQgPSBsaW5lU3R5bGUuZm9udCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklucHV0U3BlZWNoLmNwcAppbmRleCBiYmFiMjc5YjcxZTc3ZWI2NjAxMDI3MjE2NzdhMDA0
NjkzZGJiNWZiLi5kODE4M2M3ZmUxZjA4ZTliNTNlODFhZjI4MzhjY2I2YjY3MjJiMjA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKQEAgLTgz
LDkgKzgzLDkgQEAgYm9vbCBSZW5kZXJJbnB1dFNwZWVjaDo6cGFpbnRJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdAogICAgIC8vIEFjY291bnQgZm9yIHRo
ZSBsb2NhbCBkcmF3aW5nIG9mZnNldC4KICAgICBidXR0b25SZWN0Lm1vdmVCeShyZWN0LmxvY2F0
aW9uKCkpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0
YXRlTm9ybWFsLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaCIpKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlUmVjb3Jk
aW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNwZWVjaFJlY29yZGluZyIp
KSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBpbWFnZVN0YXRlV2Fp
dGluZywgKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgiaW5wdXRTcGVlY2hXYWl0aW5nIikp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEltYWdlPiwgaW1h
Z2VTdGF0ZU5vcm1hbCwgKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgiaW5wdXRTcGVlY2gi
KSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8SW1hZ2U+LCBp
bWFnZVN0YXRlUmVjb3JkaW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJpbnB1dFNw
ZWVjaFJlY29yZGluZyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJl
ZlB0cjxJbWFnZT4sIGltYWdlU3RhdGVXYWl0aW5nLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291
cmNlKCJpbnB1dFNwZWVjaFdhaXRpbmciKSkpOwogCiAgICAgSW5wdXRGaWVsZFNwZWVjaEJ1dHRv
bkVsZW1lbnQqIHNwZWVjaEJ1dHRvbiA9IHRvSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQo
ZWxlbWVudCk7CiAgICAgSW1hZ2UqIGltYWdlID0gaW1hZ2VTdGF0ZU5vcm1hbC5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDAzMzg3Y2Y0ZTZkNDRj
NWM4ZWVkZDk1MjYyYmE2ZWIzYzhkNTBmMTYuLmEyZDY1M2RlNjVlMmYyMDVjYjM3YTBjYzYzOTM1
Mzk4Y2FiYWM4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApA
QCAtMzQzNSwxMiArMzQzNSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNp
emVySW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdQogICAgIFJlZlB0
cjxJbWFnZT4gcmVzaXplQ29ybmVySW1hZ2U7CiAgICAgSW50U2l6ZSBjb3JuZXJSZXNpemVyU2l6
ZTsKICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkgPj0g
MikgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEltYWdlKiwgcmVzaXplQ29ybmVySW1h
Z2VIaVJlcywgKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgidGV4dEFyZWFSZXNpemVDb3Ju
ZXJAMngiKS5sZWFrUmVmKCkpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKEltYWdlKiwgcmVzaXplQ29ybmVySW1hZ2VIaVJlcywgKEltYWdlOjpsb2FkUGxhdGZvcm1S
ZXNvdXJjZSgidGV4dEFyZWFSZXNpemVDb3JuZXJAMngiKS5sZWFrUmVmKCkpKTsKICAgICAgICAg
cmVzaXplQ29ybmVySW1hZ2UgPSByZXNpemVDb3JuZXJJbWFnZUhpUmVzOwogICAgICAgICBjb3Ju
ZXJSZXNpemVyU2l6ZSA9IHJlc2l6ZUNvcm5lckltYWdlLT5zaXplKCk7CiAgICAgICAgIGNvcm5l
clJlc2l6ZXJTaXplLnNjYWxlKDAuNWYpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSW1hZ2UqLCByZXNpemVDb3JuZXJJbWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQ
bGF0Zm9ybVJlc291cmNlKCJ0ZXh0QXJlYVJlc2l6ZUNvcm5lciIpLmxlYWtSZWYoKSkpOworICAg
ICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSW1hZ2UqLCByZXNpemVDb3JuZXJJ
bWFnZUxvUmVzLCAoSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJ0ZXh0QXJlYVJlc2l6ZUNv
cm5lciIpLmxlYWtSZWYoKSkpOwogICAgICAgICByZXNpemVDb3JuZXJJbWFnZSA9IHJlc2l6ZUNv
cm5lckltYWdlTG9SZXM7CiAgICAgICAgIGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXplQ29ybmVy
SW1hZ2UtPnNpemUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhclRoZW1lLmNwcAppbmRleCA5YjlmNjcxNTVjYmFiMTQ1NjYwZWEyM2IzODU5
ZGY1MzY3ZGRjOGYxLi43OWI1ZDgyMGY2MWRkNmY0ZGZhMjgyOWFlOWVhNGFiNTJmZTU0YTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTY3JvbGxi
YXJUaGVtZSogUmVuZGVyU2Nyb2xsYmFyVGhlbWU6OnJlbmRlclNjcm9sbGJhclRoZW1lKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlbmRlclNjcm9sbGJhclRoZW1lLCB0aGVtZSwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChSZW5kZXJTY3JvbGxiYXJUaGVt
ZSwgdGhlbWUsICgpKTsKICAgICByZXR1cm4gJnRoZW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA5YzkyMWM0NDE2YmQ4NDE2NDA4MGQ5MDJmMzM1
OGU1NzA4MDdjZTk2Li43Njg5MThjYjk4ZDRmOTdhYzE1MmE5YTY1M2Y2ZTkzOWRkYWExN2NiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTY5LDcgKzY5LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogc3RhdGljIENvbG9yJiBjdXN0b21Gb2N1
c1JpbmdDb2xvcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb2xvciwgY29sb3IsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGNvbG9yLCAoKSk7
CiAgICAgcmV0dXJuIGNvbG9yOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggZjUxMDllMGVhZmE1MWRmYmJjOWE5YmQ2YWMwYTYyMzk5OThlNGU5
OC4uMDU2ZTlkNDc2ZjQ4NDQ0NGE1ZmUxZDIwYjEwNTdkODRmN2IwNjliOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMzE0LDEzICszMTQsMTMgQEAg
c3RhdGljIEZvbnRXZWlnaHQgdG9Gb250V2VpZ2h0KE5TSW50ZWdlciBhcHBLaXRGb250V2VpZ2h0
KQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Gb250KENTU1ZhbHVlSUQgY3NzVmFsdWVJ
ZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21hbGxTeXN0ZW1Gb250LCAoKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIG1lbnVGb250LCAoKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxhYmVsRm9udCwgKCkpOwot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBtaW5pQ29udHJvbEZvbnQs
ICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnREZXNjcmlwdGlvbiwgc21hbGxDb250
cm9sRm9udCwgKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBj
b250cm9sRm9udCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250
RGVzY3JpcHRpb24sIHN5c3RlbUZvbnQsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBzbWFsbFN5c3RlbUZvbnQsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBtZW51Rm9udCwgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIGxh
YmVsRm9udCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChGb250RGVz
Y3JpcHRpb24sIG1pbmlDb250cm9sRm9udCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChGb250RGVzY3JpcHRpb24sIHNtYWxsQ29udHJvbEZvbnQsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRm9udERlc2NyaXB0aW9uLCBjb250cm9sRm9u
dCwgKCkpOwogCiAgICAgRm9udERlc2NyaXB0aW9uKiBjYWNoZWREZXNjOwogICAgIE5TRm9udCog
Zm9udCA9IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5k
ZXggOWJjMDIyYzY0NzUzNTk5NzJmNTk3MWMyMDU0YTk2NmE4OTBjNzYzNi4uNzViYTViMTRjMGZk
NDJjYmYwMzMyMGViMzUxYzg1NWVmZjllN2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcldpZGdldC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdW5zaWduZWQgV2lkZ2V0SGllcmFy
Y2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6c193aWRnZXRIaWVyYXJjaHlVcGRhdGVTdXNwZW5k
Q28KIAogV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNpb25TY29wZTo6V2lkZ2V0VG9QYXJl
bnRNYXAmIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGU6OndpZGdldE5ld1Bh
cmVudE1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXaWRnZXRUb1BhcmVudE1hcCwg
bWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdpZGdldFRvUGFy
ZW50TWFwLCBtYXAsICgpKTsKICAgICByZXR1cm4gbWFwOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggZjAzNmY1NGRmZGY3NDRhOTNiNDcwNzc0
NWUzNDQ2MmI5NjI3Y2UxOS4uYjJkOTVhOWVmMWNiYTA0OTg2MWM3NzBkY2ZjZWE4NmIwMDMwYmU4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNzMs
NyArNzMsNyBAQCBzdHJ1Y3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyB7CiBzdGF0aWMgY29u
c3QgVmVjdG9yPFF1YWxpZmllZE5hbWU+JiBmb3JtSW5wdXRUYWdzKCkKIHsKICAgICAvLyBSZXR1
cm5zIHRoZSB0YWdzIGZvciB0aGUgZm9ybSBpbnB1dCBlbGVtZW50cy4KLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFZlY3RvcjxRdWFsaWZpZWROYW1lPiwgZm9ybUlucHV0VGFncywgKCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8UXVhbGlmaWVkTmFtZT4sIGZv
cm1JbnB1dFRhZ3MsICgpKTsKICAgICBpZiAoZm9ybUlucHV0VGFncy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgZm9ybUlucHV0VGFncy5hcHBlbmQoaW5wdXRUYWcpOwogICAgICAgICBmb3JtSW5wdXRU
YWdzLmFwcGVuZChidXR0b25UYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAKaW5kZXggZDViYmRiOTJkYjQ5MTAzZDhiNzJiYzVmNWZjZmUwMmI1ZjQwNmRjNS4uYWYz
NDI1N2FlMGEzMWVmZmY5YzkxZTA3ZmNjMzE5MDc2OWViNjE5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBUZXh0UGFp
bnRlcjo6cGFpbnRUZXh0KCkKICAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0
ZUZvck1hc2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV90ZXh0UGFp
bnRTdHlsZSwgVXNlRW1waGFzaXNNYXJrQ29sb3IpOwogCi0gICAgICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4dFJ1biwgKCZv
YmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFRleHRSdW4sIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyVGV4
dFJ1biwgKCZvYmplY3RSZXBsYWNlbWVudENoYXJhY3RlciwgMSkpOwogICAgICAgICAgICAgVGV4
dFJ1biYgZW1waGFzaXNNYXJrVGV4dFJ1biA9IG1fY29tYmluZWRUZXh0ID8gb2JqZWN0UmVwbGFj
ZW1lbnRDaGFyYWN0ZXJUZXh0UnVuIDogbV90ZXh0UnVuOwogICAgICAgICAgICAgRmxvYXRQb2lu
dCBlbXBoYXNpc01hcmtUZXh0T3JpZ2luID0gbV9jb21iaW5lZFRleHQgPyBGbG9hdFBvaW50KGJv
eE9yaWdpbi54KCkgKyBtX2JveFJlY3Qud2lkdGgoKSAvIDIsIGJveE9yaWdpbi55KCkgKyBtX2Zv
bnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgOiBtX3RleHRPcmlnaW47CiAgICAgICAgICAgICBp
ZiAobV9jb21iaW5lZFRleHQpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6
cGFpbnRUZXh0KCkKICAgICAgICAgaWYgKCFtX2VtcGhhc2lzTWFyay5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dCgqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1h
c2subV9jb250ZXh0LCAqbV9zYXZlZERyYXdpbmdTdGF0ZUZvck1hc2subV9zZWxlY3Rpb25QYWlu
dFN0eWxlLCBVc2VFbXBoYXNpc01hcmtDb2xvcik7CiAKLSAgICAgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0UnVuLCAoJm9i
amVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoVGV4dFJ1biwgb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXJUZXh0
UnVuLCAoJm9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCAxKSk7CiAgICAgICAgICAgICBUZXh0
UnVuJiBlbXBoYXNpc01hcmtUZXh0UnVuID0gbV9jb21iaW5lZFRleHQgPyBvYmplY3RSZXBsYWNl
bWVudENoYXJhY3RlclRleHRSdW4gOiBtX3RleHRSdW47CiAgICAgICAgICAgICBGbG9hdFBvaW50
IGVtcGhhc2lzTWFya1RleHRPcmlnaW4gPSBtX2NvbWJpbmVkVGV4dCA/IEZsb2F0UG9pbnQoYm94
T3JpZ2luLngoKSArIG1fYm94UmVjdC53aWR0aCgpIC8gMiwgYm94T3JpZ2luLnkoKSArIG1fZm9u
dC5mb250TWV0cmljcygpLmFzY2VudCgpKSA6IG1fdGV4dE9yaWdpbjsKICAgICAgICAgICAgIGlm
IChtX2NvbWJpbmVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
SW5mby5oCmluZGV4IGU0Y2ViYzNiYWU0MDUzNTUzYzI0NTgwODMzNTZjMDIzMzUwYzU4ZDcuLmU3
N2VhZThkYjNiYTEwNWYwMDUyYjc4MTU3YTY1MDI2ODdlNTQzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRl
OgogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBLZXlUeXBlKiwgc3RkOjp1bmlxdWVfcHRyPElu
Zm9UeXBlPj4gSW5mb01hcDsKICAgICBzdGF0aWMgSW5mb01hcCYgaW5mb01hcCgpCiAgICAgewot
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgpKTsK
KyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEluZm9NYXAsIHN0YXRpY0lu
Zm9NYXAsICgpKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY0luZm9NYXA7CiAgICAgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFRyYWNrU2l6ZS5oCmluZGV4IGQx
YzY2OTI2M2FjYWVlZTlmYWQzOTI5YmI0OWFiNDZlNmZlNjg2ZTguLmEwMWI1Mjk0ZDVhYWNjNzVh
ZDIxZDNhNGI2NTViMmI5YTc2OTE2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRUcmFja1NpemUuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBBU1NFUlQoIW1fbWluVHJhY2tCcmVhZHRoLmlzTGVuZ3RoKCkgfHwgIW1fbWluVHJh
Y2tCcmVhZHRoLmxlbmd0aCgpLmlzVW5kZWZpbmVkKCkpOwogICAgICAgICBpZiAobV9taW5UcmFj
a0JyZWFkdGguaXNMZW5ndGgoKSAmJiBtX21pblRyYWNrQnJlYWR0aC5sZW5ndGgoKS5pc0F1dG8o
KSkgewotICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChHcmlkTGVuZ3RoLCBtaW5Db250
ZW50LCAoTWluQ29udGVudCkpOworICAgICAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEdyaWRMZW5ndGgsIG1pbkNvbnRlbnQsIChNaW5Db250ZW50KSk7CiAgICAgICAgICAg
ICByZXR1cm4gbWluQ29udGVudDsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9taW5UcmFj
a0JyZWFkdGg7CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VS
VCghbV9tYXhUcmFja0JyZWFkdGguaXNMZW5ndGgoKSB8fCAhbV9tYXhUcmFja0JyZWFkdGgubGVu
Z3RoKCkuaXNVbmRlZmluZWQoKSk7CiAgICAgICAgIGlmIChtX21heFRyYWNrQnJlYWR0aC5pc0xl
bmd0aCgpICYmIG1fbWF4VHJhY2tCcmVhZHRoLmxlbmd0aCgpLmlzQXV0bygpKSB7Ci0gICAgICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEdyaWRMZW5ndGgsIG1heENvbnRlbnQsIChNYXhDb250
ZW50KSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoR3JpZExl
bmd0aCwgbWF4Q29udGVudCwgKE1heENvbnRlbnQpKTsKICAgICAgICAgICAgIHJldHVybiBtYXhD
b250ZW50OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX21heFRyYWNrQnJlYWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdl
NWExMDQzYzIzZjBiYmM5NjE2MzQyNWNlYzQ0MGU2YjY5OTY2ZGIuLjI5MjhkMTFiYmVlYTdiNzNi
YTc2YTA2NzFkMTAyYWYxOGViZjFiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE2Niw4ICsxMTY2LDggQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBSZW5kZXJTdHlsZTo6aHlwaGVuU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGh5cGhlbmF0aW9uU3RyaW5nOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRlcGVuZCBv
biBsb2NhbGUuCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGh5cGhlbk1p
bnVzU3RyaW5nLCAoJmh5cGhlbk1pbnVzLCAxKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGh5cGhlblN0cmluZywgKCZoeXBoZW4sIDEpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBoeXBoZW5NaW51c1N0cmluZywgKCZo
eXBoZW5NaW51cywgMSkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGh5cGhlblN0cmluZywgKCZoeXBoZW4sIDEpKTsKICAgICByZXR1cm4gZm9udCgp
LnByaW1hcnlGb250SGFzR2x5cGhGb3JDaGFyYWN0ZXIoaHlwaGVuKSA/IGh5cGhlblN0cmluZyA6
IGh5cGhlbk1pbnVzU3RyaW5nOwogfQogCkBAIC0xMTc5LDI4ICsxMTc5LDI4IEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgUmVuZGVyU3R5bGU6OnRleHRFbXBoYXNpc01hcmtTdHJpbmcoKSBjb25zdAog
ICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0N1c3RvbToKICAgICAgICAgcmV0dXJuIHRleHRFbXBo
YXNpc0N1c3RvbU1hcmsoKTsKICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtEb3Q6IHsKLSAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxlZERvdFN0cmluZywgKCZi
dWxsZXQsIDEpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9w
ZW5Eb3RTdHJpbmcsICgmd2hpdGVCdWxsZXQsIDEpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG90U3RyaW5nLCAoJmJ1bGxldCwg
MSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBvcGVuRG90U3RyaW5nLCAoJndoaXRlQnVsbGV0LCAxKSk7CiAgICAgICAgIHJldHVybiB0ZXh0
RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVtcGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZERvdFN0cmlu
ZyA6IG9wZW5Eb3RTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0NpcmNs
ZTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkQ2ly
Y2xlU3RyaW5nLCAoJmJsYWNrQ2lyY2xlLCAxKSk7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRlQ2lyY2xlLCAxKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGZpbGxl
ZENpcmNsZVN0cmluZywgKCZibGFja0NpcmNsZSwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBvcGVuQ2lyY2xlU3RyaW5nLCAoJndoaXRl
Q2lyY2xlLCAxKSk7CiAgICAgICAgIHJldHVybiB0ZXh0RW1waGFzaXNGaWxsKCkgPT0gVGV4dEVt
cGhhc2lzRmlsbEZpbGxlZCA/IGZpbGxlZENpcmNsZVN0cmluZyA6IG9wZW5DaXJjbGVTdHJpbmc7
CiAgICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya0RvdWJsZUNpcmNsZTogewotICAgICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91YmxlQ2lyY2xlU3Ry
aW5nLCAoJmZpc2hleWUsIDEpKTsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG9wZW5Eb3VibGVDaXJjbGVTdHJpbmcsICgmYnVsbHNleWUsIDEpKTsKKyAgICAgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkRG91Ymxl
Q2lyY2xlU3RyaW5nLCAoJmZpc2hleWUsIDEpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlbkRvdWJsZUNpcmNsZVN0cmluZywgKCZidWxs
c2V5ZSwgMSkpOwogICAgICAgICByZXR1cm4gdGV4dEVtcGhhc2lzRmlsbCgpID09IFRleHRFbXBo
YXNpc0ZpbGxGaWxsZWQgPyBmaWxsZWREb3VibGVDaXJjbGVTdHJpbmcgOiBvcGVuRG91YmxlQ2ly
Y2xlU3RyaW5nOwogICAgIH0KICAgICBjYXNlIFRleHRFbXBoYXNpc01hcmtUcmlhbmdsZTogewot
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkVHJpYW5nbGVT
dHJpbmcsICgmYmxhY2tVcFBvaW50aW5nVHJpYW5nbGUsIDEpKTsKLSAgICAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG9wZW5UcmlhbmdsZVN0cmluZywgKCZ3aGl0ZVVwUG9p
bnRpbmdUcmlhbmdsZSwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBmaWxsZWRUcmlhbmdsZVN0cmluZywgKCZibGFja1VwUG9pbnRpbmdU
cmlhbmdsZSwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBvcGVuVHJpYW5nbGVTdHJpbmcsICgmd2hpdGVVcFBvaW50aW5nVHJpYW5nbGUs
IDEpKTsKICAgICAgICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNG
aWxsRmlsbGVkID8gZmlsbGVkVHJpYW5nbGVTdHJpbmcgOiBvcGVuVHJpYW5nbGVTdHJpbmc7CiAg
ICAgfQogICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFya1Nlc2FtZTogewotICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgZmlsbGVkU2VzYW1lU3RyaW5nLCAoJnNlc2FtZURv
dCwgMSkpOwotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgb3BlblNl
c2FtZVN0cmluZywgKCZ3aGl0ZVNlc2FtZURvdCwgMSkpOworICAgICAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBmaWxsZWRTZXNhbWVTdHJpbmcsICgmc2Vz
YW1lRG90LCAxKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIG9wZW5TZXNhbWVTdHJpbmcsICgmd2hpdGVTZXNhbWVEb3QsIDEpKTsKICAgICAg
ICAgcmV0dXJuIHRleHRFbXBoYXNpc0ZpbGwoKSA9PSBUZXh0RW1waGFzaXNGaWxsRmlsbGVkID8g
ZmlsbGVkU2VzYW1lU3RyaW5nIDogb3BlblNlc2FtZVN0cmluZzsKICAgICB9CiAgICAgY2FzZSBU
ZXh0RW1waGFzaXNNYXJrQXV0bzoKQEAgLTEyMTUsMTMgKzEyMTUsMTMgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBSZW5kZXJTdHlsZTo6dGV4dEVtcGhhc2lzTWFya1N0cmluZygpIGNvbnN0CiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVn
aW9uPiYgUmVuZGVyU3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4sIGVtcHR5TGlzdCwg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8U3R5bGVEYXNo
Ym9hcmRSZWdpb24+LCBlbXB0eUxpc3QsICgpKTsKICAgICByZXR1cm4gZW1wdHlMaXN0OwogfQog
CiBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+JiBSZW5kZXJTdHlsZTo6bm9uZURh
c2hib2FyZFJlZ2lvbnMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxl
RGFzaGJvYXJkUmVnaW9uPiwgbm9uZUxpc3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVnaW9uPiwgbm9uZUxpc3QsICgpKTsK
ICAgICBzdGF0aWMgYm9vbCBub25lTGlzdEluaXRpYWxpemVkID0gZmFsc2U7CiAKICAgICBpZiAo
IW5vbmVMaXN0SW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKaW5kZXggYWUwODc1ZDA3ZWQyMjBlZmU2MGM0ZmRlNzdkZDBjMjZmY2Zj
ZWFiOS4uNzMwMzBhMGE1NDZkZmE1OGRjY2NiYmZmODQwNDNmNmJjZGFkZWJiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE3NDQsNyArMTc0
NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdW5zaWduZWQgc2hvcnQgaW5pdGlhbENvbHVtbkNv
dW50KCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBDb2x1bW5GaWxsIGluaXRpYWxDb2x1bW5G
aWxsKCkgeyByZXR1cm4gQ29sdW1uRmlsbEJhbGFuY2U7IH0KICAgICBzdGF0aWMgQ29sdW1uU3Bh
biBpbml0aWFsQ29sdW1uU3BhbigpIHsgcmV0dXJuIENvbHVtblNwYW5Ob25lOyB9Ci0gICAgc3Rh
dGljIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7IERFRklO
RV9TVEFUSUNfTE9DQUwoVHJhbnNmb3JtT3BlcmF0aW9ucywgb3BzLCAoKSk7IHJldHVybiBvcHM7
IH0KKyAgICBzdGF0aWMgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgaW5pdGlhbFRyYW5zZm9y
bSgpIHsgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFRyYW5zZm9ybU9wZXJhdGlvbnMs
IG9wcywgKCkpOyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNm
b3JtT3JpZ2luWCgpIHsgcmV0dXJuIExlbmd0aCg1MC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRp
YyBMZW5ndGggaW5pdGlhbFRyYW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMCwg
UGVyY2VudCk7IH0KICAgICBzdGF0aWMgRVBvaW50ZXJFdmVudHMgaW5pdGlhbFBvaW50ZXJFdmVu
dHMoKSB7IHJldHVybiBQRV9BVVRPOyB9CkBAIC0xODI4LDcgKzE4MjgsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIG5vbmVEYXNoYm9h
cmRSZWdpb25zKCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgc3RhdGlj
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxGaWx0ZXIoKSB7IERFRklORV9TVEFUSUNf
TE9DQUwoRmlsdGVyT3BlcmF0aW9ucywgb3BzLCAoKSk7IHJldHVybiBvcHM7IH0KKyAgICBzdGF0
aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEZpbHRlcigpIHsgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEZpbHRlck9wZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1cm4gb3Bz
OyB9CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHN0YXRpYyBCbGVu
ZE1vZGUgaW5pdGlhbEJsZW5kTW9kZSgpIHsgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKaW5kZXggNGJh
YzJiMWRlYjM1NTY3YTAxZjQ5Y2ViYWFkMDk3YzlkYmQ2NTEwMC4uM2Q3OWFlZDVhNjk3MDExZDEz
YWE0NjIwNDE0MmQ5NzYxNGI1NmE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1BhdGguY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgYm9vbCBSZW5kZXJTVkdQ
YXRoOjpzaG91bGRTdHJva2VaZXJvTGVuZ3RoU3VicGF0aCgpIGNvbnN0CiAKIFBhdGgqIFJlbmRl
clNWR1BhdGg6Onplcm9MZW5ndGhMaW5lY2FwUGF0aChjb25zdCBGbG9hdFBvaW50JiBsaW5lY2Fw
UG9zaXRpb24pIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0
aCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXRoLCB0ZW1wUGF0
aCwgKCkpOwogCiAgICAgdGVtcFBhdGguY2xlYXIoKTsKICAgICBpZiAoc3R5bGUoKS5zdmdTdHls
ZSgpLmNhcFN0eWxlKCkgPT0gU3F1YXJlQ2FwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCBjOTlmM2QwZDhlNGNkOTgyMTU3M2Q3YTYz
Y2JmNjBhMGYxMWM3YjE0Li44ZTAzYjIxNWY4NjBkYTM0ODM2NTNkMzdkNjA5ZjQ2OTE3NzgzODQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNw
cApAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgUmVuZGVyU1ZHU2hhcGU6OmxheW91dCgpCiAKIFBh
dGgqIFJlbmRlclNWR1NoYXBlOjpub25TY2FsaW5nU3Ryb2tlUGF0aChjb25zdCBQYXRoKiBwYXRo
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHN0cm9rZVRyYW5zZm9ybSkgY29uc3QKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKFBhdGgsIHRlbXBQYXRoLCAoKSk7CiAKICAgICB0ZW1wUGF0aCA9
ICpwYXRoOwogICAgIHRlbXBQYXRoLnRyYW5zZm9ybShzdHJva2VUcmFuc2Zvcm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggNTUwM2E3ZDFhMjRhMGJhZWVmNmM4Yzc1MzBhMTkxOTM0MDI5MGJkZC4uYTE0NDcwOTYz
N2VjZmMzMDRkYWIyNWIyZjE3NDdkMWNkNmEwZDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0
LDcgQEAgdm9pZCBTVkdSZW5kZXJpbmdDb250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50
KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBQYWkKIAogc3RhdGljIEFmZmluZVRyYW5zZm9ybSYg
Y3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBZmZpbmVUcmFuc2Zvcm0sIHNfY3VycmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbiwgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBZmZpbmVUcmFuc2Zvcm0sIHNfY3Vy
cmVudENvbnRlbnRUcmFuc2Zvcm1hdGlvbiwgKCkpOwogICAgIHJldHVybiBzX2N1cnJlbnRDb250
ZW50VHJhbnNmb3JtYXRpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVzb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVzb3VyY2VzLmNwcAppbmRleCBmNGNkNjIxZjRjOTk1M2I0YmQxOTYyNjczMzNkOWEzN2M2
NjI1YjBlLi4wMDA1MGRhNTgzMDU2ZDVjMDc1ZGQ3YmMxNDA4YzRkY2JlZjg5NTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCkBAIC00NCw3ICs0
NCw3IEBAIFNWR1Jlc291cmNlczo6U1ZHUmVzb3VyY2VzKCkKIAogc3RhdGljIEhhc2hTZXQ8QXRv
bWljU3RyaW5nPiYgY2xpcHBlckZpbHRlck1hc2tlclRhZ3MoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xp
c3QsICgpKTsKICAgICBpZiAoc190YWdMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyAiY29u
dGFpbmVyIGVsZW1lbnRzIjogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvaW50cm8uaHRtbCNU
ZXJtQ29udGFpbmVyRWxlbWVudAogICAgICAgICAvLyAiZ3JhcGhpY3MgZWxlbWVudHMiIDogaHR0
cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvaW50cm8uaHRtbCNUZXJtR3JhcGhpY3NFbGVtZW50CkBA
IC05Myw3ICs5Myw3IEBAIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGNsaXBwZXJGaWx0
ZXJNYXNrZXJUYWdzKCkKIAogc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgbWFya2VyVGFn
cygpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PEF0b21pY1N0cmluZz4sIHNf
dGFnTGlzdCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PEF0b21pY1N0cmluZz4sIHNfdGFnTGlzdCwgKCkpOwogICAgIGlmIChzX3RhZ0xpc3QuaXNFbXB0
eSgpKSB7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQoU1ZHTmFtZXM6OmxpbmVUYWcubG9jYWxOYW1l
KCkpOwogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNWR05hbWVzOjpwYXRoVGFnLmxvY2FsTmFtZSgp
KTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBtYXJr
ZXJUYWdzKCkKIAogc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiYgZmlsbEFuZFN0cm9rZVRh
Z3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBz
X3RhZ0xpc3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKICAgICBpZiAoc190YWdMaXN0LmlzRW1w
dHkoKSkgewogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNWR05hbWVzOjphbHRHbHlwaFRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQoU1ZHTmFtZXM6OmNpcmNsZVRhZy5sb2Nh
bE5hbWUoKSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5n
PiYgZmlsbEFuZFN0cm9rZVRhZ3MoKQogCiBzdGF0aWMgSGFzaFNldDxBdG9taWNTdHJpbmc+JiBj
aGFpbmFibGVSZXNvdXJjZVRhZ3MoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxBdG9taWNTdHJpbmc+LCBzX3RhZ0xpc3QsICgpKTsKICAgICBp
ZiAoc190YWdMaXN0LmlzRW1wdHkoKSkgewogICAgICAgICBzX3RhZ0xpc3QuYWRkKFNWR05hbWVz
OjpsaW5lYXJHcmFkaWVudFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgIHNfdGFnTGlzdC5hZGQo
U1ZHTmFtZXM6OmZpbHRlclRhZy5sb2NhbE5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRDaHVua0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNwcAppbmRleCBjYjkzMDgzMTll
NjVlYTA2NWU2YzQ4ZGM5ZWM0ZTM2ZTZiODE5YTk2Li4yYzQ3MjA0NjA1OGM0NTQyN2M3OTFkMjY3
MjA5NGZlN2JkYzM1OTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1RleHRDaHVua0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHVGV4dENodW5rQnVpbGRlci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgU1ZHVGV4dENodW5r
QnVpbGRlcjo6U1ZHVGV4dENodW5rQnVpbGRlcigpCiAKIHZvaWQgU1ZHVGV4dENodW5rQnVpbGRl
cjo6dHJhbnNmb3JtYXRpb25Gb3JUZXh0Qm94KFNWR0lubGluZVRleHRCb3gqIHRleHRCb3gsIEFm
ZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQWZmaW5lVHJhbnNmb3JtLCBzX2lkZW50aXR5VHJhbnNmb3JtLCAoKSk7CisgICAg
REVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEFmZmluZVRyYW5zZm9ybSwgc19p
ZGVudGl0eVRyYW5zZm9ybSwgKCkpOwogICAgIGlmICghbV90ZXh0Qm94VHJhbnNmb3JtYXRpb25z
LmNvbnRhaW5zKHRleHRCb3gpKSB7CiAgICAgICAgIHRyYW5zZm9ybSA9IHNfaWRlbnRpdHlUcmFu
c2Zvcm07CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggMmFjNWRiNGE3YzA1ZTFlMGYyYzU1YmU2ZTczYjlm
NDA4NDI3ZTg0Ny4uZTdkMjgwZTI4Yjg3NGViNWI2ZTE1MjBlNDE4ODFiNDNjZTg5MjdiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU3RvcmFnZU5hbWVzcGFjZSo+
IExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcDsKIAogc3RhdGljIExvY2FsU3RvcmFnZU5hbWVzcGFj
ZU1hcCYgbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKExvY2FsU3RvcmFnZU5hbWVzcGFjZU1hcCwgbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwLCAo
KSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsU3RvcmFnZU5hbWVz
cGFjZU1hcCwgbG9jYWxTdG9yYWdlTmFtZXNwYWNlTWFwLCAoKSk7CiAgICAgcmV0dXJuIGxvY2Fs
U3RvcmFnZU5hbWVzcGFjZU1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKaW5kZXggNzhmYmU3MDMyOWM3N2NjMWZjNDMzOGVkMjVlYjc1OTcyZDc4ODJlMy4u
YmJhMTIwZmJmOTU1ZjEwNmJmMGVkNmQ4MjA5YjBiYjkwMDVkMGE2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0YXRpYyBIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiYgYWN0aXZlU3RvcmFnZVRo
cmVhZHMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiwgdGhyZWFkcywgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFN0b3JhZ2VUaHJlYWQqPiwgdGhyZWFk
cywgKCkpOwogICAgIHJldHVybiB0aHJlYWRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmNwcAppbmRleCBmY2E4YjdhM2Y4NWMwNjdiM2JiYTAxMmQ4NDlkNDIzNGViZDYyZGU1Li5mMWVi
Nzg4YzdmMWM0OGFiNWE5M2VjNTk5ODZiMDA1MDNjMWViNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
RWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgU3RyaW5nIFNWR0FFbGVtZW50Ojp0aXRsZSgp
IGNvbnN0CiAKIGJvb2wgU1ZHQUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FU
RURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0
ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5jcHAKaW5kZXggY2Rj
NGZjNDgxMGQ5MGRjYTI4ZTMxMmZkM2FmNWY5M2QxMjgyNmE0ZS4uOTRlOGZiMmE2NzRjZDg2OTdj
N2M2OGMzMGE2YTY4ODViMWNkNDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuY3BwCkBAIC0xMTIs
MTUgKzExMiwxNSBAQCBTdHJpbmcgU1ZHQW5nbGU6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogewog
ICAgIHN3aXRjaCAobV91bml0VHlwZSkgewogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9ERUc6IHsK
LSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZ1N0cmluZywgKEFTQ0lJTGl0
ZXJhbCgiZGVnIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgZGVnU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJkZWciKSkpOwogICAgICAgICByZXR1cm4g
U3RyaW5nOjpudW1iZXIobV92YWx1ZUluU3BlY2lmaWVkVW5pdHMpICsgZGVnU3RyaW5nOwogICAg
IH0KICAgICBjYXNlIFNWR19BTkdMRVRZUEVfUkFEOiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCByYWRTdHJpbmcsIChBU0NJSUxpdGVyYWwoInJhZCIpKSk7CisgICAgICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHJhZFN0cmluZywgKEFTQ0lJ
TGl0ZXJhbCgicmFkIikpKTsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJ
blNwZWNpZmllZFVuaXRzKSArIHJhZFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfQU5HTEVU
WVBFX0dSQUQ6IHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGdyYWRTdHJp
bmcsIChBU0NJSUxpdGVyYWwoImdyYWQiKSkpOworICAgICAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBncmFkU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJncmFkIikpKTsK
ICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKSAr
IGdyYWRTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJRklFRDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAppbmRleCAy
YTRhMjhiOGE5ZTRkOWFjMTIyZjVhNjg0ZWJkZTlmZTVhMWMzNzM4Li45ZTFkYjEzOThjYjUxNjJl
YjFkNWIxYjE0MWI3ZWVmZTAyMGVmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVDb2xvckVsZW1lbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFBhc3NSZWZQdHI8U1ZHQW5p
bWF0ZUNvbG9yRWxlbWVudD4gU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllCiAKIHN0YXRpYyBib29sIGF0dHJpYnV0ZVZhbHVlSXNDdXJyZW50Q29sb3IoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgY3VycmVudENvbG9yLCAoImN1cnJlbnRDb2xvciIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBjdXJyZW50Q29sb3IsICgiY3VycmVudENvbG9yIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiB2YWx1ZSA9PSBjdXJyZW50
Q29sb3I7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDVjMGZhMjI3YTJjOTMzODQ2NzcwYmI2NmJhOGFiNjVhYzdkZDk3YjYuLjM4
ZWM0NjJhYzQzMGVmYzQyNDM5MWFiYmRiNTUwNmNhZDhjZDhlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtOTcsNyArOTcsNyBAQCBi
b29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpoYXNWYWxpZEF0dHJpYnV0ZU5hbWUoKQogCiBi
b29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hT
ZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVk
QXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnBhdGhBdHRyKTsKICAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOwpAQCAtMTIyLDggKzEyMiw4IEBAIHZvaWQgU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0CiAgICAgCiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmlt
YXRlTW90aW9uRWxlbWVudDo6cm90YXRlTW9kZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IEF0b21pY1N0cmluZywgYXV0b1JldmVyc2UsICgiYXV0by1yZXZlcnNlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGF1dG9WYWwsICgiYXV0byIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBhdXRvUmV2ZXJzZSwgKCJhdXRvLXJldmVyc2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
JiByb3RhdGUgPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwogICAgIGlmIChy
b3RhdGUgPT0gYXV0b1ZhbCkKICAgICAgICAgcmV0dXJuIFJvdGF0ZUF1dG87CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAppbmRleCBlODZh
MTYyNTFiOTBjYzIzOTk0MjhiNGFiOGZlZTZmNmVkNGE3MDFmLi5lNGMyZmE4MDAzMzI0OWMzYmI2
ODQ1ODlkZGNjMDYwNDk0NDUxYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBTVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkKIAogYm9vbCBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0eXBlQXR0cik7CiAgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguY3BwCmlu
ZGV4IDIxMWUxYTFiYjM2YzE5ZjkzYTRmODcyNGU3MzAwNWYwOWMxMjQ3ZGQuLmQ0MzBjMzYyNjJl
ZTJhZjdkNmQ1ZTAyNjRjNzQ2ODZlYWI0OWRkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZExlbmd0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTGVuZ3RoLmNwcApAQCAtMzMsNyArMzMsNyBAQCBTVkdBbmltYXRlZExlbmd0aEFuaW1h
dG9yOjpTVkdBbmltYXRlZExlbmd0aEFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW1h
dAogCiBzdGF0aWMgaW5saW5lIFNWR0xlbmd0aCYgc2hhcmVkU1ZHTGVuZ3RoKFNWR0xlbmd0aE1v
ZGUgbW9kZSwgY29uc3QgU3RyaW5nJiB2YWx1ZUFzU3RyaW5nKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU1ZHTGVuZ3RoLCBzaGFyZWRMZW5ndGgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBzaGFyZWRMZW5ndGgsICgpKTsKICAgICBzaGFy
ZWRMZW5ndGguc2V0VmFsdWVBc1N0cmluZyh2YWx1ZUFzU3RyaW5nLCBtb2RlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKICAgICByZXR1cm4gc2hhcmVkTGVuZ3RoOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmluZGV4IGNiYmIwOTBkMjFkOWJjMDc3ZDk3MTFk
Yjc3OTVlZWZkMWFhMmRhNzYuLmNlOTFmMWJkODM0NTdhY2JmYmVjM2ZjMDEwZDVjNjlkMDk4ZmFh
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKQEAgLTE0
MCw3ICsxNDAsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZUtleVNwbGluZXMoY29uc3QgU3RyaW5nJiBw
YXJzZSwgVmVjdG9yPFVuaXRCZXppZXI+JiByZXN1bHQpCiAKIGJvb2wgU1ZHQW5pbWF0aW9uRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBp
ZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVGVzdHM6OmFk
ZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVk
QXR0cmlidXRlcyk7CkBAIC0yOTEsMTAgKzI5MSwxMCBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUoKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNl
dENhbGNNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgY2FsY01vZGUpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRpc2NyZXRlLCAoImRpc2NyZXRlIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCBsaW5lYXIsICgibGluZWFyIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBwYWNlZCwgKCJwYWNlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3Bs
aW5lLCAoInNwbGluZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkaXNj
cmV0ZSwgKCJkaXNjcmV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBs
aW5lYXIsICgibGluZWFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHBh
Y2VkLCAoInBhY2VkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNwbGlu
ZSwgKCJzcGxpbmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
aWYgKGNhbGNNb2RlID09IGRpc2NyZXRlKQogICAgICAgICBzZXRDYWxjTW9kZShDYWxjTW9kZURp
c2NyZXRlKTsKICAgICBlbHNlIGlmIChjYWxjTW9kZSA9PSBsaW5lYXIpCkBAIC0zMDksOCArMzA5
LDggQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpzZXRDYWxjTW9kZShjb25zdCBBdG9taWNT
dHJpbmcmIGNhbGNNb2RlKQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNldEF0dHJpYnV0
ZVR5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVUeXBlKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBjc3MsICgiQ1NTIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCB4bWwsICgiWE1MIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIGNzcywgKCJDU1MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
eG1sLCAoIlhNTCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBp
ZiAoYXR0cmlidXRlVHlwZSA9PSBjc3MpCiAgICAgICAgIG1fYXR0cmlidXRlVHlwZSA9IEF0dHJp
YnV0ZVR5cGVDU1M7CiAgICAgZWxzZSBpZiAoYXR0cmlidXRlVHlwZSA9PSB4bWwpCkBAIC0zMzcs
MTQgKzMzNywxNCBAQCBTdHJpbmcgU1ZHQW5pbWF0aW9uRWxlbWVudDo6ZnJvbVZhbHVlKCkgY29u
c3QKIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VtLCAoInN1bSIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUgPSBmYXN0R2V0QXR0cmlidXRlKFNWR05hbWVzOjphZGRpdGl2ZUF0dHIpOwogICAgIHJldHVy
biB2YWx1ZSA9PSBzdW0gfHwgYW5pbWF0aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uOwogfQogCiBi
b29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQoKSBjb25zdAogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzdW0sICgic3VtIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHN1bSwgKCJzdW0iLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9
IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmFjY3VtdWxhdGVBdHRyKTsKICAgICByZXR1cm4g
dmFsdWUgPT0gc3VtICYmIGFuaW1hdGlvbk1vZGUoKSAhPSBUb0FuaW1hdGlvbjsKIH0KQEAgLTY1
Myw3ICs2NTMsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmFkanVzdEZvckluaGVyaXRh
bmNlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0CiAKIHN0YXRpYyBib29sIGluaGVy
aXRzRnJvbVByb3BlcnR5KFNWR0VsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBpbmhlcml0LCAoImluaGVyaXQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgaW5oZXJpdCwgKCJpbmhlcml0IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwg
dmFsdWUgIT0gaW5oZXJpdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDdkMmFmMGYxODhiMGRiYjhlNjU0MThkMzkyOGFm
Y2RkMDU3NWFlNTEuLjMyOTFhMzkwNmY2N2ZlZDBjMDBiZDY0ZDI2ODViOGE3NmNhNWNmYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
UGFzc1JlZlB0cjxTVkdDaXJjbGVFbGVtZW50PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKIAogYm9vbCBTVkdDaXJjbGVFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGQ1NWE2
NWIzYjQzNjFkYjg4MTUyNzY2OTBjNmU4ZDgzYzhiMDc5ZWUuLjI2MTI3NzM3MTQwNGFjMTE2MDZl
MWY0MjRmMTdmZmE1MmQ1ZWEyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFBhc3NSZWZQdHI8U1ZHQ2xpcFBhdGhFbGVtZW50
PiBTVkdDbGlwUGF0aEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0CiAKIGJv
b2wgU1ZHQ2xpcFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAppbmRl
eCBiYmQxMTYzNGQ0NmVhMWI0MDQ1OGNjM2MxYmQzNDc2NGU2OGYyM2EzLi5jNDllOTNiOGRlYjg4
OWEwMTFhODhhODJkZTA3MTNmODEyNzE5NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OlNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KGNvbnN0IFEKIAogYm9vbCBTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRhYmxlVmFsdWVzQXR0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKaW5kZXggZGU3YzViMzMxZDUzNzhm
OTY4YzU0OWI4ODNlMmFiZWU2YmFlZDhhZi4uNzBkMzEyMGZjODU0ZDNjMjdhYmYwM2I2YjJhNTk2
MTllNjk2YWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcApAQCAt
NjYsNyArNjYsNyBAQCBTVkdDdXJzb3JFbGVtZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCiAKIGJv
b2wgU1ZHQ3Vyc29yRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJp
YnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5k
ZXggZjAwN2Q4NWZkOTE4YzVjZGQ0Y2I4YWU4OTg1Nzg4YzM5MTg1MTcxMC4uYjFlYmI5ODUyNjcz
OGNiMWY0Yzg3ZDBkYzhjN2M5ZTI3ZjI4ODBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cApAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgU1ZHRWxlbWVudDo6cmVtb3ZlSW5zdGFuY2VNYXBw
aW5nKFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UpCiBjb25zdCBIYXNoU2V0PFNWR0VsZW1l
bnRJbnN0YW5jZSo+JiBTVkdFbGVtZW50OjppbnN0YW5jZXNGb3JFbGVtZW50KCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc3ZnUmFyZURhdGEpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+LCBlbXB0eUluc3RhbmNlcywgKCkpOworICAgICAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxTVkdFbGVtZW50SW5zdGFu
Y2UqPiwgZW1wdHlJbnN0YW5jZXMsICgpKTsKICAgICAgICAgcmV0dXJuIGVtcHR5SW5zdGFuY2Vz
OwogICAgIH0KICAgICByZXR1cm4gbV9zdmdSYXJlRGF0YS0+ZWxlbWVudEluc3RhbmNlcygpOwpA
QCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQgU1ZHRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KCkKIAogYm9vbCBTVkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUmIGNoaWxkKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgaW52YWxpZFRleHRDb250ZW50LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIGludmFsaWRUZXh0Q29udGVu
dCwgKCkpOwogCiAgICAgaWYgKGludmFsaWRUZXh0Q29udGVudC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgaW52YWxpZFRleHRDb250ZW50LmFkZChTVkdOYW1lczo6dGV4dFBhdGhUYWcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggYTVkNzNmYTU4MzBiNTU5M2U3
NWIzOGIyMDU4ZjdlNTk2NzI4ZjNkNS4uZDcwOTYzNWE2OTBhNWU5MzgyODNmOGY2OTJjMDk2NGYy
Y2NkZTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiAKIGJvb2wgU1ZHRWxsaXBzZUVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFj
ZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBw
b3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJs
ZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3Bw
CmluZGV4IDg5ZDBkNDI2ZmY2ZjNjZTljZWIzNjdlYTFiMjc2OTlhZTJiNTZiNjYuLjFkZmViZjBk
Y2ZiYWM3YzA2MDQ3ZGU2ZjRhYjc5NzQ2MmE3NDI2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFNWR0ZFQmxl
bmRFbGVtZW50PiBTVkdGRUJsZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZwogCiBib29sIFNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHko
KSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bW9kZUF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5BdHRyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGIz
YWExMTU2MjU2NTZmYzM0OGM5MmI1Mjc4ZDgyNjU4ZjViNWYzNTguLjdlZDI4NDE0ZDY2MmMwNmY1
Nzk3MjU4ODgzMmRmMzQ3ZWZkM2YyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBQYXNzUmVmUHRyPFNWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50PiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZgogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1l
Piwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
dHlwZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dmFs
dWVzQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmNwcAppbmRleCAyZjdlMTg2YWY1ZDQ3YmFjMTczMDBkMTVhNzM4NjkyMjRj
ZWQ4YmMxLi5iZDQ1OWE2Yzc2ZTkwNTZhNjcwNzMwODE5YTA2ZDk2YTQzMTVkMTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAgUGFzc1JlZlB0cjxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmNyZWF0ZSgKIAogYm9vbCBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwCmluZGV4IDk3MWRiYzM4M2EwZTY0NjY0OWMyNjM2NjJkOGE4YmU3YTNlZTJlZDQuLjFl
NmNkOGU5ODYzYzYxZDc0YmJmOWUyYmNkOGNiZGNiZjZjYWZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NS
ZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROCiAKIGJvb2wgU1ZHRkVDb21wb3NpdGVFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmluMkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudC5jcHAKaW5kZXggM2QxNTkzZTQ3ZTkxZDAwNjRlM2VhNmM1Y2FkMWNjZDc4OWMz
YmQ1ZC4uYmVlZWYyNGUzYmIxMTQ4NDc2MDg4YTEyMmJkMzRmODdlMjY2ZDBjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC03
OSwzMSArNzksMzEgQEAgUGFzc1JlZlB0cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdAogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjprZXJuZWxVbml0TGVuZ3RoWElkZW50aWZp
ZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Omtlcm5lbFVuaXRM
ZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRp
ZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6b3JkZXJYSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdPcmRlclgiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yZGVyWCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpvcmRlcllJZGVudGlmaWVy
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVy
LCAoIlNWR09yZGVyWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZp
ZXIsICgiU1ZHT3JkZXJZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwog
ICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGJvb2wgU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6b3JkZXJBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMTcxYTMzZDEwY2M4MDEyN2I2
ZTYzZGVmOGNhMTcxZDg2OTU2ZTU4ZS4uMDEzNTMxM2JhZjEwYWE3ODkwODU5ZDYyN2M0YTc3YTU1
ZTAyNWY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5jcHAKQEAgLTY3LDE5ICs2NywxOSBAQCBQYXNzUmVmUHRyPFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29u
cwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6a2Vy
bmVsVW5pdExlbmd0aFhJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVu
Z3RoWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4g
c19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFlJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0tlcm5lbFVuaXRM
ZW5ndGhZIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJT
VkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBib29sIFNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
ICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkaWZmdXNlQ29uc3RhbnRBdHRyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKaW5kZXggMzhi
OWE1Yzc2MDk0ZWE1NDgwY2ZiYzNkNDE0Nzc5M2I1M2M1ZTdhYi4uMTQxODY1NGQyMmI3NmRkYTI3
N2YwZTlmY2MwOGFhNjRlMWY4YjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUGFzc1JlZlB0
cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dDo6Y3JlYXRlKGNvbnMKIAogYm9vbCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6aW4yQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggY2FhYTIxZjNhNDBhMTdlOGE4OTAwYTA3M2YwYWY3ZWNjZTIwMjAwYy4u
NzFmY2UwYjk5MThkNGEzOTcyZDcyMmRiYjZlNGQ2NzQ1NWEzZTBiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNjYsMTMgKzY2LDEzIEBA
IFBhc3NSZWZQdHI8U1ZHRkVEcm9wU2hhZG93RWxlbWVudD4gU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHRkVEcm9w
U2hhZG93RWxlbWVudDo6c3RkRGV2aWF0aW9uWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9u
WCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVE
X0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3Rk
RGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBy
ZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OnN0ZERldmlhdGlvbllJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERldmlhdGlvblki
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1N0ZERl
dmlhdGlvblkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0
dXJuIHNfaWRlbnRpZmllcjsKIH0KIApAQCAtODUsNyArODUsNyBAQCB2b2lkIFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5KQogCiBib29sIFNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHhBdHRyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggYzVhMmUxNzFmYzg1
NjkzMjNlMDEzZmQ4ZDA3NjEzZjM4MmE4YjMzMi4uMjI2YjIxMDk2NmYzYWYxYWNlN2RiZWFhYzQ2
MjQ3MzY4NjFjMzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5jcHAKQEAgLTYxLDEzICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudD4gU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2
aWF0aW9uWElkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWCIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3RkRGV2
aWF0aW9uWUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHU3RkRGV2aWF0aW9uWSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwog
fQogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzZXRT
dGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9vbCBTVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAg
aWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6c3RkRGV2aWF0aW9uQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCBjODRkZWIzMTViZTY1ODczOWEzNGJhMWZiNzM3Yjll
NTdhYjg1MWNkLi43YzE2NTYxNWU3ODJlZmI0ZGZmN2RjOGFjMzAwMTNjMTc3YTU3YTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTExNSw3ICsxMTUsNyBA
QCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAKIGJvb2wg
U1ZHRkVJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1
dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGln
aHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAK
aW5kZXggMWRlMTU0ZWEyYzNlNTk2ZmQxODUxYzNjZDZkNDU3ZjEzY2I2MGI5Ny4uOWI5YzhiOTY4
YTYwYTI0ODlmM2ZmNWFkZWIzNjdjMTNmYTJlNjYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVMaWdodEVsZW1lbnQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFBhc3NSZWZQdHI8TGlnaHRTb3Vy
Y2U+IFNWR0ZFTGlnaHRFbGVtZW50OjpmaW5kTGlnaHRTb3VyY2UoY29uc3QgU1ZHRWxlbWVudCog
c3ZnCiAKIGJvb2wgU1ZHRkVMaWdodEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjphemltdXRoQXR0
cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjplbGV2YXRpb25B
dHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKaW5k
ZXggNTI5YTRhZDg5NWYyYmFjMDQ1ZWNjODFmOTJlZWU0NjE2Njg4M2I3NS4uZDJhMzA3MWMwNzFl
ZmRjZGY5MzIyZDQwYjNhMDMwMWM3MDdmNTQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUGFzc1JlZlB0cjxTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE4KIAogYm9vbCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5B
dHRyKTsKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwCmluZGV4IGRmMzUzMTdkNGFhOWVjNGRhZGNlNWE5YWU2Y2Fm
ZjY0YWQ2MzEzZTEuLjdmOWYyZDc5YWE5ZTAzYzBiMDk4MjhjNmNmOTUzMDgwOTgwNTUxYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTYw
LDEzICs2MCwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ+IFNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZQogCiBjb25zdCBBdG9taWNTdHJp
bmcmIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnJhZGl1c1hJZGVudGlmaWVyKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1JhZGl1
c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1Jh
ZGl1c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJu
IHNfaWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGRU1vcnBob2xvZ3lF
bGVtZW50OjpyYWRpdXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdSYWRpdXNZIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdSYWRpdXNZIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAK
QEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMo
ZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9vbCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6Om9wZXJhdG9yQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVP
ZmZzZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
Y3BwCmluZGV4IDMxYWI2MDZjMjIwODhkZGQ0NzBkYTcwOWYxMjc5Njk0NDljMjczNmYuLjI4YTQ2
ZjY5MWRjZjQ0YzI3YzBjZTBkZTI5ZGI5MzIyYzY4Zjc2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFBhc3NSZWZQdHI8U1ZH
RkVPZmZzZXRFbGVtZW50PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0CiAKIGJvb2wgU1ZHRkVPZmZzZXRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwg
c3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlz
RW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aW5B
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmR4QXR0cik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dC5jcHAKaW5kZXggMjAxY2UwZWZmNTA2MDlhNWM3ZDJlMmEwNGQwZTUxNjg4ZWYyNGU2ZS4uYzU3
NmNlY2IwY2EwYjAxY2M2ZDBjOGFmOWI0YTk3MGZkNzlmM2M5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNzEsMTkg
KzcxLDE5IEBAIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvCiAKIGNvbnN0IEF0b21pY1N0cmluZyYg
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6a2VybmVsVW5pdExlbmd0aFhJZGVudGlmaWVy
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVy
LCAoIlNWR0tlcm5lbFVuaXRMZW5ndGhYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Omtlcm5lbFVuaXRM
ZW5ndGhZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNfaWRlbnRpZmllciwgKCJTVkdLZXJuZWxVbml0TGVuZ3RoWSIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHS2VybmVsVW5pdExlbmd0aFkiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNfaWRlbnRp
ZmllcjsKIH0KIAogYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZp
ZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6aW5BdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OnNwZWN1bGFyQ29uc3RhbnRBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50
LmNwcAppbmRleCA3NDJmYTE1ZjRiZDAwYWQ1Mjk4OTk1MzBjMjNjMmIxNDk0NGM5NzUyLi43ZDBl
MWZjMWQwMDllYzAyOGQzOTM0MjQwNDcxMzQ3YTc1NTFlMjcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFBhc3NSZWZQdHI8U1ZHRkVU
aWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hCiAKIGJvb2wgU1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBv
cnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5
KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbkF0dHIpOwog
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5jcHAKaW5kZXggYjlkYTc4ZTdkN2JhZDE0NWIzNjg3NDY0NmY3OThlMzEyOTlh
OTg1My4uMjM5ZjEzNDVhNTdjYTJhOTI3ZGViN2ZiYjAwZmY5MDdkMmM3MTM0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNjUsMTkgKzY1
LDE5IEBAIFBhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJidWxlbmNl
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZH
RkVUdXJidWxlbmNlRWxlbWVudDo6YmFzZUZyZXF1ZW5jeVhJZGVudGlmaWVyKCkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0Jhc2VG
cmVxdWVuY3lYIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERF
UFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwg
KCJTVkdCYXNlRnJlcXVlbmN5WCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmJhc2VGcmVxdWVuY3lZSWRlbnRpZmllcigpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdCYXNl
RnJlcXVlbmN5WSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIs
ICgiU1ZHQmFzZUZyZXF1ZW5jeVkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgcmV0dXJuIHNfaWRlbnRpZmllcjsKIH0KIAogYm9vbCBTVkdGRVR1cmJ1bGVuY2VF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1
cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAg
IGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6YmFzZUZyZXF1ZW5jeUF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bnVtT2N0YXZlc0F0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IDZkNWMzODhiYmExMjJjMTFiMzJkMTQx
MGUyZmRlZGNmYjA5ZWNkYmEuLmQ5OThkZGYzZmQ3MzViYjBlMDBiOTcxNzhmYTgzNmZkZmQ4ZDli
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTg0LDEzICs4
NCwxMyBAQCBQYXNzUmVmUHRyPFNWR0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R0ZpbHRlckVsZW1lbnQ6OmZpbHRlclJlc1hJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJlc1giLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR0ZpbHRlclJl
c1giLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNf
aWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdGaWx0ZXJFbGVtZW50Ojpm
aWx0ZXJSZXNZSWRlbnRpZmllcigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNfaWRlbnRpZmllciwgKCJTVkdGaWx0ZXJSZXNZIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAK
QEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnNldEZpbHRlclJlcyh1
bnNpZ25lZCBmaWx0ZXJSZXNYLCB1bnNpZ25lZCBmaWx0ZXJSZXNZKQogCiBib29sIFNWR0ZpbHRl
ckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwg
c3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1VSSVJl
ZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAg
ICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwpAQCAtMjAwLDcgKzIwMCw3IEBAIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6Y2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKIAogICAgIGNvbnN0
IFNWR0VsZW1lbnQmIHN2Z0VsZW1lbnQgPSB0b1NWR0VsZW1lbnQoY2hpbGQpOwogCi0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBhbGxvd2VkQ2hpbGRFbGVt
ZW50VGFncywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBhbGxvd2VkQ2hpbGRFbGVtZW50VGFncywgKCkpOwogICAgIGlmIChh
bGxvd2VkQ2hpbGRFbGVtZW50VGFncy5pc0VtcHR5KCkpIHsKICAgICAgICAgYWxsb3dlZENoaWxk
RWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZUJsZW5kVGFnKTsKICAgICAgICAgYWxsb3dlZENo
aWxkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjpmZUNvbG9yTWF0cml4VGFnKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAKaW5kZXggZjc4MTk4OWIyM2Q1ZTRhYWRhODg5NzQ0NDhjNGNlM2ZlZTMzNGE1
OC4uYjEyNDIxNWVmMmYyYTRiNjFmZGQ4ZDRiODQ4ODEyNGVmMGViZTJiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QKIAog
Ym9vbCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
Ojp4QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5QXR0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApp
bmRleCA0MTkzNjY3MmNkMTI5ODVjZDYzMmExMzJlYTYyZTAxZDI4ZjY3ZTQ2Li5mMWExYzY4MGZi
YzE3NjdjMjZlN2ZiMGYzYzA2ZThlYzAyMWM5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgUGFzc1JlZlB0
cjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWYKIAogYm9vbCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRB
dHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKaW5kZXggMTNiZWM5MzljZTVkMDVkYjg4ZGNi
ODhiMTM5MDg4ZjEyNGNiMGNhYy4uMzc1ZWMxMTVjZGFkYWIzNzFiYTY1NmRkZDNmZjA5YWU2NzQw
ZDc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFBh
c3NSZWZQdHI8U1ZHR0VsZW1lbnQ+IFNWR0dFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAKIGJvb2wgU1ZHR0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaE1hcC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dseXBoTWFwLmgKaW5kZXggMDhiZmE1OTgxYzRmZjJmMjRkMWU2YWFiM2QxMTg0
MTk3YzcyODZhZi4uMDBmODdhNThjZTA4MDUwNWJlMjk5NWRiNzdjMTNkOGU4YzVmYjY2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoTWFwLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU1ZHR2x5cGgmIHN2Z0dseXBoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAg
ewogICAgICAgICBpZiAoIWdseXBoIHx8IGdseXBoID4gbV9nbHlwaFRhYmxlLnNpemUoKSkgewot
ICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTVkdHbHlwaCwgZGVmYXVsdEdseXBoLCAo
KSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU1ZHR2x5cGgs
IGRlZmF1bHRHbHlwaCwgKCkpOwogICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRHbHlwaDsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9nbHlwaFRhYmxlW2dseXBoIC0gMV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGMwZWFiOGI0NTk5NWVkOTcx
NjQ1ZDNjZTBiZmVkN2E4ZWNhNGM5YmIuLmQxOTVkZDA0MjJhYTZiMTQ3MmMzNGRhNGIyN2NjMWI1
MGM2MjgxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIFNWR0dyYWRpZW50RWxlbWVudDo6U1ZHR3JhZGllbnRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAKIGJvb2wgU1ZHR3JhZGll
bnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdVUklS
ZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuY3BwCmluZGV4IDBhMmMyNzk4YWQ2ZTFmOTQ1N2M5YjU2YWNkNWExNDUyYmYyNzRiMzcu
LjAyOTZjYmY4NDU0NGRiNjA5OTQ4NmViNGU1Y2Y4OGRmZmE1NTQwZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIEFmZmluZVRy
YW5zZm9ybSogU1ZHR3JhcGhpY3NFbGVtZW50OjpzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKQogCiBi
b29sIFNWR0dyYXBoaWNzRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1B
dHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggOWZjMmI1ZDQw
YWNmZjU3M2YxY2I1MThmNDU4OTlmMTQxMWYyZTUxNC4uNjRjNWZkYTI0NzA0YmM1ZGZjMmEyMjIy
MjlkMTdlOTdiMmVmNWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAK
QEAgLTcyLDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+IFNWR0ltYWdlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUKIAogYm9vbCBTVkdJbWFn
ZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwg
c3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR0xhbmdT
cGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAg
ICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhz
dXBwb3J0ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
YW5nU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5jcHAKaW5kZXgg
ZDQ0OGVmMDhmOWU3YjFiZThmMDdiOWMxODRkNjQ5ODQ0ODg3ZGVmYi4uMGM3OTQ3ODM4MDNmNzI2
Zjg3OWNjYjJjNjhmNjBkYWZkZmVmMzRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xhbmdTcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAgdm9pZCBTVkdMYW5nU3BhY2U6OnNldFhtbGxhbmcoY29uc3Qg
QXRvbWljU3RyaW5nJiB4bWxMYW5nKQogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdMYW5nU3BhY2U6
OnhtbHNwYWNlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3BhY2UpIHsKLSAgICAgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRTdHJpbmcsICgiZGVmYXVs
dCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICAgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFN0cmlu
ZywgKCJkZWZhdWx0IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAg
ICAgICByZXR1cm4gZGVmYXVsdFN0cmluZzsKICAgICB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgYm9v
bCBTVkdMYW5nU3BhY2U6OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiAgICAgCiB2b2lkIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhI
YXNoU2V0PFF1YWxpZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCB4bWxQcmVmaXgsICgieG1sIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHhtbFByZWZpeCwgKCJ4bWwiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKICAgICBRdWFsaWZpZWROYW1lIGxhbmdXaXRoUHJlZml4
ID0gWE1MTmFtZXM6OmxhbmdBdHRyOwogICAgIGxhbmdXaXRoUHJlZml4LnNldFByZWZpeCh4bWxQ
cmVmaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAppbmRleCBmMzM2MTU4ODEzZGZmMTUxODVl
YTZjYmUxZmU4NzcwNDQ2Y2UxMDFhLi4zY2YyZDI0YTQzMWNkNWJjNjAwNjcyN2NlYzY0NTJmNjY1
ZTg3MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcApAQCAtMzc4LDcgKzM3OCw3IEBAIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IFNWR0xlbmd0aDo6dG9DU1NQcmltaXRpdmVWYWx1
ZShjb25zdCBTVkdMZW5ndGgmIGxlCiBTVkdMZW5ndGhNb2RlIFNWR0xlbmd0aDo6bGVuZ3RoTW9k
ZUZvckFuaW1hdGVkTGVuZ3RoQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogewogICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTVkdMZW5ndGhNb2RlPiBM
ZW5ndGhNb2RlRm9yTGVuZ3RoQXR0cmlidXRlTWFwOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
TGVuZ3RoTW9kZUZvckxlbmd0aEF0dHJpYnV0ZU1hcCwgc19sZW5ndGhNb2RlTWFwLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExlbmd0aE1vZGVGb3JMZW5ndGhBdHRy
aWJ1dGVNYXAsIHNfbGVuZ3RoTW9kZU1hcCwgKCkpOwogICAgIAogICAgIGlmIChzX2xlbmd0aE1v
ZGVNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNfbGVuZ3RoTW9kZU1hcC5zZXQoU1ZHTmFtZXM6
OnhBdHRyLCBMZW5ndGhNb2RlV2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5j
cHAKaW5kZXggOWEyMzcxMDAzYTUyNWE3ZWI0ZTNhYjEwNzk2MDA2ZDRmMzllNDlkZS4uY2M0ODc0
MGZjZTE0ZWUyNzQzMWJjODI0M2RhNmI4ODA3Y2RkNzM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3NSZWZQdHI8U1ZHTGluZUVsZW1l
bnQ+IFNWR0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwK
IAogYm9vbCBTVkdMaW5lRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1
YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCA0ZDA5NjIyMmVhMjliMGEyZjE4
YTFiNjJlMzE5YmVjYTE3YmNiNjEzLi45ZDlmMTMxYTNkN2UyYmFiMWVhYzk3OGUwY2Q4NjBhN2I1
ZTVjYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcApAQCAtNzEsNyArNzEsNyBAQCBQYXNzUmVmUHRyPFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbAogCiBib29s
IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OngxQXR0cik7CiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4MkF0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAppbmRleCBjODljNzkwM2FjZTcxZDBjOTY1ZWY0MDU3
MDJiMjA3NzIyMDI3NWMyLi5iZGY2MzFlYWQxYmEyMmY4Y2NjNGFlM2M1OTg0MGZiMGE1OTVmMDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3
IEBAIHZvaWQgU1ZHTVBhdGhFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiByb290
UGFyZW50KQogCiBib29sIFNWR01QYXRoRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBv
cnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1
cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
OjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IDAxZTRhYmQxMzc2MGRkYTU4NjkyZjQx
Y2IzMDY5OTA2OTExZjk5NzcuLjc2NDQzYzgzODBjN2RiYzk5ZDEyNGU5ZTE4NjhlY2NmYzgyZjBj
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKQEAgLTkyLDEzICs5
MiwxMyBAQCBQYXNzUmVmUHRyPFNWR01hcmtlckVsZW1lbnQ+IFNWR01hcmtlckVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNW
R01hcmtlckVsZW1lbnQ6Om9yaWVudFR5cGVJZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5cGUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudFR5
cGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgcmV0dXJuIHNf
aWRlbnRpZmllcjsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdNYXJrZXJFbGVtZW50Ojpv
cmllbnRBbmdsZUlkZW50aWZpZXIoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHT3JpZW50QW5nbGUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR09yaWVudEFuZ2xlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9
CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2VyRWxlbWVudDo6
dmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAKIGJvb2wgU1ZH
TWFya2VyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgp
KTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZH
TGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgU1ZHTWFy
a2VyRWxlbWVudDo6c3luY2hyb25pemVPcmllbnRUeXBlKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KQogICAgIGlmIChvd25lclR5cGUtPm1fb3JpZW50VHlwZS52YWx1ZSAhPSBTVkdNYXJrZXJP
cmllbnRBdXRvKQogICAgICAgICByZXR1cm47CiAKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgYXV0b1N0cmluZywgKCJhdXRvIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RG
cm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGF1dG9TdHJpbmcsICgiYXV0byIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICBvd25lclR5cGUtPm1fb3JpZW50VHlwZS5zeW5jaHJvbml6ZShvd25lclR5
cGUsIG9yaWVudFR5cGVQcm9wZXJ0eUluZm8oKS0+YXR0cmlidXRlTmFtZSwgYXV0b1N0cmluZyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDczMjlkNzRmNjIz
YWZjNTRhYjdlNDJkYjkxM2RjYzU3NGM3ZTI0ZWMuLjQ2ODIxOGYxYjA2NDA4MDhhMGU1ZGE5MWU0
NDU1Yjk5YTgyYTVhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAt
NzcsNyArNzcsNyBAQCBQYXNzUmVmUHRyPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsCiAKIGJvb2wgU1ZHTWFza0VsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1Rlc3RzOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5n
U3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBjMDhmNDEzNGQzMjE3YmJjMmYyMTVj
MjdjZGFkOTdmMDBmYzY5Y2MwLi43MTYzNmRkYmQ0ZjczM2MyYjY2MjRjMGY3MWM0MGVjZGM4ZTEw
YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTIxMyw3ICsyMTMs
NyBAQCBQYXNzUmVmUHRyPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsPiBTVkdQ
YXRoRWxlbWVudDo6Y3JlYXRlU1ZHUGF0aFNlZwogCiBib29sIFNWR1BhdGhFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJp
YnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxR
dWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA3ZWY3
M2M4NTgxYWEzYzc1NzZmMGFjYzk3ZWZmODQ0YzAzYWJkNDIzLi4xMWVjOWEyYTdiMmM5MmUxOWU2
YWQ3OGFkMWZhMDA2OTc0YThjYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgUGFzc1JlZlB0cjxTVkdQYXR0ZXJuRWxlbWVudD4g
U1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKIAogYm9v
bCBTVkdQYXR0ZXJuRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0
ZWRBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCmluZGV4IGIw
YTI2ZTJiOTllOTZiYTI2ZGY4MzBjYTQ0NjlhYjYwMjcxZTZmZTQuLmQ5NjAxZDk0YjNmNjY3OWFh
YzQ3NmU5YWFlYmJmZWQzMGYwYzlmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogCiBib29sIFNW
R1BvbHlFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkp
OwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdM
YW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGNjYzIwZjFkNzI5MDc1MTA5OGZkNGU3YjY1MmMw
NjU4YTVhMDg2MTkuLjIxM2RiMjYxNDYzZjNiYzYxOTAzZDc1NmRlNzZkNjFmNjM5NDc0OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCkBA
IC03Nyw3ICs3Nyw3IEBAIFBhc3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsCiAKIGJvb2wgU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywg
KCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Y3hBdHRyKTsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN5QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmNwcAppbmRleCAxMTNmYjVkZjI2YTVmYTNmN2Y2YjU3ZmFiNzBhODk5NTI2YmQ2
NGMyLi44OWU2YjI5N2RhMWZmZmY1ZGE5OTJhM2M2ZGQ3NTRkYzk2ZDI5MjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgUGFzc1JlZlB0cjxT
VkdSZWN0RWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLAogCiBib29sIFNWR1JlY3RFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3Vw
cG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1w
dHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggZDg1OGMzNGNlNjdkOGYxYjAzNTBlYmFkMzg5YWE2
NWMxOTlhNzljNC4uMWYyNmI4M2Y5OWY1YjdjZDZjZTQ5ZTEzNGRlZTNkYzM4NGE4YjRhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQg
U1ZHU1ZHRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50
KQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6OmNvbnRlbnRTY3JpcHRUeXBl
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywg
ZGVmYXVsdFZhbHVlLCAoInRleHQvZWNtYXNjcmlwdCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4dC9lY21hc2NyaXB0IiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9
IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTY3JpcHRUeXBlQXR0cik7CiAgICAg
cmV0dXJuIG4uaXNOdWxsKCkgPyBkZWZhdWx0VmFsdWUgOiBuOwogfQpAQCAtMTMxLDcgKzEzMSw3
IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c2V0Q29udGVudFNjcmlwdFR5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlKQogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNWR1NWR0VsZW1lbnQ6OmNvbnRl
bnRTdHlsZVR5cGUoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBkZWZhdWx0VmFsdWUsICgidGV4dC9jc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGZh
c3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNvbnRlbnRTdHlsZVR5cGVBdHRyKTsKICAgICByZXR1
cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMTQ3MDVhYTUzYzU1YTg0ZTU3YjZkMmNhZmY4ZGJkMzAw
OGZhNzJkZC4uMzUyNzE1ODQwNGYzNjk4MjBlOTg1Yjc1NjBjYTZmOTcyYTE4Mzg4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBQYXNz
UmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYQogCiBib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywg
KCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJp
YnV0ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IDdmN2Y0MGFmMGU2NmM4
YzQyYTcxMTJmN2NlMzA2ODgwNWFmM2M2MTYuLmZlOTRhMWYxNDM3M2Q0N2FlMTA4ZWE3OGQ3MTM0
N2MwOWI2ZmE5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNTQs
NyArNTQsNyBAQCBQYXNzUmVmUHRyPFNWR1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsCiAKIGJvb2wgU1ZHU3RvcEVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVk
QXR0cmlidXRlcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1
cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggYzcxYjNkMjE1YjhhNjk5MWJjZGRi
N2QwNDg5ODE5ZTNmYjA0NTVhOC4uNDFiMWEwYWZmYTFhODk3MTg5MzAzOGI3ZjkxMmU3ODAyZGEx
MGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnNldERpc2FibGVkKGJvb2wgc2V0RGlzYWJsZWQp
CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29uc3QKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVl
LCAoInRleHQvY3NzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGRlZmF1
bHRWYWx1ZSwgKCJ0ZXh0L2NzcyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
KTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OnR5
cGVBdHRyKTsKICAgICByZXR1cm4gbi5pc051bGwoKSA/IGRlZmF1bHRWYWx1ZSA6IG47CiB9CkBA
IC03NSw3ICs3NSw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpzZXRUeXBlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZH
U3R5bGVFbGVtZW50OjptZWRpYSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIGRlZmF1bHRWYWx1ZSwgKCJhbGwiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVsdFZhbHVlLCAoImFsbCIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBmYXN0
R2V0QXR0cmlidXRlKFNWR05hbWVzOjptZWRpYUF0dHIpOwogICAgIHJldHVybiBuLmlzTnVsbCgp
ID8gZGVmYXVsdFZhbHVlIDogbjsKIH0KQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBTVkdTdHlsZUVs
ZW1lbnQ6OnNldFRpdGxlKGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUsIEV4Y2VwdGlvbkNvZGUm
KQogCiBib29sIFNWR1N0eWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0
dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0
dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dGl0
bGVBdHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAppbmRleCA2MDc0
MWY2Y2E5MjI1ZGRjZTNlMWFjY2E4ZmE0MDNiNDU2YzVjMGJhLi40OWY1OTc0NDA5Mzg4ZjM0MTIy
ZDE2MTA3YWZlMjhjYjdkOTVhOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3ltYm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFBhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gU1ZH
U3ltYm9sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIGJvb2wg
U1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVu
dC5jcHAKaW5kZXggMDZmOWE2ZjVhODRlZmJiN2UxZDRiZGI4NGFiNzk3NzdkYmY3Y2NhMC4uYzVi
OGVhMDlmYzM5NDgxYjA4OWE4MzNmZTMzODc0ODU0MmRmYjQ0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVu
dDo6ZGV0YWNoVGFyZ2V0KCkKIAogYm9vbCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5pc0VtcHR5KCkpCiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAKaW5kZXggODE4MDFjYTIyYjdkY2RlM2JkODBlZjgwNDAzYjlmYzYwZDA2
NGYyYy4uZjQ3MzA1ZWU3NWVmNDg5NjgwMGY0NjE0MWFhNzY5OTYzZmI4NmQ0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGVzdHMuY3BwCkBAIC04OSw3ICs4OSw3IEBAIFNWR1Rlc3RzOjpTVkdUZXN0cygpCiAK
IFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAmIFNWR1Rlc3RzOjphdHRyaWJ1dGVUb1Byb3BlcnR5
TWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlN
YXAsIG1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTVkdBdHRy
aWJ1dGVUb1Byb3BlcnR5TWFwLCBtYXAsICgpKTsKICAgICBpZiAoIW1hcC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBtYXA7CiAgICAgbWFwLmFkZFByb3BlcnR5KHJlcXVpcmVkRmVhdHVyZXNQ
cm9wZXJ0eUluZm8oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuY3BwCmluZGV4IGEyNGU4NjhiNjE0ZGJkNzliM2NjMGRmYTdjNDc0YTY1Nzk5NmI4NTAuLjNm
OWEyZjJkMTNkMTE2NDI1M2EzNTY4YjczZmIyNzU2NTY5MTU4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFBhc3NS
ZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpsb29rdXBP
ckNyZWF0ZVRleHRMZW5ndGhXCiAKIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRMZW5ndGg+IFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6dGV4dExlbmd0aEFuaW1hdGVkKCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFNWR0xlbmd0aCwgZGVmYXVsdFRleHRMZW5ndGgsIChMZW5ndGhNb2RlT3RoZXIp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU1ZHTGVuZ3RoLCBkZWZhdWx0
VGV4dExlbmd0aCwgKExlbmd0aE1vZGVPdGhlcikpOwogICAgIGlmIChtX3NwZWNpZmllZFRleHRM
ZW5ndGggPT0gZGVmYXVsdFRleHRMZW5ndGgpCiAgICAgICAgIG1fdGV4dExlbmd0aC52YWx1ZS5u
ZXdWYWx1ZVNwZWNpZmllZFVuaXRzKExlbmd0aFR5cGVOdW1iZXIsIGdldENvbXB1dGVkVGV4dExl
bmd0aCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQg
U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJpbmcodW5zaWduZWQgY2hhcm51bSwg
dW5zaWduZWQgbmNoYXJzLCBFCiAKIGJvb2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWQKICAgICBpZiAo
IWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKQogICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUp
OwogICAgIGVsc2UgaWYgKG5hbWUubWF0Y2hlcyhYTUxOYW1lczo6c3BhY2VBdHRyKSkgewotICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgcHJlc2VydmVTdHJp
bmcsICgicHJlc2VydmUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Cisg
ICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcs
IHByZXNlcnZlU3RyaW5nLCAoInByZXNlcnZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogCiAgICAgICAgIGlmICh2YWx1ZSA9PSBwcmVzZXJ2ZVN0cmluZykKICAgICAg
ICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlXaGl0ZVNwYWNlLCBDU1NWYWx1ZVByZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDg2NjNjZDUxNzdkMjFjNGVkNzU1MWQ5NTg3ZWE2OGIy
YzkyN2Q4OTQuLjM2NTg0YjNiYmU3ZGUzYmZiMThiMDNkNWNjNjNhYWE0ODM4M2FlYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBA
IHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAKIGJv
b2wgU1ZHVGV4dFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBTVkdVUklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdGFy
dE9mZnNldEF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuY3BwCmluZGV4IGEwYTcyOWEwYTllYTk0NTgzOGRlYzQ1YjFiMTg0OTU0MTExYWQy
ODMuLjEyYjYzMjI3OWZiNmJiMTdkYzEyNWY5N2RkYzA1NWI1NWQxMTZkZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTU1LDcg
KzU1LDcgQEAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW0KIAogYm9vbCBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNw
cAppbmRleCBmZTM2YTIyM2MwYmRlZWNlNWVhODc1MzEwNGVjNTFjZTFhNjk3MjZlLi5mNzViNjdl
MmVmMDkyNTAxYzZkMjg3ODM5NjQ0NjZmM2U5ZTEyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtLmNwcApAQCAtMTM1LDI3ICsxMzUsMjcgQEAgY29uc3QgU3RyaW5nJiBTVkdUcmFuc2Zv
cm06OnRyYW5zZm9ybVR5cGVQcmVmaXhGb3JQYXJzaW5nKFNWR1RyYW5zZm9ybVR5cGUgdHlwZSkK
ICAgICBjYXNlIFNWR19UUkFOU0ZPUk1fVU5LTk9XTjoKICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX01BVFJJWDogewotICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgbWF0cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJtYXRyaXgo
IikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbWF0
cml4U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJtYXRyaXgoIikpKTsKICAgICAgICAgcmV0dXJuIG1h
dHJpeFN0cmluZzsKICAgICB9CiAgICAgY2FzZSBTVkdfVFJBTlNGT1JNX1RSQU5TTEFURTogewot
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVND
SUlMaXRlcmFsKCJ0cmFuc2xhdGUoIikpKTsKKyAgICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgdHJhbnNsYXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJ0cmFuc2xh
dGUoIikpKTsKICAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZVN0cmluZzsKICAgICB9CiAgICAgY2Fz
ZSBTVkdfVFJBTlNGT1JNX1NDQUxFOiB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBzY2FsZVN0cmluZywgKEFTQ0lJTGl0ZXJhbCgic2NhbGUoIikpKTsKKyAgICAgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2NhbGVTdHJpbmcsIChBU0NJSUxp
dGVyYWwoInNjYWxlKCIpKSk7CiAgICAgICAgIHJldHVybiBzY2FsZVN0cmluZzsKICAgICB9CiAg
ICAgY2FzZSBTVkdfVFJBTlNGT1JNX1JPVEFURTogewotICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgcm90YXRlU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUoIikpKTsKKyAg
ICAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcm90YXRlU3RyaW5n
LCAoQVNDSUlMaXRlcmFsKCJyb3RhdGUoIikpKTsKICAgICAgICAgcmV0dXJuIHJvdGF0ZVN0cmlu
ZzsKICAgICB9ICAgIAogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWDogewotICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2tld1hTdHJpbmcsIChBU0NJSUxpdGVyYWwoInNr
ZXdYKCIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHNrZXdYU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJza2V3WCgiKSkpOwogICAgICAgICByZXR1cm4g
c2tld1hTdHJpbmc7CiAgICAgfQogICAgIGNhc2UgU1ZHX1RSQU5TRk9STV9TS0VXWTogewotICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2tld1lTdHJpbmcsIChBU0NJSUxpdGVy
YWwoInNrZXdZKCIpKSk7CisgICAgICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHNrZXdZU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJza2V3WSgiKSkpOwogICAgICAgICBy
ZXR1cm4gc2tld1lTdHJpbmc7CiAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmNwcAppbmRleCBlMzQwMTQ0MDM5MDE5MzBkNmU2Yjc3M2JhYjRhZDc5NmMzNmE4ODk2Li5k
MmU1Y2JmMjUwMzFmY2VkNWMzNjU5YjJlZGY2OGQ1NWI3NDZjYzFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgU1ZHRWxlbWVudEluc3RhbmNl
KiBTVkdVc2VFbGVtZW50OjphbmltYXRlZEluc3RhbmNlUm9vdCgpIGNvbnN0CiAKIGJvb2wgU1ZH
VXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
ICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHTGFu
Z1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHN0YXRpYyBib29sIGlz
RGlzYWxsb3dlZEVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICBpZiAoIWVsZW1l
bnQuaXNTVkdFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBhbGxvd2VkRWxlbWVudFRhZ3MsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgYWxsb3dlZEVsZW1lbnRUYWdzLCAoKSk7CiAgICAgaWYgKGFsbG93ZWRFbGVtZW50VGFn
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1lczo6
YVRhZyk7CiAgICAgICAgIGFsbG93ZWRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmNpcmNsZVRh
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAppbmRleCAyZTkxYmVmNDViMjM1
OTAzYTk0MDk2MmZhYjAwZTYzYjI2YWNiYTNkLi45NzRmOTgxYjEyMmFiYWU4YTc2M2UwZDQzZTRi
Mjg2OTNiOTA4MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKQEAgLTU3
LDcgKzU3LDcgQEAgUGFzc1JlZlB0cjxTVkdWaWV3RWxlbWVudD4gU1ZHVmlld0VsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAogCiBib29sIFNWR1ZpZXdFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwogICAgICAgICBTVkdGaXRUb1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9y
dGVkQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1Nw
ZWMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCBhYzI0NTcz
NjRlMzU0MTU1NWZhMjRmYTM0MjEzZGU3ZDgyMTEyNzViLi4yOTg1YWIxZDE2ZjQ1YmY5NWFkNzIy
MDVkZjQ3NjE4ZTNmODQwNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d1NwZWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTg1
LDE5ICs4NSwxOSBAQCBTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMoU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQpCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnZpZXdCb3hJZGVu
dGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc19pZGVu
dGlmaWVyLCAoIlNWR1ZpZXdTcGVjVmlld0JveEF0dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZHVmlld1NwZWNWaWV3Qm94QXR0cmlidXRl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lk
ZW50aWZpZXI7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnByZXNlcnZl
QXNwZWN0UmF0aW9JZGVudGlmaWVyKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjUHJlc2VydmVBc3BlY3RSYXRpb0F0
dHJpYnV0ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKKyAgICBERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgi
U1ZHVmlld1NwZWNQcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cmlidXRlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgU1ZHVmlld1NwZWM6OnRyYW5zZm9ybUlkZW50aWZpZXIoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzX2lkZW50aWZpZXIsICgiU1ZH
Vmlld1NwZWNUcmFuc2Zvcm1BdHRyaWJ1dGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmlu
Zywgc19pZGVudGlmaWVyLCAoIlNWR1ZpZXdTcGVjVHJhbnNmb3JtQXR0cmlidXRlIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHJldHVybiBzX2lkZW50aWZpZXI7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5j
cHAKaW5kZXggODI0MjYzMzgxMTI5MTc1OGI5Y2Y1ZTI2ZDU4YzIxYWNhNTM2NmJkZC4uNmI4MDRh
MTE2MTcwODIxMjJmMTJjM2I0MTY1ZDhjZWY0NTlkMmYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAgLTMwOSw3ICszMDksNyBAQCBT
TUlMVGltZSBTVkdTTUlMRWxlbWVudDo6cGFyc2VDbG9ja1ZhbHVlKGNvbnN0IFN0cmluZyYgZGF0
YSkKICAgICAKICAgICBTdHJpbmcgcGFyc2UgPSBkYXRhLnN0cmlwV2hpdGVTcGFjZSgpOwogCi0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1
ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwor
ICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGlu
ZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgIGlmIChwYXJzZSA9PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJl
dHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgpOwogCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBT
VkdTTUlMRWxlbWVudDo6cGFyc2VCZWdpbk9yRW5kKGNvbnN0IFN0cmluZyYgcGFyc2VTdHJpbmcs
IEJlZ2luT3JFbmQgYmVnaW4KIAogYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmJlZ2luQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpl
bmRBdHRyKTsKQEAgLTYyMSw4ICs2MjEsOCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc0Zyb3pl
bigpIGNvbnN0CiAgICAgCiBTVkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6
cmVzdGFydCgpIGNvbnN0CiB7ICAgIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBuZXZlciwgKCJuZXZlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgd2hl
bk5vdEFjdGl2ZSwgKCJ3aGVuTm90QWN0aXZlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9t
aWNTdHJpbmcsIG5ldmVyLCAoIm5ldmVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNT
dHJpbmcsIHdoZW5Ob3RBY3RpdmUsICgid2hlbk5vdEFjdGl2ZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZmFz
dEdldEF0dHJpYnV0ZShTVkdOYW1lczo6cmVzdGFydEF0dHIpOwogICAgIGlmICh2YWx1ZSA9PSBu
ZXZlcikKICAgICAgICAgcmV0dXJuIFJlc3RhcnROZXZlcjsKQEAgLTYzMyw3ICs2MzMsNyBAQCBT
VkdTTUlMRWxlbWVudDo6UmVzdGFydCBTVkdTTUlMRWxlbWVudDo6cmVzdGFydCgpIGNvbnN0CiAg
ICAgCiBTVkdTTUlMRWxlbWVudDo6RmlsbE1vZGUgU1ZHU01JTEVsZW1lbnQ6OmZpbGwoKSBjb25z
dAogeyAgIAotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBmcmVl
emUsICgiZnJlZXplIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGZyZWV6
ZSwgKCJmcmVlemUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmZp
bGxBdHRyKTsKICAgICByZXR1cm4gdmFsdWUgPT0gZnJlZXplID8gRmlsbEZyZWV6ZSA6IEZpbGxS
ZW1vdmU7CiB9CkBAIC02NjYsNyArNjY2LDcgQEAgU01JTFRpbWUgU1ZHU01JTEVsZW1lbnQ6OnJl
cGVhdENvdW50KCkgY29uc3QKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biBTTUlMVGltZTo6dW5yZXNvbHZlZCgpOwogCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRlIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIGluZGVmaW5pdGVWYWx1ZSwgKCJpbmRlZmluaXRl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGlmICh2YWx1ZSA9
PSBpbmRlZmluaXRlVmFsdWUpCiAgICAgICAgIHJldHVybiBTTUlMVGltZTo6aW5kZWZpbml0ZSgp
OwogICAgIGJvb2wgb2s7CkBAIC0xMTE2LDcgKzExMTYsNyBAQCBib29sIFNWR1NNSUxFbGVtZW50
Ojpwcm9ncmVzcyhTTUlMVGltZSBlbGFwc2VkLCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVu
dCwgYgogdm9pZCBTVkdTTUlMRWxlbWVudDo6bm90aWZ5RGVwZW5kZW50c0ludGVydmFsQ2hhbmdl
ZChOZXdPckV4aXN0aW5nSW50ZXJ2YWwgbmV3T3JFeGlzdGluZykKIHsKICAgICBBU1NFUlQobV9p
bnRlcnZhbEJlZ2luLmlzRmluaXRlKCkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxTVkdTTUlMRWxlbWVudCo+LCBsb29wQnJlYWtlciwgKCkpOworICAgIERFUFJFQ0FURURfREVG
SU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFNWR1NNSUxFbGVtZW50Kj4sIGxvb3BCcmVha2VyLCAo
KSk7CiAgICAgaWYgKGxvb3BCcmVha2VyLmNvbnRhaW5zKHRoaXMpKQogICAgICAgICByZXR1cm47
CiAgICAgbG9vcEJyZWFrZXIuYWRkKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCmluZGV4IGU1MWYy
OTYyYjc5NWUzNTYzMzgyNTdiZjM4M2ZkOGZkNDA0MjY4ZjUuLjQ4NDVhMjA2M2UxMzQ5MGRkNjM3
ZDJiNGZhYzJkNmNiYTE3NzY2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgKQEAgLTcwLDcgKzcwLDcg
QEAgc3RydWN0IFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eSB7CiAjZGVmaW5lIEJF
R0lOX1JFR0lTVEVSX0FOSU1BVEVEX1BST1BFUlRJRVMoT3duZXJUeXBlKSBcCiBTVkdBdHRyaWJ1
dGVUb1Byb3BlcnR5TWFwJiBPd25lclR5cGU6OmF0dHJpYnV0ZVRvUHJvcGVydHlNYXAoKSBcCiB7
IFwKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIHNf
YXR0cmlidXRlVG9Qcm9wZXJ0eU1hcCwgKCkpOyBcCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXAsIHNfYXR0cmlidXRlVG9Qcm9wZXJ0
eU1hcCwgKCkpOyBcCiAgICAgcmV0dXJuIHNfYXR0cmlidXRlVG9Qcm9wZXJ0eU1hcDsgXAogfSBc
CiBcCkBAIC05Miw3ICs5Miw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQW5pbWF0ZWRQcm9wZXJ0
aWVzRm9yIyNPd25lclR5cGUoKSBcCiAvLyBQcm9wZXJ0eSBkZWZpbml0aW9uIGhlbHBlcnMgKHVz
ZWQgaW4gU1ZHKi5jcHAgZmlsZXMpCiAjZGVmaW5lIERFRklORV9BTklNQVRFRF9QUk9QRVJUWShB
bmltYXRlZFByb3BlcnR5VHlwZUVudW0sIE93bmVyVHlwZSwgRE9NQXR0cmlidXRlLCBTVkdET01B
dHRyaWJ1dGVJZGVudGlmaWVyLCBVcHBlclByb3BlcnR5LCBMb3dlclByb3BlcnR5KSBcCiBjb25z
dCBTVkdQcm9wZXJ0eUluZm8qIE93bmVyVHlwZTo6TG93ZXJQcm9wZXJ0eSMjUHJvcGVydHlJbmZv
KCkgeyBcCi0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTVkdQcm9wZXJ0eUluZm8sIHNf
cHJvcGVydHlJbmZvLCBcCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFNWR1Byb3BlcnR5SW5mbywgc19wcm9wZXJ0eUluZm8sIFwKICAgICAgICAgICAgICAgICAgICAg
ICAgIChBbmltYXRlZFByb3BlcnR5VHlwZUVudW0sIFwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBQcm9wZXJ0eUlzUmVhZFdyaXRlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgRE9NQXR0
cmlidXRlLCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcAppbmRleCA1ZTlhYzllYTgwNzQwNjE2NTE2N2E1
ZmJlNDZhNzU4NTNmOTI3OWNjLi5lNDRkZmE0ZDNlNDkyYWVlZjhmMzNkZTU0Y2M0NDNkZTZhOWU2
YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9y
bVN0cmF0ZWdpZXNFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIHZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzRWZsOjppbml0aWFsaXplKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc0VmbCwgcGxhdGZv
cm1TdHJhdGVnaWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFBs
YXRmb3JtU3RyYXRlZ2llc0VmbCwgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CiAgICAgc2V0UGxh
dGZvcm1TdHJhdGVnaWVzKCZwbGF0Zm9ybVN0cmF0ZWdpZXMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19tYWluLmNwcAppbmRleCA3MmZmY2Q2MGY3NjcyMTk5YTc3MTM0M2ZhZTczOThlYmI2ZWFj
Zjg0Li4yNjk4NzYyZGZkMjBkMWQyNzk0ODc2OGU4NWQ1MjE4ZDQ2NGFkZWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfbWFpbi5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCBpbnQgZXdrX3NodXRkb3du
KHZvaWQpCiAKIHN0YXRpYyBXZWJDb3JlOjpTdG9yYWdlVHJhY2tlckNsaWVudEVmbCogdHJhY2tl
ckNsaWVudCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXZWJDb3JlOjpTdG9yYWdlVHJh
Y2tlckNsaWVudEVmbCwgdHJhY2tlckNsaWVudCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlckNsaWVudEVmbCwgdHJhY2tlckNs
aWVudCwgKCkpOwogICAgIHJldHVybiAmdHJhY2tlckNsaWVudDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvaW9zL01pc2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5jcHAKaW5kZXgg
ZDViZTBjYTY2ZmQzZjdkZjFkYjg1YjY5ZjVjMzQ1NjcxZjA1YjQyMy4uZjQ2NGE3ZmJhNDg3OGFm
MjNkYThhYTA2ZWM0MWYzNjBmNDVkMmZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
TWlzYy9FbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2lv
cy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBQYXNzUmVmUHRyPEZvbnREYXRhPiBFbW9qaUZhbGxi
YWNrRm9udFNlbGVjdG9yOjpnZXRGYWxsYmFja0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBzaXplX3QpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIGFwcGxlQ29sb3JFbW9qaSwgKCJBcHBsZSBDb2xvciBFbW9qaSIpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBhcHBsZUNvbG9y
RW1vamksICgiQXBwbGUgQ29sb3IgRW1vamkiKSk7CiAgICAgUmVmUHRyPEZvbnREYXRhPiBmb250
RGF0YSA9IGZvbnRDYWNoZSgpLT5nZXRDYWNoZWRGb250RGF0YShmb250RGVzY3JpcHRpb24sIGFw
cGxlQ29sb3JFbW9qaSk7CiAgICAgaWYgKCFmb250RGF0YSkgewogICAgICAgICBMT0dfRVJST1Io
IkZhaWxlZCB0byBnZXQgXCJBcHBsZSBDb2xvciBFbW9qaVwiIGZyb20gdGhlIGZvbnQgY2FjaGUu
IFVzaW5nIHRoZSBsYXN0IHJlc29ydCBmYWxsYmFjayBmb250IGluc3RlYWQuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJGaXhlZFBvc2l0aW9uQ29u
dGVudC5tbSBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRp
b25Db250ZW50Lm1tCmluZGV4IGMyNDIxNzZhZDY1M2ZkMDU5M2UxNmUwMTdkNzBlZDdjYmQzODM0
MzkuLmNhNjYzNGIzN2IwOTk0MjMyZDYyMjFhN2UxZGMxMzhjNDZhMTUwZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRpb25Db250ZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkZpeGVkUG9zaXRp
b25Db250ZW50Lm1tCkBAIC01MCw3ICs1MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0
YXRpYyBNdXRleCYgV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnREYXRhTG9jaygpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChNdXRleCwgbXV0ZXgsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CiAgICAgcmV0dXJuIG11dGV4OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlz
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCmlu
ZGV4IGY2YWE1YzI4NWM3YTRlYzRiNGZjMTI1ZmQ0Y2MzN2RhM2Q1ZmJiMmYuLmM1OWZmZGM2NGM2
OTAxYWUyY2Y5MGRmYzFlNzNkNTJmNDc2NDcwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYg
SGFzaE1hcDxCYWNrRm9yd2FyZExpc3QqLCBXZWJCYWNrRm9yd2FyZExpc3QqPiBCYWNrRm9yd2Fy
ZExpc3RNYXA7CiAvLyB3aXRoIGEgcG9pbnRlciB0byBhIFdlYkJhY2tGb3J3YXJkTGlzdCBpbiBp
dC4KIHN0YXRpYyBCYWNrRm9yd2FyZExpc3RNYXAmIGJhY2tGb3J3YXJkTGlzdHMoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQmFja0ZvcndhcmRMaXN0TWFwLCBzdGF0aWNCYWNrRm9yd2Fy
ZExpc3RzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEJhY2tGb3J3
YXJkTGlzdE1hcCwgc3RhdGljQmFja0ZvcndhcmRMaXN0cywgKCkpOwogICAgIHJldHVybiBzdGF0
aWNCYWNrRm9yd2FyZExpc3RzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbQppbmRleCBlMDFlNGI1MzQxOWQ1MTAwY2IzMWQ5M2M0ZmQ3ZGY1ZWY0ODM4
NzNkLi45ZjE4OWNiMGI2MDZiMzRhMjVjMmUwOGFkZjhiOTI2MTk3NzEwYjE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTEwNyw3ICsxMDcsNyBA
QCBzdGF0aWMgaW5saW5lIFdlYkNvcmVIaXN0b3J5SXRlbSogY29yZShXZWJIaXN0b3J5SXRlbVBy
aXZhdGUqIGl0ZW1Qcml2YXRlKQogCiBzdGF0aWMgSGlzdG9yeUl0ZW1NYXAmIGhpc3RvcnlJdGVt
V3JhcHBlcnMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGlzdG9yeUl0ZW1NYXAsIGhp
c3RvcnlJdGVtV3JhcHBlcnMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9D
QUwoSGlzdG9yeUl0ZW1NYXAsIGhpc3RvcnlJdGVtV3JhcHBlcnMsICgpKTsKICAgICByZXR1cm4g
aGlzdG9yeUl0ZW1XcmFwcGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBiY2M1ZjE5ZGM2MjA4OWExZjNiYzdiNTE4YzZj
YWQ2MTA2ZTQ2YzFiLi45ODZhYjg0ODdlZmM3NjUzNmFkOTUyMzNlZDAyMTVhNWFmNmZlZTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpA
QCAtNTksNyArNTksNyBAQCBOU1N0cmluZyAqV2ViVVJMTmFtZVBib2FyZFR5cGUgPSBAInB1Ymxp
Yy51cmwtbmFtZSI7CiAKICsgKE5TQXJyYXkgKilfd2ViX3dyaXRhYmxlVHlwZXNGb3JVUkwKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0cjxOU0FycmF5PiwgdHlwZXMsIChbW05T
QXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czoKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFU
SUNfTE9DQUwoUmV0YWluUHRyPE5TQXJyYXk+LCB0eXBlcywgKFtbTlNBcnJheSBhbGxvY10gaW5p
dFdpdGhPYmplY3RzOgogICAgICAgICBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUsCiAgICAg
ICAgIE5TVVJMUGJvYXJkVHlwZSwKICAgICAgICAgV2ViVVJMUGJvYXJkVHlwZSwKQEAgLTc4LDcg
Kzc4LDcgQEAgc3RhdGljIGlubGluZSBOU0FycmF5ICpfY3JlYXRlV3JpdGFibGVUeXBlc0Zvcklt
YWdlV2l0aG91dEFyY2hpdmUoKQogCiBzdGF0aWMgTlNBcnJheSAqX3dyaXRhYmxlVHlwZXNGb3JJ
bWFnZVdpdGhvdXRBcmNoaXZlICh2b2lkKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmV0
YWluUHRyPE5TQXJyYXk+LCB0eXBlcywgKF9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRo
b3V0QXJjaGl2ZSgpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFp
blB0cjxOU0FycmF5PiwgdHlwZXMsIChfY3JlYXRlV3JpdGFibGVUeXBlc0ZvckltYWdlV2l0aG91
dEFyY2hpdmUoKSkpOwogICAgIHJldHVybiB0eXBlcy5nZXQoKTsKIH0KIApAQCAtOTIsNyArOTIs
NyBAQCBzdGF0aWMgaW5saW5lIE5TQXJyYXkgKl9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VX
aXRoQXJjaGl2ZSgpCiAKIHN0YXRpYyBOU0FycmF5ICpfd3JpdGFibGVUeXBlc0ZvckltYWdlV2l0
aEFyY2hpdmUgKHZvaWQpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNB
cnJheT4sIHR5cGVzLCAoX2NyZWF0ZVdyaXRhYmxlVHlwZXNGb3JJbWFnZVdpdGhBcmNoaXZlKCkp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPE5TQXJyYXk+
LCB0eXBlcywgKF9jcmVhdGVXcml0YWJsZVR5cGVzRm9ySW1hZ2VXaXRoQXJjaGl2ZSgpKSk7CiAg
ICAgcmV0dXJuIHR5cGVzLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
U3RyaW5nVHJ1bmNhdG9yLm1tCmluZGV4IDM0NWEyZGY3MWY3N2IzZWU4ZWExZmY5YjlhMjcxYzYz
Y2M1NGNjZTUuLmYzZWVhNjFkNTYwYjYxYWI0YmVjOTY5OTg5NDNlYmU3MDc1NjE4MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU3RyaW5nVHJ1bmNhdG9yLm1tCkBAIC01MSw3ICs1
MSw3IEBAIHN0YXRpYyBOU0ZvbnQgKmRlZmF1bHRNZW51Rm9udCgpCiBzdGF0aWMgRm9udCYgZm9u
dEZyb21OU0ZvbnQoTlNGb250ICpmb250KQogewogICAgIHN0YXRpYyBOU0ZvbnQgKmN1cnJlbnRG
b250OwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRm9udCwgY3VycmVudFJlbmRlcmVyLCAoKSk7
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEZvbnQsIGN1cnJlbnRSZW5kZXJl
ciwgKCkpOwogCiAgICAgaWYgKFtmb250IGlzRXF1YWw6Y3VycmVudEZvbnRdKQogICAgICAgICBy
ZXR1cm4gY3VycmVudFJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggMWI1
MzY4MGY5MTIwM2VhMmM4ZWVhOGEzOWE2MjQ1NTg0MDAzNDI4OS4uYjBhOGY3OTY1ZjY2ZTA3ODMw
YzQ2YmE2NTIzYzczMDhiMDA4YjJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC01
MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5h
Z2VyJiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciwgcGx1Z2luSG9zdE1hbmFnZXIs
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTmV0c2NhcGVQbHVnaW5I
b3N0TWFuYWdlciwgcGx1Z2luSG9zdE1hbmFnZXIsICgpKTsKICAgICAKICAgICByZXR1cm4gcGx1
Z2luSG9zdE1hbmFnZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCmluZGV4IDg1ZmQ3YmRhNTNj
NDRmMzg5YTk1ZjEzNzU0M2U4ZmVkMDZkZDdhZjkuLmRiNTNiOWQ0M2U2ZTkyM2I2OGU0ODZhMDlj
YWY0YWExOTYzOTM3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCkBAIC04Myw3ICs4Myw3IEBA
IHByaXZhdGU6CiB0eXBlZGVmIEhhc2hNYXA8bWFjaF9wb3J0X3QsIE5ldHNjYXBlUGx1Z2luSG9z
dFByb3h5Kj4gUGx1Z2luUHJveHlNYXA7CiBzdGF0aWMgUGx1Z2luUHJveHlNYXAmIHBsdWdpblBy
b3h5TWFwKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFBsdWdpblByb3h5TWFwLCBwbHVn
aW5Qcm94eU1hcCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQbHVn
aW5Qcm94eU1hcCwgcGx1Z2luUHJveHlNYXAsICgpKTsKICAgICAKICAgICByZXR1cm4gcGx1Z2lu
UHJveHlNYXA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggM2JjYTczZTIx
Y2YwYWQwODRhODUwYjA3ODllM2YzYjYzZWExOTEzMi4uNTM4NjFkNTEwZDI3ZjU5NTkwZWMwMTRm
MzBhMjE2NWEzYWMyMTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTY2
Myw3ICsxNjYzLDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnByaXZhdGVC
cm93c2luZ01vZGVEaWRDaGFuZ2UoYm9vbCBpc1ByaXZhdGVCcm8KIAogc3RhdGljIFN0cmluZyYg
Z2xvYmFsRXhjZXB0aW9uU3RyaW5nKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZXhjZXB0aW9uU3RyaW5nLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgZXhjZXB0aW9uU3RyaW5nLCAoKSk7CiAgICAgcmV0dXJuIGV4Y2VwdGlvblN0
cmluZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
UHJveHlJbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0KaW5kZXggMjY5YzFmYzA2NmM3Y2ZlZjU2MGEzZDRmNmU3ODEyZTYyZDVlOTg1
NC4uNzgzMTYzZWEyYWY2NmFlYzUwZGU3ZGI2NGU2OTE2NmU0ZGNlYjc5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC02NSw3
ICs2NSw3IEBAIEZpZWxkKiBQcm94eUNsYXNzOjpmaWVsZE5hbWVkKFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29uCiAKIHN0YXRpYyBQcm94eUNsYXNzKiBw
cm94eUNsYXNzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFByb3h5Q2xhc3MsIHByb3h5
Q2xhc3MsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoUHJveHlDbGFz
cywgcHJveHlDbGFzcywgKCkpOwogICAgIHJldHVybiAmcHJveHlDbGFzczsKIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFt
Lm1tCmluZGV4IDhjYTJhYTRiZGRiNmQ3YTlmZGNkYWMyYTUyNzRiN2QwMzE3M2Q2ZjAuLjZiYjgy
OTdiYzExZDg1M2E0ZDgzOTIxNjU2Zjk0NDc2MzZmNzQyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQpAQCAtODAsNyAr
ODAsNyBAQCBwcml2YXRlOgogdHlwZWRlZiBIYXNoTWFwPE5QU3RyZWFtKiwgTlBQPiBTdHJlYW1N
YXA7CiBzdGF0aWMgU3RyZWFtTWFwJiBzdHJlYW1zKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmVhbU1hcCwgc3RhdGljU3RyZWFtcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJlYW1NYXAsIHN0YXRpY1N0cmVhbXMsICgpKTsKICAgICByZXR1cm4g
c3RhdGljU3RyZWFtczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFn
ZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRh
dGFiYXNlTWFuYWdlci5tbQppbmRleCBlYmJhZWIwN2U1NjY5NGUzMDNlOGY4OTE0ZjQwYWEwNWVm
OWFjMWY1Li42YTc3M2U3NmUyY2MzZGQwMTEwNTdmYjBkYWYzM2U0YTQ0YzA5NDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlTWFuYWdlci5tbQpAQCAtMjMw
LDcgKzIzMCw3IEBAIHN0YXRpYyBib29sIGlzRmlsZUhpZGRlbihOU1N0cmluZyAqZmlsZSkKIAog
c3RhdGljIE11dGV4JiB0cmFuc2FjdGlvbkJhY2tncm91bmRUYXNrSWRlbnRpZmllckxvY2soKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBt
dXRleDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDA2MmM1ZTQ2MjAzZWExYjlmZGQyZmE3ZWVjMDk0
Nzc2Mjk4Yzg2N2QuLjFhNjQ0MGQ5NWZhM2FkYjRmMmQ5NTcwMGQwYjkxZGFkZDdhOGFkYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQubW0KQEAgLTU2LDcgKzU2LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVc2Vy
TWVkaWFSZXF1ZXN0PiwgUmV0YWluUHRyPFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyPj4KIAog
c3RhdGljIFVzZXJNZWRpYVJlcXVlc3RzTWFwJiB1c2VyTWVkaWFSZXF1ZXN0c01hcCgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChVc2VyTWVkaWFSZXF1ZXN0c01hcCwgcmVxdWVzdHMsICgp
KTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVXNlck1lZGlhUmVxdWVzdHNN
YXAsIHJlcXVlc3RzLCAoKSk7CiAgICAgcmV0dXJuIHJlcXVlc3RzOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxSZXByZXNlbnRhdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCmluZGV4IGI0
NzIxNDIzNjI0NWJmMTQ3ZGI4ZGFmOTJhZjNhNWY5ZjFhZTlmMzEuLjdlMWZlNWRmZDBjYmQwYThi
NzRlNzIxNmRmZTE1YmRlOWIyODhhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFJlcHJlc2VudGF0aW9uLm1tCkBAIC0zNjMsOCArMzYzLDggQEAgc3RhdGlj
IFJlZ3VsYXJFeHByZXNzaW9uKiByZWdFeHBGb3JMYWJlbHMoTlNBcnJheSAqbGFiZWxzKQogICAg
IC8vIHRoYXQgdGhlIGFwcCB3aWxsIHVzZSBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGxvY2Fs
ZXMgaXMgdXNlZCBpbiBzZWFyY2hpbmcuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBy
ZWdFeHBDYWNoZVNpemUgPSA0OwogICAgIHN0YXRpYyBOU011dGFibGVBcnJheSogcmVnRXhwTGFi
ZWxzID0gbmlsOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFJlZ3VsYXJFeHByZXNz
aW9uKj4sIHJlZ0V4cHMsICgpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZ3VsYXJFeHBy
ZXNzaW9uLCB3b3JkUmVnRXhwLCAoIlxcdyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CisgICAgREVQ
UkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFZlY3RvcjxSZWd1bGFyRXhwcmVzc2lvbio+LCBy
ZWdFeHBzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFJlZ3VsYXJF
eHByZXNzaW9uLCB3b3JkUmVnRXhwLCAoIlxcdyIsIFRleHRDYXNlU2Vuc2l0aXZlKSk7CiAKICAg
ICBSZWd1bGFyRXhwcmVzc2lvbiogcmVzdWx0OwogICAgIGlmICghcmVnRXhwTGFiZWxzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGY0ZmIxYmM3YzAyNzIxNWZjZWU0MDZl
Y2MwNWQxNzRiMGNhNjc0OTkuLjQ5NzllMGVjYmI1YTYzZjU3NDc1ZjMyYjBiNzYzMTE4Y2VhZWVj
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTY3OTEsNyArNjc5MSw3
IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBqCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0FycmF5OjppbmZvKCkpKSB7Ci0gICAg
ICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8SlNPYmplY3QqPiwgdmlzaXRlZEVs
ZW1zLCAoKSk7CisgICAgICAgICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxKU09iamVjdCo+LCB2aXNpdGVkRWxlbXMsICgpKTsKICAgICAgICAgICAgIGlmICghdmlz
aXRlZEVsZW1zLmNvbnRhaW5zKG9iamVjdCkpIHsKICAgICAgICAgICAgICAgICB2aXNpdGVkRWxl
bXMuYWRkKG9iamVjdCk7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRl
eCA2MTdkN2U1OGMzNDNlMjc3ZjU4YTQzNWQzOTI1ODkzZDY1MTk3YjNkLi45YmE2NTM3NDY5Yzg4
OGY3MTQ1YTA1NGI0OTAxNzczZjhlMWQ0MjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHZvaWQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjppbml0aWFsaXplKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYlBs
YXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdlYlBsYXRmb3JtU3RyYXRlZ2llcywgcGxhdGZvcm1TdHJh
dGVnaWVzLCAoKSk7CiB9CiAKIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKaW5kZXggNzFkMWU2ZDZkM2Q1YTI3YzQw
MWZiNzYxYTkwYjUzZDY3OTczNTIyZS4uNjMxOGI1NzAwM2Q0ZTBhMDcwNjI0N2VkMDY5MWFhMWE0
YWQ3OGFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCBV
TE9ORyBTVERNRVRIT0RDQUxMVFlQRSBXZWJIaXN0b3J5OjpSZWxlYXNlKHZvaWQpCiAKIHN0YXRp
YyBpbmxpbmUgQ09NUHRyPFdlYkhpc3Rvcnk+JiBzaGFyZWRIaXN0b3J5U3RvcmFnZSgpCiB7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChDT01QdHI8V2ViSGlzdG9yeT4sIHNoYXJlZEhpc3Rvcnks
ICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQ09NUHRyPFdlYkhpc3Rv
cnk+LCBzaGFyZWRIaXN0b3J5LCAoKSk7CiAgICAgcmV0dXJuIHNoYXJlZEhpc3Rvcnk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxvY2FsaXphYmxlU3RyaW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJMb2NhbGl6YWJsZVN0cmluZ3MuY3BwCmluZGV4IDk1N2Iz
YWRlOTA2ZTUyZmM2YzZlZjc0OTVhZGZiMTU1MmI2MDZlZWYuLjRkZDExZDRkOGU3MzEzZmQ1ZDg3
M2Q4ODdiYTBmYmExNmRjY2E1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkxv
Y2FsaXphYmxlU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViTG9jYWxpemFi
bGVTdHJpbmdzLmNwcApAQCAtNDcsMjUgKzQ3LDI1IEBAIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IExvY2FsaXplZFN0cmluZyo+IExvY2FsaXplZFN0cmluZ01hcDsKIAogc3RhdGljIE11dGV4JiBt
YWluQnVuZGxlTG9jU3RyaW5nc011dGV4KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE11
dGV4LCBtdXRleCwgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChNdXRl
eCwgbXV0ZXgsICgpKTsKICAgICByZXR1cm4gbXV0ZXg7CiB9CiAKIHN0YXRpYyBMb2NhbGl6ZWRT
dHJpbmdNYXAmIG1haW5CdW5kbGVMb2NTdHJpbmdzKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7CiAgICAgcmV0dXJuIG1h
cDsKIH0KIAogc3RhdGljIE11dGV4JiBmcmFtZXdvcmtMb2NTdHJpbmdzTXV0ZXgoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIG11dGV4LCAoKSk7CisgICAgREVQUkVDQVRFRF9E
RUZJTkVfU1RBVElDX0xPQ0FMKE11dGV4LCBtdXRleCwgKCkpOwogICAgIHJldHVybiBtdXRleDsK
IH0KIAogc3RhdGljIExvY2FsaXplZFN0cmluZ01hcCBmcmFtZXdvcmtMb2NTdHJpbmdzKCkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFwLCAoKSk7Cisg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKExvY2FsaXplZFN0cmluZ01hcCwgbWFw
LCAoKSk7CiAgICAgcmV0dXJuIG1hcDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA2YTIy
NTJmNjg1NTM3ZDIyZDgwYzY3ZjlmMDM2MjM0YWQ5N2UxMTY0Li4zMDY2OTgzY2VhZTM5YjRmZDJm
NGQ0ZTg4MGQxYmYxZGYyOWUxZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMTMyMSw4ICsx
MzIxLDggQEAgYm9vbCBXZWJWaWV3OjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogU3RyaW5nIFdlYlZpZXc6OnN0YW5kYXJkVXNlckFn
ZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKIHsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3NWZXJzaW9uLCAod2luZG93c1ZlcnNp
b25Gb3JVQVN0cmluZygpKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktp
dFZlcnNpb24sICh3ZWJLaXRWZXJzaW9uU3RyaW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvc1ZlcnNpb24sICh3aW5kb3dzVmVyc2lvbkZvclVBU3Ry
aW5nKCkpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJL
aXRWZXJzaW9uLCAod2ViS2l0VmVyc2lvblN0cmluZygpKSk7CiAKICAgICByZXR1cm4gbWFrZVN0
cmluZygiTW96aWxsYS81LjAgKCIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0
VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pIiwgYXBwbGljYXRpb25OYW1lLmlzRW1wdHko
KSA/ICIiIDogIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5j
cHAKaW5kZXggZGU4ZGE0ZDAxNDMyNWVhOWNjZDZkZGFjNGEzNGU5OTA1ODhkMWI4NS4uNGM2MWRi
YjBmNGMxM2ZmZjM5Y2QwZDM4NTBhZmE1ZmFiNGY1MDg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0UuY3BwCkBAIC02MCw3ICs2MCw3IEBAIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6On5GcmFtZUxv
YWRlckNsaWVudFdpbkNFKCkKIAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnVzZXJB
Z2VudChjb25zdCBVUkwmKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1c2Vy
QWdlbnRTdHJpbmcsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCB1c2VyQWdlbnRTdHJpbmcsICgpKTsKIAogICAgIGlmICh1c2VyQWdlbnRTdHJpbmcuaXNO
dWxsKCkpIHsKICAgICAgICAgU3RyaW5nIHdlYktpdFZlcnNpb24gPSBTdHJpbmc6OmZvcm1hdCgi
JWQuJWQiLCBXRUJLSVRfTUFKT1JfVkVSU0lPTiwgV0VCS0lUX01JTk9SX1ZFUlNJT04pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFLmNwcAppbmRleCAyZGM5OWNkZjY2MjdiNzFhNTVmYjg1ZjVlMDVi
NjBiNGRhYmE1YTU2Li5jNjUxOTM4ZmRlMTc4MjhhODBmNmRlNDlmMjczOWQyMjVkNDU2YzRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3Ry
YXRlZ2llc1dpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6aW5pdGlhbGl6
ZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRSwg
cGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLCBwbGF0Zm9ybVN0cmF0ZWdpZXMsICgpKTsKIH0K
IAogUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OlBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRl
L1NRTGl0ZUlEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJDdXJzb3IuY3BwCmluZGV4IDVkZTM1OTBmMjEyNzk3OGNm
NGUzNTM4MWIzOWI0ZDczZGI2NTQzM2UuLjkzMmJmNzM4YWUwMmUwODc4YTMwNjBkOTBjMzNmMDQ5
NDlhNWZjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1NRTGl0ZUlEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAtNjks
NyArNjksNyBAQCBTUUxpdGVJREJDdXJzb3I6OlNRTGl0ZUlEQkN1cnNvcihTUUxpdGVJREJUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnN0IElEQklkZQogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiBnZXRJbmRleFN0YXRlbWVudChib29sIGhhc0xvd2VyS2V5LCBib29sIGlzTG93ZXJPcGVuLCBi
b29sIGhhc1VwcGVyS2V5LCBib29sIGlzVXBwZXJPcGVuLCBib29sIGRlc2NlbmRpbmcsIGJvb2wg
dW5pcXVlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVmVjdG9yPFN0cmluZz4sIGluZGV4
U3RhdGVtZW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0
b3I8U3RyaW5nPiwgaW5kZXhTdGF0ZW1lbnRzLCAoKSk7CiAKICAgICBpZiAoaW5kZXhTdGF0ZW1l
bnRzLmlzRW1wdHkoKSkgewogICAgICAgICBpbmRleFN0YXRlbWVudHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSgxMik7CkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgZ2V0
SW5kZXhTdGF0ZW1lbnQoYm9vbCBoYXNMb3dlcktleSwgYm9vbCBpc0xvd2VyT3BlbiwgYm9vbAog
CiBzdGF0aWMgY29uc3QgU3RyaW5nJiBnZXRPYmplY3RTdG9yZVN0YXRlbWVudChib29sIGhhc0xv
d2VyS2V5LCBib29sIGlzTG93ZXJPcGVuLCBib29sIGhhc1VwcGVyS2V5LCBib29sIGlzVXBwZXJP
cGVuLCBib29sIGRlc2NlbmRpbmcpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChWZWN0b3I8
U3RyaW5nPiwgc3RhdGVtZW50cywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChWZWN0b3I8U3RyaW5nPiwgc3RhdGVtZW50cywgKCkpOwogCiAgICAgaWYgKHN0YXRlbWVu
dHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0YXRlbWVudHMucmVzZXJ2ZUNhcGFjaXR5KDgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0ZXJzL1Nl
Y2NvbXBCcm9rZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2xpbnV4L1NlY2NvbXBGaWx0
ZXJzL1NlY2NvbXBCcm9rZXIuY3BwCmluZGV4IDVjY2FiMTYxMWI2YjA0ZTgzODYyOWI4NjlhMGZm
OTgzY2ZjMzFiYWQuLjU4ZTczZjkxZjdjYmI0NTFmMjRiNDkxZjVlZDdmOWJmZWRmYTlkMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9saW51eC9TZWNjb21wRmlsdGVycy9TZWNj
b21wQnJva2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbGludXgvU2VjY29tcEZp
bHRlcnMvU2VjY29tcEJyb2tlci5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCBy
ZWdpc3RlclNJR1NZU0hhbmRsZXIoKQogCiBTZWNjb21wQnJva2VyQ2xpZW50JiBTZWNjb21wQnJv
a2VyQ2xpZW50OjpzaGFyZWQoaW50IHNvY2tldCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KFNlY2NvbXBCcm9rZXJDbGllbnQsIGJyb2tlckNsaWVudCwgKHNvY2tldCkpOworICAgIERFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTZWNjb21wQnJva2VyQ2xpZW50LCBicm9rZXJDbGll
bnQsIChzb2NrZXQpKTsKIAogICAgIHJldHVybiBicm9rZXJDbGllbnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYklu
c3BlY3RvclNlcnZlci5jcHAKaW5kZXggOGY2ODlhYzY3YTczYThjOTQ0MjQwNTA1MzgwZjIwZGY3
MjkxM2U5NS4uNTEzNWY5Mjc1ZjZhY2MyOTNkMThiYTUzYzJkZjZiMmY2OWMxMTBkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0
b3JTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgV2ViSW5z
cGVjdG9yU2VydmVyOjpkaWRSZWNlaXZlV2ViU29ja2V0VXBncmFkZUhUVFBSZXF1ZXN0KFdlYlNv
Y2tldFNlcnZlckNvCiAgICAgU3RyaW5nIHBhdGggPSByZXF1ZXN0LT51cmwoKTsKIAogICAgIC8v
IE5PVEU6IEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgaW5z
cGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBhdGhQcmVmaXgsIChBU0NJSUxpdGVyYWwoIi9kZXZ0
b29scy9wYWdlLyIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgaW5zcGVjdG9yV2ViU29ja2V0Q29ubmVjdGlvblBhdGhQcmVmaXgsIChBU0NJSUxp
dGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpKSk7CiAKICAgICAvLyBVbmtub3duIHBhdGggcmVxdWVz
dGVkLgogICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGluc3BlY3RvcldlYlNvY2tldENvbm5lY3Rp
b25QYXRoUHJlZml4KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBiMjM2MmFkYjE0YjFkNjM5ZDhmNzAzMmQwMDJmNTgyYzAzM2E2NmNhLi43NTJj
ZjI1YWM4OGQzMzlkZmFhODU2MGE1ZjJiZTY5OTYzNjg0MjY5IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDMt
MTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmVuYW1lIERFRklORV9TVEFUSUNfTE9DQUwgdG8gREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2
MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3Ig
bmV3IGNvZGUgdXNlIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBpbnN0ZWFkLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChqYXZh
U2NyaXB0VGhyZWFkc011dGV4KToKKyAgICAgICAgKGphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAodG91Y2hQ
b2ludExpc3QpOgorICAgICAgICAoZGVsYXllZEV2ZW50UXVldWUpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHA6CisgICAgICAgIChkZWxlZ2F0ZXNX
aXRoRGVsYXllZFdvcmspOgorICAgICAgICAqIFNjcmlwdHMvY2hlY2stZm9yLWV4aXQtdGltZS1k
ZXN0cnVjdG9yczoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2VjY29t
cEZpbHRlcnMuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9X
ZWJQcm9jZXNzVGVzdC5jcHA6CisgICAgICAgICh0ZXN0c01hcCk6CisKIDIwMTQtMDMtMTIgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIEZpeCBHVEsrIGNtYWtlIGJ1aWxkIGFmdGVyIHIxNjU0ODguCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCmluZGV4IDVkNjczYjg3MGFkZGU0NWM1
YzcwYzRiYTUyYzc5MjdmNWY1ZTFkNjEuLjFjOTI2MmUwN2VmZGM3MTI5OTYzNjIyNzJlZDE3N2Fj
ZDM3NjM4YmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJl
YWRpbmcuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcu
Y3BwCkBAIC00NiwxNCArNDYsMTQgQEAgc3RhdGljIEpTQ29udGV4dEdyb3VwUmVmIGphdmFTY3Jp
cHRUaHJlYWRzR3JvdXA7CiAKIHN0YXRpYyBNdXRleCYgamF2YVNjcmlwdFRocmVhZHNNdXRleCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKKyAg
ICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0YXRpY011dGV4LCAoKSk7
CiAgICAgcmV0dXJuIHN0YXRpY011dGV4OwogfQogCiB0eXBlZGVmIEhhc2hTZXQ8VGhyZWFkSWRl
bnRpZmllcj4gVGhyZWFkU2V0Owogc3RhdGljIFRocmVhZFNldCYgamF2YVNjcmlwdFRocmVhZHMo
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGhyZWFkU2V0LCBzdGF0aWNKYXZhU2NyaXB0
VGhyZWFkcywgKCkpOworICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChUaHJlYWRT
ZXQsIHN0YXRpY0phdmFTY3JpcHRUaHJlYWRzLCAoKSk7CiAgICAgQVNTRVJUKCFqYXZhU2NyaXB0
VGhyZWFkc011dGV4KCkudHJ5TG9jaygpKTsKICAgICByZXR1cm4gc3RhdGljSmF2YVNjcmlwdFRo
cmVhZHM7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5k
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAppbmRleCA5
MmI3ODg5OTEyMWNhOGE0YjBlMDJlMTIzNGFlMzNjNTJmODk1M2U1Li5mOTg3M2YyN2ZhOTI0NTRm
MGUzZDlkNGRlYjMwZDE2OTBjNmEyYmJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVu
dFNlbmRlci5jcHAKQEAgLTE2OSwxMyArMTY5LDEzIEBAIHN0YXRpYyB1bnNpZ25lZCB0b3VjaE1v
ZGlmaWVyczsKIAogV1RGOjpWZWN0b3I8VG91Y2hFdmVudEluZm8+JiB0b3VjaFBvaW50TGlzdCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlZlY3RvcjxUb3VjaEV2ZW50SW5mbz4s
IHN0YXRpY1RvdWNoUG9pbnRMaXN0LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElD
X0xPQ0FMKFdURjo6VmVjdG9yPFRvdWNoRXZlbnRJbmZvPiwgc3RhdGljVG91Y2hQb2ludExpc3Qs
ICgpKTsKICAgICByZXR1cm4gc3RhdGljVG91Y2hQb2ludExpc3Q7CiB9CiAKIFdURjo6VmVjdG9y
PERlbGF5ZWRFdmVudD4mIGRlbGF5ZWRFdmVudFF1ZXVlKCkKIHsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFdURjo6VmVjdG9yPERlbGF5ZWRFdmVudD4sIHN0YXRpY0RlbGF5ZWRFdmVudFF1ZXVl
LCAoKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VmVjdG9yPERl
bGF5ZWRFdmVudD4sIHN0YXRpY0RlbGF5ZWRFdmVudFF1ZXVlLCAoKSk7CiAgICAgcmV0dXJuIHN0
YXRpY0RlbGF5ZWRFdmVudFF1ZXVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRnJhbWVMb2FkRGVsZWdhdGUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0ZyYW1lTG9hZERlbGVnYXRlLmNwcAppbmRleCAwZWE0MGZhMTdhNGJhMjk4NDA3N2I0Yjk2MzJm
OGExY2YxZDAyZWNjLi5hZjQ1OGZiYjI0NzRjMjM0NzE0NWMyMDIzMGNiMWNmOGJkOGM3YjBjIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRnJhbWVMb2FkRGVsZWdhdGUuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9GcmFtZUxvYWREZWxlZ2F0ZS5jcHAKQEAg
LTIxMyw3ICsyMTMsNyBAQCB2b2lkIEZyYW1lTG9hZERlbGVnYXRlOjpyZXNldFRvQ29uc2lzdGVu
dFN0YXRlKCkKIHR5cGVkZWYgVmVjdG9yPENPTVB0cjxGcmFtZUxvYWREZWxlZ2F0ZT4gPiBEZWxl
Z2F0ZVZlY3RvcjsKIHN0YXRpYyBEZWxlZ2F0ZVZlY3RvciYgZGVsZWdhdGVzV2l0aERlbGF5ZWRX
b3JrKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKERlbGVnYXRlVmVjdG9yLCBkZWxlZ2F0
ZXMsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoRGVsZWdhdGVWZWN0
b3IsIGRlbGVnYXRlcywgKCkpOwogICAgIHJldHVybiBkZWxlZ2F0ZXM7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvY2hlY2stZm9yLWV4aXQtdGltZS1kZXN0cnVjdG9ycyBiL1Rvb2xz
L1NjcmlwdHMvY2hlY2stZm9yLWV4aXQtdGltZS1kZXN0cnVjdG9ycwppbmRleCBhZThmYzBkNTk2
NzlmYzQxM2I0MDI5ZGM4MjkzMTY3NjA5NmU2NmRkLi5hNjA2NzVjMDdiM2JhZGJkNDJjMWJmOTFk
NmFkZmVmZDMyM2Q2MjhkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2NoZWNrLWZvci1leGl0
LXRpbWUtZGVzdHJ1Y3RvcnMKKysrIGIvVG9vbHMvU2NyaXB0cy9jaGVjay1mb3ItZXhpdC10aW1l
LWRlc3RydWN0b3JzCkBAIC05Nyw3ICs5Nyw3IEBAIGZvciBteSAkZmlsZSAoc29ydCBAZmlsZXMp
IHsKIH0KIAogaWYgKCRzYXdFcnJvciBhbmQgISRjb3ZlcmFnZUJ1aWxkKSB7Ci0gICAgcHJpbnQg
IkVSUk9SOiBVc2UgREVGSU5FX1NUQVRJQ19MT0NBTCBmcm9tIDx3dGYvU3RkTGliRXh0cmFzLmg+
XG4iOworICAgIHByaW50ICJFUlJPUjogVXNlIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NB
TCBmcm9tIDx3dGYvU3RkTGliRXh0cmFzLmg+XG4iOwogICAgIHVubGluayAkZXhlY3V0YWJsZVBh
dGg7CiAgICAgZXhpdCAxOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL1NlY2NvbXBGaWx0ZXJzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9TZWNjb21wRmlsdGVycy5jcHAKaW5kZXggYzY2NmJmNjg3MmNiZGU4NWU5ZDQ0NGU5
YzFmY2YyZDhkY2ZhOTRmOS4uMzg5MWQ4ZTM0NGQ5NDkwYzU2NTYyZWIyMzJmZWU1MzZjNjk4YmZl
MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1NlY2NvbXBG
aWx0ZXJzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU2VjY29t
cEZpbHRlcnMuY3BwCkBAIC00MiwxNiArNDIsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCi1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
Zywgcm9vdERpciwgKEFTQ0lJTGl0ZXJhbCgiLyIpKSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgaG9tZURpciwgKFN0cmluZyhnZXRlbnYoIkhPTUUiKSkpKTsKLURFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCB1c3JEaXIsIChBU0NJSUxpdGVyYWwoIi91c3IiKSkpOwotREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHVzclNiaW5EaXIsIChBU0NJSUxpdGVyYWwoIi91c3Ivc2JpbiIp
KSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdGVzdERpclJlYWQsIChBU0NJSUxpdGVy
YWwoIi90bXAvV2ViS2l0U2VjY29tcEZpbHRlcnMvdGVzdFJlYWQiKSkpOwotREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIHRlc3REaXJXcml0ZSwgKEFTQ0lJTGl0ZXJhbCgiL3RtcC9XZWJLaXRT
ZWNjb21wRmlsdGVycy90ZXN0V3JpdGUiKSkpOwotREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHRlc3REaXJSZWFkQW5kV3JpdGUsIChBU0NJSUxpdGVyYWwoIi90bXAvV2ViS2l0U2VjY29tcEZp
bHRlcnMvdGVzdFJlYWRBbmRXcml0ZSIpKSk7Ci1ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
dGVzdERpck5vdEFsbG93ZWQsIChBU0NJSUxpdGVyYWwoIi90bXAvV2ViS2l0U2VjY29tcEZpbHRl
cnMvdGVzdE5vdEFsbG93ZWQiKSkpOwotREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRlc3RG
aWxlTm90QWxsb3dlZCwgKHRlc3REaXJSZWFkQW5kV3JpdGUgKyAiL3Rlc3RGaWxlUG9saWN5Iikp
OwotREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRlc3RGaWxlUmVhZEFuZFdyaXRlLCAodGVz
dERpck5vdEFsbG93ZWQgKyAiL3Rlc3RGaWxlUG9saWN5IikpOworREVQUkVDQVRFRF9ERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgcm9vdERpciwgKEFTQ0lJTGl0ZXJhbCgiLyIpKSk7CitERVBS
RUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBob21lRGlyLCAoU3RyaW5nKGdldGVu
digiSE9NRSIpKSkpOworREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdXNy
RGlyLCAoQVNDSUlMaXRlcmFsKCIvdXNyIikpKTsKK0RFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIHVzclNiaW5EaXIsIChBU0NJSUxpdGVyYWwoIi91c3Ivc2JpbiIpKSk7CitE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0RGlyUmVhZCwgKEFTQ0lJ
TGl0ZXJhbCgiL3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0UmVhZCIpKSk7CitERVBSRUNB
VEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0RGlyV3JpdGUsIChBU0NJSUxpdGVy
YWwoIi90bXAvV2ViS2l0U2VjY29tcEZpbHRlcnMvdGVzdFdyaXRlIikpKTsKK0RFUFJFQ0FURURf
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRlc3REaXJSZWFkQW5kV3JpdGUsIChBU0NJSUxp
dGVyYWwoIi90bXAvV2ViS2l0U2VjY29tcEZpbHRlcnMvdGVzdFJlYWRBbmRXcml0ZSIpKSk7CitE
RVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0RGlyTm90QWxsb3dlZCwg
KEFTQ0lJTGl0ZXJhbCgiL3RtcC9XZWJLaXRTZWNjb21wRmlsdGVycy90ZXN0Tm90QWxsb3dlZCIp
KSk7CitERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0ZXN0RmlsZU5vdEFs
bG93ZWQsICh0ZXN0RGlyUmVhZEFuZFdyaXRlICsgIi90ZXN0RmlsZVBvbGljeSIpKTsKK0RFUFJF
Q0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHRlc3RGaWxlUmVhZEFuZFdyaXRlLCAo
dGVzdERpck5vdEFsbG93ZWQgKyAiL3Rlc3RGaWxlUG9saWN5IikpOwogCiBzdGF0aWMgY29uc3Qg
bW9kZV90IGRlZmF1bHRNb2RlID0gU19JUlVTUiB8IFNfSVdVU1IgfCBTX0lYVVNSOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NU
ZXN0LmNwcAppbmRleCBjZmYxYTI1MmJkOGVmYTMyNzA3OWUxZDVhNDg2Mjc1ZWQ0YzUxYzhiLi4y
NGM0Zjk0MDYyYmI1ZWNjOWU4OGQzNjYwNzVkOTM0ZWM1ZWQ2YmI0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6ZnVuY3Rpb248
UGFzc093blB0cjxXZWJQcm9jZXNzVGVzdD4gKCk+PiBUZXN0c01hcDsKIHN0YXRpYyBUZXN0c01h
cCYgdGVzdHNNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVGVzdHNNYXAsIHNfdGVz
dHNNYXAsICgpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoVGVzdHNNYXAs
IHNfdGVzdHNNYXAsICgpKTsKICAgICByZXR1cm4gc190ZXN0c01hcDsKIH0KIAo=
</data>
<flag name="review"
          id="250830"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>