<?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>230861</bug_id>
          
          <creation_ts>2021-09-27 15:21:07 -0700</creation_ts>
          <short_desc>Replace FileSystemHandleImpl with FileSystemStorageConnection</short_desc>
          <delta_ts>2021-10-13 18:39:40 -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>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231706</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797663</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-27 15:21:07 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797748</commentid>
    <comment_count>1</comment_count>
      <attachid>439428</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-27 20:35:13 -0700</bug_when>
    <thetext>Created attachment 439428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797752</commentid>
    <comment_count>2</comment_count>
      <attachid>439430</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-27 21:15:46 -0700</bug_when>
    <thetext>Created attachment 439430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797757</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-27 21:49:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/83606465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797904</commentid>
    <comment_count>4</comment_count>
      <attachid>439430</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-28 09:00:53 -0700</bug_when>
    <thetext>Comment on attachment 439430
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemHandle.cpp:40
&gt; +    , m_connection(connection)

WTFMove

&gt; Source/WebCore/Modules/storage/StorageManager.cpp:113
&gt; +        promise.resolve(FileSystemDirectoryHandle::create({ }, result.releaseReturnValue(), Ref { *connection }));

WTFMove

&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:302
&gt; +        m_fileSystemStorageConnection = WebFileSystemStorageConnection::create(m_connection.get());

I am not sure this is the right place to have good network process crash recovery behaviour.
WebFileSystemStorageConnection might be kept alive by its File handles after NetworkProcessConnection is gone.
One possibility is to have one global WebFileSystemStorageConnection which would make sure to react upon network process connection crash (for instance by getting a connection everytime it is needed or by caching an IPC connection and resetting it to nullptr on crash).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797918</commentid>
    <comment_count>5</comment_count>
      <attachid>439430</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-28 09:32:00 -0700</bug_when>
    <thetext>Comment on attachment 439430
Patch

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

&gt;&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:302
&gt;&gt; +        m_fileSystemStorageConnection = WebFileSystemStorageConnection::create(m_connection.get());
&gt; 
&gt; I am not sure this is the right place to have good network process crash recovery behaviour.
&gt; WebFileSystemStorageConnection might be kept alive by its File handles after NetworkProcessConnection is gone.
&gt; One possibility is to have one global WebFileSystemStorageConnection which would make sure to react upon network process connection crash (for instance by getting a connection everytime it is needed or by caching an IPC connection and resetting it to nullptr on crash).

WebFileSystemStorageConnection does hold reference to IPC connection and set it null on connection close now? Or do you mean something different?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797966</commentid>
    <comment_count>6</comment_count>
      <attachid>439499</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-28 11:30:06 -0700</bug_when>
    <thetext>Created attachment 439499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798091</commentid>
    <comment_count>7</comment_count>
      <attachid>439539</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-28 16:02:22 -0700</bug_when>
    <thetext>Created attachment 439539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798372</commentid>
    <comment_count>8</comment_count>
      <attachid>439539</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-29 09:16:49 -0700</bug_when>
    <thetext>Comment on attachment 439539
Patch

Looks good to me. If possible, it would be good to see if we can simplify the ID management to not do any conversion, either here or as a follow-up.

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

&gt; Source/WebCore/Modules/storage/StorageConnection.h:44
&gt; +    using GetDirectoryCallback = CompletionHandler&lt;void(ExceptionOr&lt;FileSystemHandleIdentifier&gt;&amp;&amp;, RefPtr&lt;FileSystemStorageConnection&gt;&amp;&amp;)&gt;;

I guess it could be an ExceptionOr&lt;std::pair&lt;FileSystemHandleIdentifier, Ref&lt;FileSystemStorageConnection&gt;&gt;&gt;.
Or maybe the callsite could retrieve the connection somehow to just return the id.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:55
&gt; +        return completionHandler(WebCore::Exception { WebCore::UnknownError, &quot;Connection is lost&quot; });

For now, I would do:
if (!m_connection)
    m_connection = WebProcess::singleton()....

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:64
&gt; +    });

Can you pass the completionHandler directly?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:81
&gt; +        completionHandler(makeObjectIdentifier&lt;WebCore::FileSystemHandleIdentifierType&gt;(storageIdentifier.toUInt64()));

Do we need two different types, FileSystemHandleIdentifier and FileSystemStorageHandleIdentifier?
It would be convenient to just use one if we can.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:49
&gt; +    WebFileSystemStorageConnection(IPC::Connection&amp;);

explicit

&gt; Source/WebKit/WebProcess/WebProcess.cpp:1215
&gt; +        m_fileSystemStorageConnection = nullptr;

We might not need to set it to nullptr if we get a new IPC::Connection directly in m_fileSystemStorageConnection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798449</commentid>
    <comment_count>9</comment_count>
      <attachid>439539</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-29 10:57:19 -0700</bug_when>
    <thetext>Comment on attachment 439539
Patch

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

&gt;&gt; Source/WebCore/Modules/storage/StorageConnection.h:44
&gt;&gt; +    using GetDirectoryCallback = CompletionHandler&lt;void(ExceptionOr&lt;FileSystemHandleIdentifier&gt;&amp;&amp;, RefPtr&lt;FileSystemStorageConnection&gt;&amp;&amp;)&gt;;
&gt; 
&gt; I guess it could be an ExceptionOr&lt;std::pair&lt;FileSystemHandleIdentifier, Ref&lt;FileSystemStorageConnection&gt;&gt;&gt;.
&gt; Or maybe the callsite could retrieve the connection somehow to just return the id.

I will change it to pair.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:55
&gt;&gt; +        return completionHandler(WebCore::Exception { WebCore::UnknownError, &quot;Connection is lost&quot; });
&gt; 
&gt; For now, I would do:
&gt; if (!m_connection)
&gt;     m_connection = WebProcess::singleton()....

Like I said before, the identifier of handle is only meaningful to one network process. If we launch a new network process, the new network process won&apos;t recognize the identifiers and the operations will still fail.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:64
&gt;&gt; +    });
&gt; 
&gt; Can you pass the completionHandler directly?

Sure.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:81
&gt;&gt; +        completionHandler(makeObjectIdentifier&lt;WebCore::FileSystemHandleIdentifierType&gt;(storageIdentifier.toUInt64()));
&gt; 
&gt; Do we need two different types, FileSystemHandleIdentifier and FileSystemStorageHandleIdentifier?
&gt; It would be convenient to just use one if we can.

I guess we can just use FileSystemHandleIdentifier. I will do a follow-up on this: https://bugs.webkit.org/show_bug.cgi?id=230965

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:49
&gt;&gt; +    WebFileSystemStorageConnection(IPC::Connection&amp;);
&gt; 
&gt; explicit

Sure

&gt;&gt; Source/WebKit/WebProcess/WebProcess.cpp:1215
&gt;&gt; +        m_fileSystemStorageConnection = nullptr;
&gt; 
&gt; We might not need to set it to nullptr if we get a new IPC::Connection directly in m_fileSystemStorageConnection

Same reason as above: we don&apos;t want to launch a new network process to handle operations on existing connections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798558</commentid>
    <comment_count>10</comment_count>
      <attachid>439656</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-29 14:15:04 -0700</bug_when>
    <thetext>Created attachment 439656
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798559</commentid>
    <comment_count>11</comment_count>
      <attachid>439657</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-29 14:15:25 -0700</bug_when>
    <thetext>Created attachment 439657
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798560</commentid>
    <comment_count>12</comment_count>
      <attachid>439658</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-29 14:16:40 -0700</bug_when>
    <thetext>Created attachment 439658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798573</commentid>
    <comment_count>13</comment_count>
      <attachid>439661</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-09-29 14:39:11 -0700</bug_when>
    <thetext>Created attachment 439661
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798632</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 15:45:30 -0700</bug_when>
    <thetext>Committed r283271 (242300@main): &lt;https://commits.webkit.org/242300@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439661.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439428</attachid>
            <date>2021-09-27 20:35:13 -0700</date>
            <delta_ts>2021-09-27 21:15:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230861-20210927203512.patch</filename>
            <type>text/plain</type>
            <size>71524</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ZmFkOTBkOTc0YmY2
YmY5MGJmN2Y1YTgzNGZjZGVhNmJkMmNhMi4uZTFkYWRmMmFhN2RjYjg2MDQ5ZjkxMDJkYzU2ZDNh
Y2QyMjRhNDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhh
bmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gdG8gcHJvdmlkZSBiZXR0
ZXIgYWJzdHJhY3Rpb24gb2YgYSBjb25uZWN0aW9uIHRvCisgICAgICAgIGZpbGUgc3lzdGVtIHN0
b3JhZ2UgYmFja2VuZCwgd2hpY2ggd2lsbCBtYWtlIGl0IGVhc2llciB0byBhZGQgd29ya2VyIHN1
cHBvcnQgZm9yIEZpbGVTeXN0ZW1IYW5kbGUuCisgICAgICAgIEVhY2ggRmlsZVN5c3RlbUhhbmRs
ZSBoYXMgYSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gYW5kIHRoZSBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24gY2FuIGJlIHNoYXJlZCBhbW9uZyAKKyAgICAgICAgZGlmZmVyZW50IGhh
bmRsZXMuIENoaWxkcmVuIGhhbmRsZSB3aWxsIHVzZSB0aGUgc2FtZSBjb25uZWN0aW9uIGFzIGl0
cyBwYXJlbnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Q7IHRoZXJlIHNob3VsZCBiZSBubyBvYnNl
cnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUpOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aW1wbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246On5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6Zmls
ZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI3ICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGku
S29tb3JpQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBTZXQgQ1VSTF9MT0NLX0RBVEFfU1NM
X1NFU1NJT04gb3B0aW9uIHRvIHJlZHVjZSBTU0wvVExTIGhhbmRzaGFrZSB0aW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGYzY2I2NWNkMTFiM2RkMTgyMWQ3ZGQ2MzlhYzllZTlkOGYzNDg2YmIuLmZmNjJhMGYyMzQ4
ZWY1N2EyN2QxMmQ2OThiOGUzNDUzZDViOTlkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjEtMDktMjcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBGaWxlU3lzdGVtSGFuZGxlSW1wbCB3aXRoIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
ODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJl
c29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
dG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTA5
LTI3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0dQVVBd
IFJlbW92ZSBhY2Nlc3MgdG8gdW51c2VkIG1hY2ggc2VydmljZXMgaW4gc2FuZGJveApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggZWMwNTAxNDJhNWZjNjYxM2Q3NzM1ZjY1Zjk0OWY3ODFkOGNlMGZjNi4u
NDM0NzRlNDdiNTJiMjk5OGU5NWY5Mzk2M2Q4Yzg2NGY4ODhhYzU2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
ICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAog
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5kZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThl
NGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQwMDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNs
dWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1I
YW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8Rmls
ZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwp
KQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lz
dGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1l
KSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/
IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwotICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVu
dGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNv
bm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwog
Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0
cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9
LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRpb25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7
Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhhbmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwg
W25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBu
YW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21p
c2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFt
ZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVz
dWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0
aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAg
ICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6
IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVFbnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
Y29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlkZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJz
aXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQog
CiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3Rl
bUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3Ry
aW5nPj4mJiBwcm9taXNlKQogewotICAgIGltcGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNv
bm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZpZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEyYjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0
OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShT
dHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6
b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+
PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRp
b25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZv
aWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVtSGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElE
TFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7Cisg
ICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
ZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2MjdlYTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5Yjli
ZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgi
CisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZp
bGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhhbmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxl
U3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+
JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6
RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6
OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVh
N2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUwMDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEy
YTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBA
QCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMg
RmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVt
RmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxl
U3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUlt
cGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5k
bGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAg
ICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkz
NGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYuLjZlNDg2YjIwMjljOWEyNTUyMWRlZjIzMGFiMWZl
ZWM1ZDYxMzU1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNp
bmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAg
KzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1GaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVT
eXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChXVEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKIHsKIH0KIApA
QCAtNDgsNyArNDgsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQg
IT0gaGFuZGxlLmtpbmQoKSB8fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0
dXJuIHByb21pc2UucmVzb2x2ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhh
bmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11
dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5k
bGUuaWRlbnRpZmllcigpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAg
ICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFm
MDY3MDc2ZWQ3M2JmNmZlYTUuLjdlNjE5ODAyNGUyZmJmNjFjYTUyYWJkMDg2YzE3MzE2NzU5Y2Uy
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJv
bWlzZURlZmVycmVkOwogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWlu
dDhfdDsKIAogY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVT
eXN0ZW1IYW5kbGU+IHsKQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBL
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYg
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQotCisgICAgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZl
cnJlZDxJRExCb29sZWFuPiYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1I
YW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsK
KyAgICBGaWxlU3lzdGVtSGFuZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUg
fTsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9p
bXBsOworICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBS
ZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExNzUxOTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBl
IHsgfTsKK3VzaW5nIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjZDhkYTQyMjdjZTBjYzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVt
SGFuZGxlSW1wbCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVT
eXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0
b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+
PiYmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgcmVjdXJzaXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhh
bmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJp
bmc+PiYmKT4mJikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQz
NmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xh
c3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0
aW9uT3I7CisKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2lu
ZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
Ym9vbD4mJik+OworICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAg
IHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVh
bCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdl
dEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3Rv
cmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9y
YWdlUHJvdmlkZXIuaAppbmRleCA4MTE5ZTMzNjJiNDAwMTdhOTY0Nzk5MzE0OGE1NDNlYzE2ODhh
ZTQxLi5jYjgzNjk0OTU2N2I4NmRlNGVhZTNjNjAwNDljY2ZlY2UyZmFhNGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIu
aApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0
ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTUzLDkgKzUzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2Vw
dGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29u
c3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSwgbnVs
bHB0cik7CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGFhOTdmNjNhNWI2NmM5ZjgwZmFj
ODkzZDM1ZjFjMmUwY2QxMzcxNDkuLjVmYzYzMDZlYWY0MzEzNTUxNTYwZWMzYzg5NjE0ZDhiMWNm
MWQwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC0yNSwxMiArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7CitjbGFzcyBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC0zOSw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5TdG9yYWdlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0UGVyc2lzdGVkKGNvbnN0IENsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGVyc2lzdChjb25zdCBDbGllbnRPcmln
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4m
JikgPSAwOworICAgIHVzaW5nIEdldERpcmVjdG9yeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJiwgUmVmUHRy
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxi
YWNrJiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGRjNTZjNjcx
ZjgxYmQyYWViYjI0YjIyNTYzNzZkMGQzMmRjM2IzMWYuLjU4YjhmMTRjNzk1MTZlNzRkNjk3N2Zk
MGJmNjNlOTMyZTdkODM4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNsaWVu
dE9yaWdpbi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZS5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCB2b2lk
IFN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVj
dGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25u
ZWN0aW9uSW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVl
KCk7Ci0gICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lz
dGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCwgYXV0byBjb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnJl
c29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKHsgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpjcmVhdGUoeyB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFJl
ZiB7ICpjb25uZWN0aW9uIH0pKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1YzExNDY2MmRiZGIzNDg4
ZWZiYmQ5MzkxMTBhZDMwYWY1YmMxOGYuLjgwYjAwMjJiODZiNWFmMjVkOWQ4Njg2YmQ1M2EyM2Jm
YjA4MmVlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI4MDQsNyArMjgwNCw2IEBACiAJCTkzMEFBQzlBMjUwRUI4NDkwMDEz
REE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NTQ29uZGl0aW9u
UnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlEMjUwRUQ0MDkw
MDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFDQTIyNTBFRDQx
MTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NH
cm91cGluZ1J1bGUuaCAqLzsgfTsKLQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzE1
M0JEQTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBuZyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCRDkxNDE4MUY3QTAwRkNG
NUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi87IH07CiAJCTkzMTUzQkRDMTQxOTU5QkMwMEZD
RjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAvKiB0ZXh0
QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi87IH07CiAJCTkzMTUzQkUyMTQxOTVBNTcwMEZDRjVCRSAv
KiBtaXNzaW5nSW1hZ2UucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAq
LzsgfTsKQEAgLTI5MTcsNiArMjkxNiw4IEBACiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAv
KiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4
QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2Uu
aCAqLzsgfTsKIAkJOTNBODA2MjAxRTAzQjU4NTAwOEExRjI2IC8qIEpTTG9uZ1JhbmdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQzFFMDNC
NTg1MDA4QTFGMjYgLyogSlNMb25nUmFuZ2UuaCAqLzsgfTsKKwkJOTNBRkNEODQyNzAyODFCMDAw
QUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRkNEODIyNzAyODE2NzAwQUIxNjRDIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0QyAvKiBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNCMEE2NTMyNkNERDE0MTAwQUEyMUU0IC8qIE5hdmlnYXRvclBlcm1pc3Npb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwQTY0
QTI2Q0REMTNFMDBBQTIxRTQgLyogTmF2aWdhdG9yUGVybWlzc2lvbnMuaCAqLzsgfTsKIAkJOTNC
MEE2NTQyNkNERDE0MTAwQUEyMUU0IC8qIFBlcm1pc3Npb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwQTY0QjI2Q0REMTNFMDBBQTIxRTQgLyog
UGVybWlzc2lvbnMuaCAqLzsgfTsKIAkJOTNCMEE2NTYyNkNERDE0MTAwQUEyMUU0IC8qIFBlcm1p
c3Npb25TdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjBBNjREMjZDREQxM0YwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdHVzLmggKi87IH07
CkBAIC0xMTY2Myw3ICsxMTY2NCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkzNDBBQSAvKiBT
aW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVSYW5n
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2NEIzMDA5MzQw
QUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERG
RTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4MUE3RTUgLyog
SlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5
c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUFF
M0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODgzLDYgKzExODgzLDggQEAKIAkJ
OTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0E4MDYxQjFFMDNCNTg1MDA4QTFGMjYgLyogSlNMb25nUmFuZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb25nUmFuZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxQzFFMDNCNTg1MDA4QTFGMjYgLyogSlNM
b25nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNMb25nUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODIyNzAyODE2NzAwQUIxNjRD
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjBB
NjQ0MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjBBNjQ1MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uRGVzY3JpcHRvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVybWlzc2lvbkRlc2NyaXB0b3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IwQTY0NjI2Q0RDNUI3MDBBQTIxRTQgLyogUGVybWlz
c2lvbk5hbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcm1pc3Npb25OYW1lLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzU0LDcgKzIzMzU2LDggQEAKIAkJCQk5
MzJDOUJEMDI2REQ2MjU1MDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5jcHAgKi8sCiAJCQkJ
OTMyQzlCREEyNkRENjI2MTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCAqLywKIAkJCQk5
MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5pZGwgKi8sCi0JCQkJ
OTMxQTA3NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggKi8sCisJ
CQkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LmggKi8sCisJCQkJOTNBRkNEODIyNzAyODE2NzAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdl
TWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2RThBNkJDMDA1
ODUzOEYgLyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJCQkpOwpAQCAt
MzI0NDQsNyArMzI0NDcsOCBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxl
U3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2RTk5NUMwMDA1
ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQz
RTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0QyAvKiBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBRkNEODQyNzAyODFCMDAw
QUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNk
NzcuLmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dApAQCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
U2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hh
cmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLjQ5
Y2Y4NGU2ZTBmMDQ4NzY2NGFiZTMxY2YzYjYyMGQ2Njk3ZTc0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlh
cmNoaXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1
MjsKKwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdn
cmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE1MTIsNiArMTUxMiw3IEBACiAJCTkzQUI5QjRF
MjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEYy
NTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTkzQUZDRDg3MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUZD
RDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJOTNCMEE2NzUyNkQ1QURDRjAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Iw
QTY3NDI2RDVBNzJFMDBBQTIxRTQgLyogV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaCAqLzsgfTsK
IAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBC
OTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3
QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9y
YWdlRGF0YWJhc2UuaCAqLzsgfTsKQEAgLTQ5NDMsOCArNDk0NCw2IEBACiAJCTkzMUEwNzUyMjZG
MDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUzMjZGMDZBQjQwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzFBMDc1NzI2RjEyNUEzMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzFB
MDc1OTI2RjFCOTY3MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMxQTA3NUEyNkYx
Qjk2ODAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyog
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg3MUEzOEVFNzQw
MDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDA2LDYgKzUwMDUsOCBAQAogCQk5M0FC
OUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUI5
QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUI5QjU0MjU3NTg5MTIwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUZDRDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUZDRDg2MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMEE2
NzMyNkQ1QTcyRTAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMEE2NzQyNkQ1QTcyRTAwQUEyMUU0
IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNzQsOCArMTAwNzUsNiBAQAogCQkJ
CUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNERjE4ODVD
Q0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBt
YWMgKi8sCi0JCQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdC
Q0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1MTk1OUVE
MTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQzQTlDREUy
NUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8sCkBAIC0x
MDEwMSw2ICsxMDEwMCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRy
YWdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9y
Q2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9y
Q2xpZW50LmggKi8sCisJCQkJOTNBRkNEODYyNzAyODFEQTAwQUIxNjRDIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNBRkNEODUyNzAyODFEQTAwQUIxNjRD
IC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJDMTExQTU4MTEy
RjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJE
NkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMx
QkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAg
LTEyNzg0LDYgKzEyNzg1LDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2Vi
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBX
ZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgw
MDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUZDRDg3
MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZv
cm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAv
KiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNDdiOTFjZTg3ZDM2MTNlMzVkNTc5NDA3OTdhZGYwYjFk
ZDAwYTQ4Yi4uNmMxZDdkZGJkODQzMjIwMTY4YTYzYmNjYWUwM2ZiMzBiMGQ0ZTc2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJDb29raWVKYXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1l
c3NhZ2VzLmgiCkBAIC0yMTUsNiArMjE2LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgaWYgKGF1dG8gc3dDb25uZWN0aW9u
ID0gc3RkOjpleGNoYW5nZShtX3N3Q29ubmVjdGlvbiwgbnVsbHB0cikpCiAgICAgICAgIHN3Q29u
bmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogI2VuZGlmCisKKyAgICBpZiAobV9m
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pCisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlTmFtZSkKQEAgLTI5Miw2ICsyOTYsMTQgQEAgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyJiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAg
ICAgcmV0dXJuICptX3dlYklEQkNvbm5lY3Rpb247CiB9CiAKK1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiYgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpmaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKQoreworICAgIGlmICghbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pCisg
ICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0gV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKKworICAgIHJldHVybiAq
bV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247Cit9CisKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiBXZWJTV0NsaWVudENvbm5lY3Rpb24mIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
c2VydmljZVdvcmtlckNvbm5lY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBk
NjJkZmU0ZGY1YWE1YTdmODQ3NmFhMTlmZWNmODc0YmJmODQ5YWRhLi4xNGRjN2QxYjdhN2QzMDM5
OGM4NzE3N2FjNzkyMjJlYzdhNzg5ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDcs
NiArNDcsNyBAQCBlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90Owog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOwogY2xhc3MgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOwogY2xhc3MgV2ViU1dDbGllbnRD
b25uZWN0aW9uOwogCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlciogZXhpc3RpbmdJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3dlYklEQkNvbm5lY3Rpb24uZ2V0KCk7IH07CiAgICAgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKKyAgICBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24mIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24oKTsKQEAgLTExOSw2ICsxMjEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBtX3dlYklEQkNvbm5lY3Rpb247Cisg
ICAgUmVmUHRyPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgUmVmUHRy
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA0NGZmM2UxOGY2NmI4YjJiYjVhN2IyZmFjY2U4NDZhMDE1Mjg1ZGEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIgotCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgotI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5
OjpjcmVhdGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5KGlkZW50aWZpZXIsIGNvbm5lY3Rpb24pKTsKLX0K
LQotRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQotICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0g
ICAgLCBtX2Nvbm5lY3Rpb24oJmNvbm5lY3Rpb24pCi17Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eTo6Y29ubmVjdGlvbkNsb3NlZCgpCi17Ci0gICAgbV9jb25uZWN0aW9u
ID0gbnVsbHB0cjsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5Ojppc1Nh
bWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlv
biBpcyBsb3N0IiB9KTsKLQotICAgIGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5zdG9yYWdlSGFu
ZGxlSWRlbnRpZmllcigpOwotICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLQotICAgIGlmIChtX2lkZW50aWZpZXIudG9VSW50NjQo
KSA9PSAqaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUp
OwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6SXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBtYWtlT2JqZWN0SWRl
bnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPigqaWRlbnRpZmll
cikpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9v
bCByZXN1bHQpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwot
ICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmdldEZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICghbV9j
b25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhj
ZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsK
LQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUobV9pZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJ
Zk5lY2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBuYW1lLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlkZW50aWZpZXIgPSByZXN1
bHQudmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVyLmlzVmFsaWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBX
ZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3MgfSk7Ci0KLSAgICAg
ICAgUmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBsID0gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIsICpjb25uZWN0aW9uKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7Ci0gICAgfSk7Ci19Ci0K
LXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Z2V0RGlyZWN0b3J5SGFuZGxlKGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlv
bikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUobV9pZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5l
Y2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBuYW1lLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVy
cm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVyLmlzVmFsaWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3MgfSk7Ci0KLSAgICAgICAg
UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBsID0gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIsICpjb25uZWN0aW9uKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAg
IGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0IiB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlbW92ZUVudHJ5KG1faWRlbnRpZmllciwgbmFtZSwg
ZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOwotCi0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVQcm94eTo6cmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaGFuZGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVu
a25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZp
ZXIgPSBoYW5kbGUuc3RvcmFnZUhhbmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZp
ZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihWZWN0b3I8U3RyaW5nPiB7IH0p
OwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6UmVzb2x2ZShtX2lkZW50aWZpZXIsIG1ha2VPYmplY3RJZGVudGlm
aWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KCppZGVudGlmaWVyKSks
IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlv
bkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKLSAgICB9KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWNjMGZiZTVjZjZlYWY3ZTVhM2U1MjRjYjk0MTg4YmEy
Mjg1ODFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJbXBsLmg+Ci0KLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotY2xhc3MgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotfQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBjcmVhdGUoRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGNvbm5l
Y3Rpb25DbG9zZWQoKTsKLQotcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVBy
b3h5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJik7
Ci0KLSAgICAvLyBGaWxlU3lzdGVtSGFuZGxlSW1wbAotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9pZGVudGlmaWVyLnRvVUlu
dDY0KCk7IH0KLSAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJbXBsJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJikgZmlu
YWw7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25P
cjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgZmluYWw7Ci0gICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlm
TmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJl
ZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lk
IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJikg
ZmluYWw7Ci0gICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJbXBsJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+JiYp
IGZpbmFsOwotCi0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg0MTcxYzU1Y2Y2ZjAwNzZlNDIwZTc4NTkwMjQ3
ODI1NzRiMjg1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0wLDAg
KzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvci5oIgorI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOworfQorCitXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oJmNvbm5lY3Rp
b24pCit7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0
aW9uQ2xvc2VkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCit2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxv
c3QiIH0pOworCisgICAgaWYgKGlkZW50aWZpZXIgPT0gb3RoZXJJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIHN0b3JhZ2VJZGVu
dGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyVHlwZT4oaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBhdXRvIG90aGVyU3RvcmFn
ZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZUlkZW50aWZpZXJUeXBlPihvdGhlcklkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6SXNTYW1lRW50cnkoc3RvcmFnZUlkZW50aWZpZXIsIG90aGVyU3RvcmFnZUlkZW50aWZpZXIp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9i
amVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4oaWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKHN0b3JhZ2VJ
ZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVy
cm9yKCkpIH0pOworCisgICAgICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSByZXN1bHQudmFs
dWUoKTsKKyAgICAgICAgaWYgKCFzdG9yYWdlSWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29y
ZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyVHlwZT4oc3RvcmFnZUlkZW50aWZpZXIudG9VSW50NjQoKSkpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0
b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBl
PihpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRs
ZShzdG9yYWdlSWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0g
cmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlkZW50aWZpZXIuaXNWYWxpZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsKKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlmaWVyLnRvVUludDY0
KCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJy
b3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgYXV0byBzdG9yYWdlSWRlbnRpZmll
ciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
clR5cGU+KGlkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50cnko
c3RvcmFnZUlkZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUg
eworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1
ZSgpKSB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0pOworfQor
Cit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBvdGhlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlz
IGxvc3QiIH0pOworCisgICAgYXV0byBzdG9yYWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVu
dGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIu
dG9VSW50NjQoKSk7CisgICAgYXV0byBvdGhlclN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVj
dElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4ob3RoZXJJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUoc3RvcmFnZUlkZW50
aWZpZXIsIG90aGVyU3RvcmFnZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsK
KworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Cisg
ICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMjFmODk1YjExYzFmNTJhYTBi
YmE1OTYwY2E0ODZiODM1ZjViMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xh
c3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYpOwor
ICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZCgpOworCitwcml2YXRlOgorICAgIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKKworICAgIC8vIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNr
JiYpOworICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwor
ICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7Cisg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9p
ZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7CisKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGFmZmQ5ZDMxMTJhOGExYjIzNDUzNzAwNGRjZjdlODcx
Y2QwNWNiZTUuLjVjMGM0OWVjNjVjNzIzZmY3YmVjNTZiZmFjMWRjOTM0NzNiMTJkNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZUNvbm5lY3Rpb24uaCIKIAotI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01MCwxOCAr
NTEsMjAgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGkKICAgICBjb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlBlcnNpc3Qob3Jp
Z2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlN0b3JhZ2VD
b25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9y
PFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgV2ViQ29yZTo6U3RvcmFnZUNvbm5l
Y3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKGNvbm5lY3Rp
b24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byYgbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsK
KyAgICBhdXRvJiBpcGNDb25uZWN0aW9uID0gbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24uY29ubmVj
dGlvbigpOworICAgIGlwY0Nvbm5lY3Rpb24uc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luKSwgW2Nv
bm5lY3Rpb24gPSBSZWZQdHIgeyAmbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24uZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKCkgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkK
LSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9LCBudWxscHRyKTsKIAotICAgICAgICBpZiAo
IXdlYWtDb25uZWN0aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCi0gICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworICAgICAgICBhdXRvIHN0
b3JhZ2VJZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlk
ZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24g
aXMgbG9zdCJfcyB9LCBudWxscHRyKTsKIAotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUo
cmVzdWx0LnZhbHVlKCksICp3ZWFrQ29ubmVjdGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGltcGwpKTsKKyAgICAgICAgRXhjZXB0aW9uT3I8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IGlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlmaWVyLnRv
VUludDY0KCkpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpZGVu
dGlmaWVyKSwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3Jh
Z2VDb25uZWN0aW9uLmgKaW5kZXggZmYyNzhkOTVlNWNjZmY2YTQ0NmU0MjkwMmQ2ZmZmZTVhOWU5
MGY3Yy4uOTE1NjBkZDFiOWRkNjE0NDFmODIyN2QxYWIxMTNhZDBlZTM1NjU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB2b2lkIGdldFBlcnNpc3RlZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBlcnNpc3QoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JikgZmluYWw7Ci0gICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpIGZpbmFsOworICAg
IHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCBXZWJDb3JlOjpTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmlu
YWw7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439430</attachid>
            <date>2021-09-27 21:15:46 -0700</date>
            <delta_ts>2021-09-28 11:30:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230861-20210927211545.patch</filename>
            <type>text/plain</type>
            <size>71542</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ZmFkOTBkOTc0YmY2
YmY5MGJmN2Y1YTgzNGZjZGVhNmJkMmNhMi4uZTFkYWRmMmFhN2RjYjg2MDQ5ZjkxMDJkYzU2ZDNh
Y2QyMjRhNDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhh
bmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gdG8gcHJvdmlkZSBiZXR0
ZXIgYWJzdHJhY3Rpb24gb2YgYSBjb25uZWN0aW9uIHRvCisgICAgICAgIGZpbGUgc3lzdGVtIHN0
b3JhZ2UgYmFja2VuZCwgd2hpY2ggd2lsbCBtYWtlIGl0IGVhc2llciB0byBhZGQgd29ya2VyIHN1
cHBvcnQgZm9yIEZpbGVTeXN0ZW1IYW5kbGUuCisgICAgICAgIEVhY2ggRmlsZVN5c3RlbUhhbmRs
ZSBoYXMgYSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gYW5kIHRoZSBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24gY2FuIGJlIHNoYXJlZCBhbW9uZyAKKyAgICAgICAgZGlmZmVyZW50IGhh
bmRsZXMuIENoaWxkcmVuIGhhbmRsZSB3aWxsIHVzZSB0aGUgc2FtZSBjb25uZWN0aW9uIGFzIGl0
cyBwYXJlbnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Q7IHRoZXJlIHNob3VsZCBiZSBubyBvYnNl
cnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUpOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aW1wbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246On5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6Zmls
ZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI3ICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGku
S29tb3JpQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBTZXQgQ1VSTF9MT0NLX0RBVEFfU1NM
X1NFU1NJT04gb3B0aW9uIHRvIHJlZHVjZSBTU0wvVExTIGhhbmRzaGFrZSB0aW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGYzY2I2NWNkMTFiM2RkMTgyMWQ3ZGQ2MzlhYzllZTlkOGYzNDg2YmIuLmZmNjJhMGYyMzQ4
ZWY1N2EyN2QxMmQ2OThiOGUzNDUzZDViOTlkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjEtMDktMjcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBGaWxlU3lzdGVtSGFuZGxlSW1wbCB3aXRoIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
ODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJl
c29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
dG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTA5
LTI3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0dQVVBd
IFJlbW92ZSBhY2Nlc3MgdG8gdW51c2VkIG1hY2ggc2VydmljZXMgaW4gc2FuZGJveApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggZWMwNTAxNDJhNWZjNjYxM2Q3NzM1ZjY1Zjk0OWY3ODFkOGNlMGZjNi4u
NDM0NzRlNDdiNTJiMjk5OGU5NWY5Mzk2M2Q4Yzg2NGY4ODhhYzU2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
ICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAog
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5kZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThl
NGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQwMDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNs
dWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1I
YW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8Rmls
ZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwp
KQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lz
dGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1l
KSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/
IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwotICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVu
dGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNv
bm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwog
Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0
cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9
LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRpb25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7
Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhhbmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwg
W25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBu
YW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21p
c2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFt
ZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVz
dWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0
aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAg
ICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6
IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVFbnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
Y29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlkZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJz
aXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQog
CiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3Rl
bUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3Ry
aW5nPj4mJiBwcm9taXNlKQogewotICAgIGltcGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNv
bm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZpZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEyYjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0
OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShT
dHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6
b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+
PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRp
b25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZv
aWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVtSGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElE
TFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7Cisg
ICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
ZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2MjdlYTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5Yjli
ZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgi
CisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZp
bGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhhbmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxl
U3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+
JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6
RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6
OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVh
N2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUwMDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEy
YTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBA
QCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMg
RmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVt
RmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxl
U3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUlt
cGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5k
bGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAg
ICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkz
NGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYuLjZlNDg2YjIwMjljOWEyNTUyMWRlZjIzMGFiMWZl
ZWM1ZDYxMzU1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNp
bmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAg
KzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1GaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVT
eXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChXVEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKIHsKIH0KIApA
QCAtNDgsNyArNDgsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQg
IT0gaGFuZGxlLmtpbmQoKSB8fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0
dXJuIHByb21pc2UucmVzb2x2ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhh
bmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11
dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5k
bGUuaWRlbnRpZmllcigpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAg
ICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFm
MDY3MDc2ZWQ3M2JmNmZlYTUuLjdlNjE5ODAyNGUyZmJmNjFjYTUyYWJkMDg2YzE3MzE2NzU5Y2Uy
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJv
bWlzZURlZmVycmVkOwogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWlu
dDhfdDsKIAogY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVT
eXN0ZW1IYW5kbGU+IHsKQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBL
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYg
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQotCisgICAgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZl
cnJlZDxJRExCb29sZWFuPiYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1I
YW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsK
KyAgICBGaWxlU3lzdGVtSGFuZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUg
fTsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9p
bXBsOworICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBS
ZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExNzUxOTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBl
IHsgfTsKK3VzaW5nIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjZDhkYTQyMjdjZTBjYzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVt
SGFuZGxlSW1wbCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVT
eXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0
b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+
PiYmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgcmVjdXJzaXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhh
bmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJp
bmc+PiYmKT4mJikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQz
NmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xh
c3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0
aW9uT3I7CisKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2lu
ZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
Ym9vbD4mJik+OworICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAg
IHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVh
bCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdl
dEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3Rv
cmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9y
YWdlUHJvdmlkZXIuaAppbmRleCA4MTE5ZTMzNjJiNDAwMTdhOTY0Nzk5MzE0OGE1NDNlYzE2ODhh
ZTQxLi5jYjgzNjk0OTU2N2I4NmRlNGVhZTNjNjAwNDljY2ZlY2UyZmFhNGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIu
aApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0
ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTUzLDkgKzUzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2Vw
dGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29u
c3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSwgbnVs
bHB0cik7CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGFhOTdmNjNhNWI2NmM5ZjgwZmFj
ODkzZDM1ZjFjMmUwY2QxMzcxNDkuLjVmYzYzMDZlYWY0MzEzNTUxNTYwZWMzYzg5NjE0ZDhiMWNm
MWQwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC0yNSwxMiArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7CitjbGFzcyBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC0zOSw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5TdG9yYWdlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0UGVyc2lzdGVkKGNvbnN0IENsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGVyc2lzdChjb25zdCBDbGllbnRPcmln
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4m
JikgPSAwOworICAgIHVzaW5nIEdldERpcmVjdG9yeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJiwgUmVmUHRy
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxi
YWNrJiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGRjNTZjNjcx
ZjgxYmQyYWViYjI0YjIyNTYzNzZkMGQzMmRjM2IzMWYuLjU4YjhmMTRjNzk1MTZlNzRkNjk3N2Zk
MGJmNjNlOTMyZTdkODM4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNsaWVu
dE9yaWdpbi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZS5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCB2b2lk
IFN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVj
dGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25u
ZWN0aW9uSW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVl
KCk7Ci0gICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lz
dGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCwgYXV0byBjb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnJl
c29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKHsgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpjcmVhdGUoeyB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFJl
ZiB7ICpjb25uZWN0aW9uIH0pKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1YzExNDY2MmRiZGIzNDg4
ZWZiYmQ5MzkxMTBhZDMwYWY1YmMxOGYuLjgwYjAwMjJiODZiNWFmMjVkOWQ4Njg2YmQ1M2EyM2Jm
YjA4MmVlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI4MDQsNyArMjgwNCw2IEBACiAJCTkzMEFBQzlBMjUwRUI4NDkwMDEz
REE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NTQ29uZGl0aW9u
UnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlEMjUwRUQ0MDkw
MDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFDQTIyNTBFRDQx
MTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NH
cm91cGluZ1J1bGUuaCAqLzsgfTsKLQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzE1
M0JEQTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBuZyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCRDkxNDE4MUY3QTAwRkNG
NUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi87IH07CiAJCTkzMTUzQkRDMTQxOTU5QkMwMEZD
RjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAvKiB0ZXh0
QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi87IH07CiAJCTkzMTUzQkUyMTQxOTVBNTcwMEZDRjVCRSAv
KiBtaXNzaW5nSW1hZ2UucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAq
LzsgfTsKQEAgLTI5MTcsNiArMjkxNiw4IEBACiAJCTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAv
KiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFFMDNCNTg1MDA4
QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2Uu
aCAqLzsgfTsKIAkJOTNBODA2MjAxRTAzQjU4NTAwOEExRjI2IC8qIEpTTG9uZ1JhbmdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4MDYxQzFFMDNC
NTg1MDA4QTFGMjYgLyogSlNMb25nUmFuZ2UuaCAqLzsgfTsKKwkJOTNBRkNEODQyNzAyODFCMDAw
QUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRkNEODIyNzAyODE2NzAwQUIxNjRDIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0QyAvKiBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTNCMEE2NTMyNkNERDE0MTAwQUEyMUU0IC8qIE5hdmlnYXRvclBlcm1pc3Npb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwQTY0
QTI2Q0REMTNFMDBBQTIxRTQgLyogTmF2aWdhdG9yUGVybWlzc2lvbnMuaCAqLzsgfTsKIAkJOTNC
MEE2NTQyNkNERDE0MTAwQUEyMUU0IC8qIFBlcm1pc3Npb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwQTY0QjI2Q0REMTNFMDBBQTIxRTQgLyog
UGVybWlzc2lvbnMuaCAqLzsgfTsKIAkJOTNCMEE2NTYyNkNERDE0MTAwQUEyMUU0IC8qIFBlcm1p
c3Npb25TdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjBBNjREMjZDREQxM0YwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdHVzLmggKi87IH07
CkBAIC0xMTY2Myw3ICsxMTY2NCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkzNDBBQSAvKiBT
aW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVSYW5n
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2NEIzMDA5MzQw
QUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERG
RTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4MUE3RTUgLyog
SlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVN5
c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUFF
M0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODgzLDYgKzExODgzLDggQEAKIAkJ
OTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0E4MDYxQjFFMDNCNTg1MDA4QTFGMjYgLyogSlNMb25nUmFuZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb25nUmFuZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxQzFFMDNCNTg1MDA4QTFGMjYgLyogSlNM
b25nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNMb25nUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODIyNzAyODE2NzAwQUIxNjRD
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjBB
NjQ0MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjBBNjQ1MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uRGVzY3JpcHRvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVybWlzc2lvbkRlc2NyaXB0b3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IwQTY0NjI2Q0RDNUI3MDBBQTIxRTQgLyogUGVybWlz
c2lvbk5hbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcm1pc3Npb25OYW1lLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzU0LDcgKzIzMzU2LDggQEAKIAkJCQk5
MzJDOUJEMDI2REQ2MjU1MDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5jcHAgKi8sCiAJCQkJ
OTMyQzlCREEyNkRENjI2MTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCAqLywKIAkJCQk5
MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5pZGwgKi8sCi0JCQkJ
OTMxQTA3NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggKi8sCisJ
CQkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LmggKi8sCisJCQkJOTNBRkNEODIyNzAyODE2NzAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdl
TWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2RThBNkJDMDA1
ODUzOEYgLyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJCQkpOwpAQCAt
MzI0NDQsNyArMzI0NDcsOCBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxl
U3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2RTk5NUMwMDA1
ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQz
RTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0QyAvKiBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBRkNEODQyNzAyODFCMDAw
QUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNk
NzcuLmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dApAQCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
U2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hh
cmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLjQ5
Y2Y4NGU2ZTBmMDQ4NzY2NGFiZTMxY2YzYjYyMGQ2Njk3ZTc0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlh
cmNoaXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1
MjsKKwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdn
cmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE1MTIsNiArMTUxMiw3IEBACiAJCTkzQUI5QjRF
MjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBFIC8qIFNwZWVj
aFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBQjlCNEYy
NTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0FCOUI1NjI1NzVBMjhCMDA5OEIx
MEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTkzQUZDRDg3MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUZD
RDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJOTNCMEE2NzUyNkQ1QURDRjAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Iw
QTY3NDI2RDVBNzJFMDBBQTIxRTQgLyogV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaCAqLzsgfTsK
IAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIyN0QxNDcyMDBC
OTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdEMTRCMTAwQjk3
QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyogTG9jYWxTdG9y
YWdlRGF0YWJhc2UuaCAqLzsgfTsKQEAgLTQ5NDMsOCArNDk0NCw2IEBACiAJCTkzMUEwNzUyMjZG
MDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUzMjZGMDZBQjQwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzFBMDc1NzI2RjEyNUEzMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzFB
MDc1OTI2RjFCOTY3MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMxQTA3NUEyNkYx
Qjk2ODAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyog
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg3MUEzOEVFNzQw
MDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDA2LDYgKzUwMDUsOCBAQAogCQk5M0FC
OUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUI5
QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUI5QjU0MjU3NTg5MTIwMDk4
QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQUZDRDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QUZDRDg2MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMEE2
NzMyNkQ1QTcyRTAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMEE2NzQyNkQ1QTcyRTAwQUEyMUU0
IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNzQsOCArMTAwNzUsNiBAQAogCQkJ
CUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNERjE4ODVD
Q0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBt
YWMgKi8sCi0JCQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdC
Q0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1MTk1OUVE
MTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQzQTlDREUy
NUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8sCkBAIC0x
MDEwMSw2ICsxMDEwMCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRy
YWdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9y
Q2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9y
Q2xpZW50LmggKi8sCisJCQkJOTNBRkNEODYyNzAyODFEQTAwQUIxNjRDIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNBRkNEODUyNzAyODFEQTAwQUIxNjRD
IC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJDMTExQTU4MTEy
RjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJE
NkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMx
QkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAg
LTEyNzg0LDYgKzEyNzg1LDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2Vi
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBX
ZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgw
MDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUZDRDg3
MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZv
cm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAv
KiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNDdiOTFjZTg3ZDM2MTNlMzVkNTc5NDA3OTdhZGYwYjFk
ZDAwYTQ4Yi4uNmMxZDdkZGJkODQzMjIwMTY4YTYzYmNjYWUwM2ZiMzBiMGQ0ZTc2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJDb29raWVKYXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1l
c3NhZ2VzLmgiCkBAIC0yMTUsNiArMjE2LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgaWYgKGF1dG8gc3dDb25uZWN0aW9u
ID0gc3RkOjpleGNoYW5nZShtX3N3Q29ubmVjdGlvbiwgbnVsbHB0cikpCiAgICAgICAgIHN3Q29u
bmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogI2VuZGlmCisKKyAgICBpZiAobV9m
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pCisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpNZXNzYWdlTmFtZSkKQEAgLTI5Miw2ICsyOTYsMTQgQEAgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyJiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlcigpCiAg
ICAgcmV0dXJuICptX3dlYklEQkNvbm5lY3Rpb247CiB9CiAKK1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiYgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpmaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKQoreworICAgIGlmICghbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pCisg
ICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0gV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKKworICAgIHJldHVybiAq
bV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247Cit9CisKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiBXZWJTV0NsaWVudENvbm5lY3Rpb24mIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6
c2VydmljZVdvcmtlckNvbm5lY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBk
NjJkZmU0ZGY1YWE1YTdmODQ3NmFhMTlmZWNmODc0YmJmODQ5YWRhLi4xNGRjN2QxYjdhN2QzMDM5
OGM4NzE3N2FjNzkyMjJlYzdhNzg5ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDcs
NiArNDcsNyBAQCBlbnVtIGNsYXNzIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgOiB1aW50OF90Owog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOwogY2xhc3MgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOwogY2xhc3MgV2ViU1dDbGllbnRD
b25uZWN0aW9uOwogCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlciogZXhpc3RpbmdJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3dlYklEQkNvbm5lY3Rpb24uZ2V0KCk7IH07CiAgICAgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyJiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKKyAgICBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24mIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24oKTsKQEAgLTExOSw2ICsxMjEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBtX3dlYklEQkNvbm5lY3Rpb247Cisg
ICAgUmVmUHRyPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgUmVmUHRy
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA0NGZmM2UxOGY2NmI4YjJiYjVhN2IyZmFjY2U4NDZhMDE1Mjg1ZGEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIgotCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgotI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5
OjpjcmVhdGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5KGlkZW50aWZpZXIsIGNvbm5lY3Rpb24pKTsKLX0K
LQotRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKQotICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0g
ICAgLCBtX2Nvbm5lY3Rpb24oJmNvbm5lY3Rpb24pCi17Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eTo6Y29ubmVjdGlvbkNsb3NlZCgpCi17Ci0gICAgbV9jb25uZWN0aW9u
ID0gbnVsbHB0cjsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5Ojppc1Nh
bWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlv
biBpcyBsb3N0IiB9KTsKLQotICAgIGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5zdG9yYWdlSGFu
ZGxlSWRlbnRpZmllcigpOwotICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLQotICAgIGlmIChtX2lkZW50aWZpZXIudG9VSW50NjQo
KSA9PSAqaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUp
OwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6SXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBtYWtlT2JqZWN0SWRl
bnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPigqaWRlbnRpZmll
cikpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9v
bCByZXN1bHQpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwot
ICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmdldEZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICghbV9j
b25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhj
ZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsK
LQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUobV9pZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJ
Zk5lY2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBuYW1lLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlkZW50aWZpZXIgPSByZXN1
bHQudmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVyLmlzVmFsaWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBX
ZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3MgfSk7Ci0KLSAgICAg
ICAgUmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBsID0gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIsICpjb25uZWN0aW9uKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7Ci0gICAgfSk7Ci19Ci0K
LXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Z2V0RGlyZWN0b3J5SGFuZGxlKGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlv
bikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUobV9pZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5l
Y2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBuYW1lLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVy
cm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVyLmlzVmFsaWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3MgfSk7Ci0KLSAgICAgICAg
UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBsID0gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIsICpjb25uZWN0aW9uKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAg
IGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0IiB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlbW92ZUVudHJ5KG1faWRlbnRpZmllciwgbmFtZSwg
ZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvcikKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOwotCi0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVQcm94eTo6cmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaGFuZGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVu
a25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZp
ZXIgPSBoYW5kbGUuc3RvcmFnZUhhbmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZp
ZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihWZWN0b3I8U3RyaW5nPiB7IH0p
OwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6UmVzb2x2ZShtX2lkZW50aWZpZXIsIG1ha2VPYmplY3RJZGVudGlm
aWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KCppZGVudGlmaWVyKSks
IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlv
bkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKLSAgICB9KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWNjMGZiZTVjZjZlYWY3ZTVhM2U1MjRjYjk0MTg4YmEy
Mjg1ODFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJbXBsLmg+Ci0KLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotY2xhc3MgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotfQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBjcmVhdGUoRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGNvbm5l
Y3Rpb25DbG9zZWQoKTsKLQotcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVBy
b3h5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJik7
Ci0KLSAgICAvLyBGaWxlU3lzdGVtSGFuZGxlSW1wbAotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0
X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9pZGVudGlmaWVyLnRvVUlu
dDY0KCk7IH0KLSAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJbXBsJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJikgZmlu
YWw7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25P
cjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgZmluYWw7Ci0gICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlm
TmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJl
ZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lk
IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJikg
ZmluYWw7Ci0gICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJbXBsJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+JiYp
IGZpbmFsOwotCi0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg0MTcxYzU1Y2Y2ZjAwNzZlNDIwZTc4NTkwMjQ3
ODI1NzRiMjg1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0wLDAg
KzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvci5oIgorI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOworfQorCitXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5lY3Rpb24oJmNvbm5lY3Rp
b24pCit7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0
aW9uQ2xvc2VkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworfQorCit2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxv
c3QiIH0pOworCisgICAgaWYgKGlkZW50aWZpZXIgPT0gb3RoZXJJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBhdXRvIHN0b3JhZ2VJZGVu
dGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyVHlwZT4oaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBhdXRvIG90aGVyU3RvcmFn
ZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZUlkZW50aWZpZXJUeXBlPihvdGhlcklkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6SXNTYW1lRW50cnkoc3RvcmFnZUlkZW50aWZpZXIsIG90aGVyU3RvcmFnZUlkZW50aWZpZXIp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9i
amVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4oaWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKHN0b3JhZ2VJ
ZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVy
cm9yKCkpIH0pOworCisgICAgICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSByZXN1bHQudmFs
dWUoKTsKKyAgICAgICAgaWYgKCFzdG9yYWdlSWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29y
ZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyVHlwZT4oc3RvcmFnZUlkZW50aWZpZXIudG9VSW50NjQoKSkpOworICAg
IH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0
b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBl
PihpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRs
ZShzdG9yYWdlSWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0g
cmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlkZW50aWZpZXIuaXNWYWxpZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsKKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlmaWVyLnRvVUludDY0
KCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJy
b3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgYXV0byBzdG9yYWdlSWRlbnRpZmll
ciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
clR5cGU+KGlkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50cnko
c3RvcmFnZUlkZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUg
eworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1
ZSgpKSB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIH0pOworfQor
Cit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVzb2x2ZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBvdGhlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlz
IGxvc3QiIH0pOworCisgICAgYXV0byBzdG9yYWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVu
dGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIu
dG9VSW50NjQoKSk7CisgICAgYXV0byBvdGhlclN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVj
dElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4ob3RoZXJJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUoc3RvcmFnZUlkZW50
aWZpZXIsIG90aGVyU3RvcmFnZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsK
KworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Cisg
ICAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMjFmODk1YjExYzFmNTJhYTBi
YmE1OTYwY2E0ODZiODM1ZjViMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xh
c3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYpOwor
ICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZCgpOworCitwcml2YXRlOgorICAgIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKKworICAgIC8vIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNr
JiYpOworICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwor
ICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7Cisg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9p
ZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7CisKKyAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGFmZmQ5ZDMxMTJhOGExYjIzNDUzNzAwNGRjZjdlODcx
Y2QwNWNiZTUuLmQyYzk1ZmZlYTcwNDViYzNiMzM1OTY2NTdmYjU4ZjA1MDgyOTI3NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZUNvbm5lY3Rpb24uaCIKIAotI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01MCwxOCAr
NTEsMjAgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGkKICAgICBjb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlBlcnNpc3Qob3Jp
Z2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlN0b3JhZ2VD
b25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9y
PFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgV2ViQ29yZTo6U3RvcmFnZUNvbm5l
Y3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKGNvbm5lY3Rp
b24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byYgbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24gPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsK
KyAgICBhdXRvJiBpcGNDb25uZWN0aW9uID0gbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24uY29ubmVj
dGlvbigpOworICAgIGlwY0Nvbm5lY3Rpb24uc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luKSwgW2Nv
bm5lY3Rpb24gPSBSZWZQdHIgeyAmbmV0d29ya1Byb2Nlc0Nvbm5lY3Rpb24uZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKCkgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkK
LSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9LCBudWxscHRyKTsKIAotICAgICAgICBpZiAo
IXdlYWtDb25uZWN0aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCi0gICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworICAgICAgICBhdXRvIHN0
b3JhZ2VJZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlk
ZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24g
aXMgbG9zdCJfcyB9LCBudWxscHRyKTsKIAotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUo
cmVzdWx0LnZhbHVlKCksICp3ZWFrQ29ubmVjdGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGltcGwpKTsKKyAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uT3I8
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IGlkZW50aWZpZXIgPSBtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0
b3JhZ2VJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShpZGVudGlmaWVyKSwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZmYyNzhkOTVlNWNjZmY2YTQ0
NmU0MjkwMmQ2ZmZmZTVhOWU5MGY3Yy4uOTE1NjBkZDFiOWRkNjE0NDFmODIyN2QxYWIxMTNhZDBl
ZTM1NjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGdldFBlcnNpc3RlZChjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0
b3J5Q2FsbGJhY2smJikgZmluYWw7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439499</attachid>
            <date>2021-09-28 11:30:06 -0700</date>
            <delta_ts>2021-09-28 16:02:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230861-20210928113005.patch</filename>
            <type>text/plain</type>
            <size>71090</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ZmFkOTBkOTc0YmY2
YmY5MGJmN2Y1YTgzNGZjZGVhNmJkMmNhMi4uZTFkYWRmMmFhN2RjYjg2MDQ5ZjkxMDJkYzU2ZDNh
Y2QyMjRhNDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhh
bmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gdG8gcHJvdmlkZSBiZXR0
ZXIgYWJzdHJhY3Rpb24gb2YgYSBjb25uZWN0aW9uIHRvCisgICAgICAgIGZpbGUgc3lzdGVtIHN0
b3JhZ2UgYmFja2VuZCwgd2hpY2ggd2lsbCBtYWtlIGl0IGVhc2llciB0byBhZGQgd29ya2VyIHN1
cHBvcnQgZm9yIEZpbGVTeXN0ZW1IYW5kbGUuCisgICAgICAgIEVhY2ggRmlsZVN5c3RlbUhhbmRs
ZSBoYXMgYSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gYW5kIHRoZSBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24gY2FuIGJlIHNoYXJlZCBhbW9uZyAKKyAgICAgICAgZGlmZmVyZW50IGhh
bmRsZXMuIENoaWxkcmVuIGhhbmRsZSB3aWxsIHVzZSB0aGUgc2FtZSBjb25uZWN0aW9uIGFzIGl0
cyBwYXJlbnQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Q7IHRoZXJlIHNob3VsZCBiZSBubyBvYnNl
cnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUpOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aW1wbCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg6IEFk
ZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246On5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6Zmls
ZVN5c3RlbUFjY2Vzc0dldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI3ICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGku
S29tb3JpQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBTZXQgQ1VSTF9MT0NLX0RBVEFfU1NM
X1NFU1NJT04gb3B0aW9uIHRvIHJlZHVjZSBTU0wvVExTIGhhbmRzaGFrZSB0aW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGYzY2I2NWNkMTFiM2RkMTgyMWQ3ZGQ2MzlhYzllZTlkOGYzNDg2YmIuLmZmNjJhMGYyMzQ4
ZWY1N2EyN2QxMmQ2OThiOGUzNDUzZDViOTlkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjEtMDktMjcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVwbGFjZSBGaWxlU3lzdGVtSGFuZGxlSW1wbCB3aXRoIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
ODYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJl
c29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
dG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTA5
LTI3ICBQZXIgQXJuZSAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0dQVVBd
IFJlbW92ZSBhY2Nlc3MgdG8gdW51c2VkIG1hY2ggc2VydmljZXMgaW4gc2FuZGJveApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKaW5kZXggZWMwNTAxNDJhNWZjNjYxM2Q3NzM1ZjY1Zjk0OWY3ODFkOGNlMGZjNi4u
NDM0NzRlNDdiNTJiMjk5OGU5NWY5Mzk2M2Q4Yzg2NGY4ODhhYzU2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
ICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAog
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5kZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThl
NGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQwMDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNs
dWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1I
YW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8Rmls
ZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwp
KQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lz
dGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1l
KSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/
IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwotICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVu
dGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNv
bm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwog
Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0
cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9
LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRpb25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7
Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhhbmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwg
W25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBu
YW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21p
c2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFt
ZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVz
dWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0
aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAg
ICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6
IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVFbnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
Y29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlkZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJz
aXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQog
CiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3Rl
bUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3Ry
aW5nPj4mJiBwcm9taXNlKQogewotICAgIGltcGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNv
bm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZpZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEyYjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0
OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1Ymxp
YzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShT
dHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6
b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+
PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRp
b25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZv
aWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVtSGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElE
TFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7Cisg
ICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
ZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2MjdlYTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5Yjli
ZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgi
CisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgog
CkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZp
bGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhhbmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxl
U3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+
JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6
RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6
OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVh
N2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUwMDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEy
YTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBA
QCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMg
RmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVt
RmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxl
U3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUlt
cGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5k
bGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAg
ICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkz
NGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYuLjk3NTc4OTgyNDBiZWQyYTEyNzMxZDhiZGRlYzNk
ZGI3NjgzNGM5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNp
bmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAg
KzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1GaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVT
eXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChXVEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlm
aWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
IHsKIH0KIApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVu
dHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlm
IChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2Ft
ZUVudHJ5KGhhbmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlm
aWVyLCBoYW5kbGUuaWRlbnRpZmllcigpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1
bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlk
NjhkMzk1NDFmMDY3MDc2ZWQ3M2JmNmZlYTUuLjdlNjE5ODAyNGUyZmJmNjFjYTUyYWJkMDg2YzE3
MzE2NzU5Y2UyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMy
LDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2Ns
YXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0
YXRlIDogdWludDhfdDsKIAogY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBT
dHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFu
ZGxlSW1wbCYgaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQotCisgICAgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQogICAgIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZp
bGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJ
bXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFuZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
KTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtp
bmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxl
SW1wbD4gbV9pbXBsOworICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKKyAgICBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzUxOTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYw
M2RmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0
SWRlbnRpZmllcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjZDhkYTQyMjdjZTBjYzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBG
aWxlU3lzdGVtSGFuZGxlSW1wbCA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJ
bXBsPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0K
LSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxl
SW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhh
bmRsZUltcGw+PiYmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVjdXJzaXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmls
ZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZl
Y3RvcjxTdHJpbmc+PiYmKT4mJikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVh
NjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2MzhiNGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOworY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CisKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0K
KyAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8Ym9vbD4mJik+OworICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4m
Jik+OworICAgIHVzaW5nIFJlbW92ZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47Cisg
ICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxi
YWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3ZlRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L0R1bW15U3RvcmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
RHVtbXlTdG9yYWdlUHJvdmlkZXIuaAppbmRleCA4MTE5ZTMzNjJiNDAwMTdhOTY0Nzk5MzE0OGE1
NDNlYzE2ODhhZTQxLi5jYjgzNjk0OTU2N2I4NmRlNGVhZTNjNjAwNDljY2ZlY2UyZmFhNGM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdl
UHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTUzLDkgKzUzLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERp
cmVjdG9yeShjb25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJl
Y3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9y
eUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0pOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IgfSwgbnVsbHB0cik7CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGFhOTdmNjNhNWI2
NmM5ZjgwZmFjODkzZDM1ZjFjMmUwY2QxMzcxNDkuLjVmYzYzMDZlYWY0MzEzNTUxNTYwZWMzYzg5
NjE0ZDhiMWNmMWQwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNSwxMiArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7CitjbGFzcyBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhj
ZXB0aW9uT3I7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC0zOSw3ICs0MCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5TdG9yYWdlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0UGVyc2lzdGVkKGNvbnN0IENsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGVyc2lzdChjb25zdCBD
bGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUlt
cGw+PiYmKT4mJikgPSAwOworICAgIHVzaW5nIEdldERpcmVjdG9yeUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4m
JiwgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik+OworICAgIHZpcnR1YWwg
dm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVj
dG9yeUNhbGxiYWNrJiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4
IGRjNTZjNjcxZjgxYmQyYWViYjI0YjIyNTYzNzZkMGQzMmRjM2IzMWYuLjU4YjhmMTRjNzk1MTZl
NzRkNjk3N2ZkMGJmNjNlOTMyZTdkODM4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjksNyArMjksNyBAQAogI2luY2x1
ZGUgIkNsaWVudE9yaWdpbi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAi
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJ
bXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCkBAIC0xMDYsMTEgKzEwNiwx
MSBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWpl
Y3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAg
YXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJl
dHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0
RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlv
bi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCwgYXV0byBjb25uZWN0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBw
cm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKHsgfSwgcmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoeyB9LCByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCksIFJlZiB7ICpjb25uZWN0aW9uIH0pKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1YzExNDY2
MmRiZGIzNDg4ZWZiYmQ5MzkxMTBhZDMwYWY1YmMxOGYuLjgwYjAwMjJiODZiNWFmMjVkOWQ4Njg2
YmQ1M2EyM2JmYjA4MmVlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MDQsNyArMjgwNCw2IEBACiAJCTkzMEFBQzlBMjUw
RUI4NDkwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NT
Q29uZGl0aW9uUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzMEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlE
MjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFD
QTIyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYg
LyogSlNDU1NHcm91cGluZ1J1bGUuaCAqLzsgfTsKLQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVG
IC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhh
bmRsZUltcGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5MzE1M0JEQTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBuZyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCRDkxNDE4
MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi87IH07CiAJCTkzMTUzQkRDMTQx
OTU5QkMwMEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRCMTQxOTU5QkIwMEZDRjVC
RSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgKi87IH07CiAJCTkzMTUzQkUyMTQxOTVBNTcw
MEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0lt
YWdlLnBuZyAqLzsgfTsKQEAgLTI5MTcsNiArMjkxNiw4IEBACiAJCTkzQTgwNjE3MUUwM0I1MUMw
MDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTgwNjEzMUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4MDYxRTFF
MDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91
YmxlUmFuZ2UuaCAqLzsgfTsKIAkJOTNBODA2MjAxRTAzQjU4NTAwOEExRjI2IC8qIEpTTG9uZ1Jh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
MDYxQzFFMDNCNTg1MDA4QTFGMjYgLyogSlNMb25nUmFuZ2UuaCAqLzsgfTsKKwkJOTNBRkNEODQy
NzAyODFCMDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRkNEODIyNzAyODE2NzAw
QUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0
QyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNCMEE2NTMyNkNERDE0MTAwQUEyMUU0IC8qIE5hdmlnYXRvclBl
cm1pc3Npb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0IwQTY0QTI2Q0REMTNFMDBBQTIxRTQgLyogTmF2aWdhdG9yUGVybWlzc2lvbnMuaCAqLzsg
fTsKIAkJOTNCMEE2NTQyNkNERDE0MTAwQUEyMUU0IC8qIFBlcm1pc3Npb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwQTY0QjI2Q0REMTNFMDBB
QTIxRTQgLyogUGVybWlzc2lvbnMuaCAqLzsgfTsKIAkJOTNCMEE2NTYyNkNERDE0MTAwQUEyMUU0
IC8qIFBlcm1pc3Npb25TdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQjBBNjREMjZDREQxM0YwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdHVz
LmggKi87IH07CkBAIC0xMTY2Myw3ICsxMTY2NCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkz
NDBBQSAvKiBTaW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
aW1wbGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2
NEIzMDA5MzQwQUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzE2RERGRTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxl
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxl
SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4
MUE3RTUgLyogSlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRmlsZVN5c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRM
aXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODgzLDYgKzExODgz
LDggQEAKIAkJOTNBODA2MUExRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEb3VibGVSYW5nZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxQjFFMDNCNTg1MDA4QTFGMjYgLyogSlNMb25nUmFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb25nUmFuZ2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4MDYxQzFFMDNCNTg1MDA4QTFG
MjYgLyogSlNMb25nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNM
b25nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODIyNzAyODE2
NzAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjBBNjQ0MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uU3RhdGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFBlcm1pc3Npb25TdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQjBBNjQ1MjZDREM1QjYwMEFBMjFFNCAvKiBQZXJtaXNzaW9uRGVzY3Jp
cHRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVybWlzc2lvbkRlc2NyaXB0b3IuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IwQTY0NjI2Q0RDNUI3MDBBQTIxRTQg
LyogUGVybWlzc2lvbk5hbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcm1pc3Npb25O
YW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzU0LDcgKzIzMzU2LDgg
QEAKIAkJCQk5MzJDOUJEMDI2REQ2MjU1MDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5jcHAg
Ki8sCiAJCQkJOTMyQzlCREEyNkRENjI2MTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCAq
LywKIAkJCQk5MzJDOUJEOTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5pZGwg
Ki8sCi0JCQkJOTMxQTA3NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBs
LmggKi8sCisJCQkJOTNBRkNEODkyNzAyODQ5MDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmggKi8sCisJCQkJOTNBRkNEODIyNzAyODE2NzAwQUIxNjRDIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAv
KiBTdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2
RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJ
CQkpOwpAQCAtMzI0NDQsNyArMzI0NDcsOCBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1
NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2
RTk5NUMwMDA1ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNDQzRTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3RlbUhhbmRs
ZUltcGwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQUZDRDhBMjcwMjg0OUYwMEFCMTY0QyAvKiBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBRkNEODQy
NzAyODFCMDAwQUIxNjRDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM1RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZh
ZjBjOTU0ZTNkNzcuLmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dApAQCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRp
YUtleVN5c3RlbUNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQy
MjIyZDUuLjQ5Y2Y4NGU2ZTBmMDQ4NzY2NGFiZTMxY2YzYjYyMGQ2Njk3ZTc0YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICsz
LDcgQEAKIAlhcmNoaXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZl
cnNpb24gPSA1MjsKKwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVn
aW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE1MTIsNiArMTUxMiw3IEBACiAJ
CTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQUI5QjQyMjU3NDkyOEMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCAqLzsgfTsKIAkJOTNBQjlCNTUyNTc1QTI3NjAwOThCMTBF
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBQjlCNEYyNTc1ODkxMTAwOThCMTBFIC8qIFNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRp
YVNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5M0FCOUI1NjI1NzVB
MjhCMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0FCOUI1MTI1NzU4OTExMDA5OEIxMEUgLyogU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTkzQUZDRDg3MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQUZDRDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaCAqLzsgfTsKIAkJOTNCMEE2NzUyNkQ1QURDRjAwQUEyMUU0IC8qIFdlYlBlcm1pc3Np
b25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0IwQTY3NDI2RDVBNzJFMDBBQTIxRTQgLyogV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIu
aCAqLzsgfTsKIAkJOTNCMjYxNEQyMjdEMTQ5RTAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0OTIy
N0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTNCMjYxNEUyMjdE
MTRCMTAwQjk3QTc2IC8qIExvY2FsU3RvcmFnZURhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IyNjE0NTIyN0QxNDcwMDBCOTdBNzYgLyog
TG9jYWxTdG9yYWdlRGF0YWJhc2UuaCAqLzsgfTsKQEAgLTQ5NDMsOCArNDk0NCw2IEBACiAJCTkz
MUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUzMjZGMDZBQjQwMDQ0
NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1NzI2RjEyNUEzMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5MzFBMDc1OTI2RjFCOTY3MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMx
QTA3NUEyNkYxQjk2ODAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJFMDI2Rjg1QzMyMDA4
MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg3
MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDA2LDYgKzUwMDUsOCBA
QAogCQk5M0FCOUI1MjI1NzU4OTEyMDA5OEIxMEUgLyogU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQUI5QjUzMjU3NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUI5QjU0MjU3
NTg5MTIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQUZDRDg1MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQUZDRDg2MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNCMEE2NzMyNkQ1QTcyRTAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBlcm1pc3Npb25Db250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMEE2NzQyNkQ1QTcy
RTAwQUEyMUU0IC8qIFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlBlcm1pc3Npb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzQjI2MTQ1MjI3RDE0NzAwMEI5N0E3NiAvKiBMb2NhbFN0b3JhZ2VE
YXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbFN0b3JhZ2VE
YXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNzQsOCArMTAwNzUs
NiBAQAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4
RjNERjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMz
N0JBQiAvKiBtYWMgKi8sCi0JCQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRD
RCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5
RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4
NDQ1MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJ
RjQzQTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAg
Ki8sCkBAIC0xMDEwMSw2ICsxMDEwMCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkRyYWdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyog
V2ViRWRpdG9yQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViRWRpdG9yQ2xpZW50LmggKi8sCisJCQkJOTNBRkNEODYyNzAyODFEQTAwQUIxNjRDIC8qIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTNBRkNEODUyNzAyODFE
QTAwQUIxNjRDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJD
MTExQTU4MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJ
CQkJQkMwMzJENkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8s
CiAJCQkJQkMxQkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cCAqLywKQEAgLTEyNzg0LDYgKzEyNzg1LDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMx
NUEgLyogV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4
QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVE
MTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzQUZDRDg3MjcwMjgxREEwMEFCMTY0QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJG
aW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVC
IC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0Iw
MDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDRmZjNlMThmNjZiOGIyYmI1YTdiMmZhY2NlODQ2YTAx
NTI4NWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkuaCIKLQotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKLSNpbmNsdWRl
ICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXhj
ZXB0aW9uT3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1SZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eShpZGVudGlmaWVy
LCBjb25uZWN0aW9uKSk7Ci19Ci0KLUZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLSAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQotICAgICwgbV9jb25uZWN0aW9uKCZjb25uZWN0aW9uKQotewotfQot
Ci12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNvbm5lY3Rpb25DbG9zZWQoKQot
ewotICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVQcm94eTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25v
d25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZpZXIg
PSBoYW5kbGUuc3RvcmFnZUhhbmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZpZXIp
Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBpZiAobV9p
ZGVudGlmaWVyLnRvVUludDY0KCkgPT0gKmlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcih0cnVlKTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OklzU2FtZUVudHJ5KG1faWRlbnRp
ZmllciwgbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyVHlwZT4oKmlkZW50aWZpZXIpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIocmVzdWx0KTsKLSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5OjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxS
ZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKG1faWRlbnRp
ZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlv
biwgbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5k
bGVJZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRp
Zmllci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0Il9zIH0pOwotCi0gICAgICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4g
aW1wbCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlm
aWVyLCAqY29ubmVjdGlvbik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1w
bCkpOwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6Omdl
dERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nh
cnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlz
IGxvc3QiIH0pOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKG1faWRlbnRpZmll
ciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwg
bmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNl
cHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJ
ZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmll
ci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0
Il9zIH0pOwotCi0gICAgICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1w
bCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVy
LCAqY29ubmVjdGlvbik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkp
OwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlbW92
ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeSht
X2lkZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewotICAg
ICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9
KTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0pOwotfQotCi12b2lk
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlt
cGwmIGhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxW
ZWN0b3I8U3RyaW5nPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwot
Ci0gICAgYXV0byBpZGVudGlmaWVyID0gaGFuZGxlLnN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCk7
Ci0gICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
VmVjdG9yPFN0cmluZz4geyB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUobV9pZGVudGlmaWVy
LCBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJU
eXBlPigqaWRlbnRpZmllcikpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkK
LSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLQotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgfSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjYzBmYmU1Y2Y2ZWFm
N2U1YTNlNTI0Y2I5NDE4OGJhMjI4NTgxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFu
ZGxlSW1wbC5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsK
LWNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU7Ci1jbGFzcyBGaWxlU3lzdGVtRmlsZUhh
bmRsZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGwg
ewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4g
Y3JlYXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9u
Jik7Ci0gICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIs
IElQQzo6Q29ubmVjdGlvbiYpOwotCi0gICAgLy8gRmlsZVN5c3RlbUhhbmRsZUltcGwKLSAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBzdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJu
IG1faWRlbnRpZmllci50b1VJbnQ2NCgpOyB9Ci0gICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lz
dGVtSGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8Ym9vbD4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4m
JikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFu
ZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VmVj
dG9yPFN0cmluZz4+JiYpPiYmKSBmaW5hbDsKLQotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NDE3MWM1NWNm
NmYwMDc2ZTQyMGU3ODU5MDI0NzgyNTc0YjI4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKworI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKKyNpbmNsdWRlICJOZXR3b3JrU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitS
ZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKGNvbm5lY3Rp
b24pKTsKK30KKworV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorICAgIDogbV9j
b25uZWN0aW9uKCZjb25uZWN0aW9uKQoreworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCit7CisgICAgbV9jb25uZWN0aW9uID0gbnVs
bHB0cjsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGlmIChpZGVudGlmaWVyID09IG90aGVy
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisg
ICAgYXV0byBzdG9yYWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudG9VSW50NjQoKSk7Cisg
ICAgYXV0byBvdGhlclN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4ob3RoZXJJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OklzU2FtZUVudHJ5KHN0b3JhZ2VJZGVudGlmaWVyLCBvdGhl
clN0b3JhZ2VJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIocmVzdWx0KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpV
bmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgYXV0byBzdG9yYWdl
SWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0
RmlsZUhhbmRsZShzdG9yYWdlSWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBb
bmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNl
cHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBhdXRvIHN0b3JhZ2VJZGVu
dGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlkZW50aWZpZXIu
aXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJf
cyB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlT2JqZWN0SWRlbnRpZmllcjxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlmaWVy
LnRvVUludDY0KCkpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBhdXRvIHN0
b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpHZXREaXJlY3RvcnlIYW5kbGUoc3RvcmFnZUlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29u
dmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAgICAgICAgYXV0byBz
dG9yYWdlSWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIXN0b3JhZ2VJ
ZGVudGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9u
IGlzIGxvc3QiX3MgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlPihzdG9yYWdl
SWRlbnRpZmllci50b1VJbnQ2NCgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpyZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50
cnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9u
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGF1
dG8gc3RvcmFnZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPihpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OlJlbW92ZUVudHJ5KHN0b3JhZ2VJZGVudGlmaWVyLCBuYW1lLCBkZWxldGVSZWN1cnNp
dmVseSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2Vw
dGlvbkNvZGUoZXJyb3IudmFsdWUoKSkgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
eyB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGF1dG8gc3RvcmFnZUlkZW50aWZp
ZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXJUeXBlPihpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIGF1dG8gb3RoZXJTdG9yYWdlSWRl
bnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRl
bnRpZmllclR5cGU+KG90aGVySWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpS
ZXNvbHZlKHN0b3JhZ2VJZGVudGlmaWVyLCBvdGhlclN0b3JhZ2VJZGVudGlmaWVyKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShy
ZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZXN1bHQudmFsdWUoKSkpOworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MzIxZjg5NWIxMWMxZjUyYWEwYmJhNTk2MGNhNDg2YjgzNWY1YjJhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+CisKK25hbWVz
cGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOworY2xhc3MgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKKworcHJpdmF0
ZToKKyAgICBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7
CisKKyAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICB2b2lkIGlzU2FtZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRI
YW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNh
bGxiYWNrJiYpOworICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxiYWNrJiYpOworCisgICAgUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBhZmZkOWQzMTEyYThh
MWIyMzQ1MzcwMDRkY2Y3ZTg3MWNkMDVjYmU1Li40ZTBjODEyMWI1NTg1MWQ5Njg2N2E1ZjUzNTEz
ODNkMjY1NTAwNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI2LDEy
ICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VDb25u
ZWN0aW9uLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
bGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNTAsMTggKzUxLDE5IEBAIHZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OnBl
cnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpCiAgICAg
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpQZXJzaXN0KG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFdl
YkNvcmU6OlN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0gICAg
Y29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbd2Vha0Nvbm5lY3Rpb24gPSBt
YWtlV2Vha1B0cihjb25uZWN0aW9uKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8mIGlwY0Nvbm5l
Y3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCk7CisgICAgaXBjQ29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9y
eShvcmlnaW4pLCBbaXBjQ29ubmVjdGlvbiA9IFJlZiB7IGlwY0Nvbm5lY3Rpb24gfSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11
dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJl
c3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigp
KSB9LCBudWxscHRyKTsKIAotICAgICAgICBpZiAoIXdlYWtDb25uZWN0aW9uIHx8ICFyZXN1bHQu
dmFsdWUoKS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBp
cyBsb3N0Il9zIH0pOworICAgICAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0gcmVzdWx0LnZh
bHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlkZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9LCBudWxscHRyKTsKIAot
ICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUocmVzdWx0LnZhbHVlKCksICp3ZWFrQ29ubmVj
dGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGltcGwpKTsK
KyAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uT3I8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXI+IGlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlmaWVyLnRvVUludDY0KCkp
OworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpZGVudGlmaWVyKSwg
UmVmIHsgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
KCkgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZmYy
NzhkOTVlNWNjZmY2YTQ0NmU0MjkwMmQ2ZmZmZTVhOWU5MGY3Yy4uOTE1NjBkZDFiOWRkNjE0NDFm
ODIyN2QxYWIxMTNhZDBlZTM1NjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGdldFBlcnNpc3RlZChj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJbXBsPj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVj
dG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpTdG9yYWdlQ29ubmVj
dGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmluYWw7CiAKICAgICBJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24oKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggYjI5ZTEwMDY3OTU2OTQ5MjI2ODQ1MDMyNzFhYWI4NTc3NWE1YTViYi4uMWIzNWZk
NjA1OGRmYjQ2Nzk3NGIwN2M1ZjA4OWJlMmE3NDFmY2QzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIldlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZUphci5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdhbWVwYWRQcm92aWRlci5oIgpAQCAt
MTIwNyw2ICsxMjA4LDE5IEBAIHZvaWQgV2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uQ2xvc2VkKE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjCiAgICAgICAgICAgICBw
YXltZW50Q29vcmRpbmF0b3ItPm5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCgpOwogI2Vu
ZGlmCiAgICAgfQorCisgICAgaWYgKG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKSB7Cisg
ICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7
CisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKK1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKQorICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA9IFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICByZXR1cm4gKm1fZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOwogfQogCiBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9h
ZGVyU3RyYXRlZ3koKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjM2
MDNhZDAyNGIyMWRiODgyZTZkOTJjN2EwNWYzZTg1YzU3Yjk5NS4uNDY4OTA0ODllYjllZWU2NWJi
NTNjYzEzMmYzMGIyMWE3ZTMwNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC0xNDAsNiArMTQwLDcgQEAgY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CiBj
bGFzcyBXZWJDb29raWVKYXI7CiBjbGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7
CiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CitjbGFzcyBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5
OwogY2xhc3MgV2ViUGFnZTsKQEAgLTM5OCw2ICszOTksOCBAQCBwdWJsaWM6CiAgICAgU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYgZW5zdXJlU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcigpOwogI2VuZGlmCiAKKyAgICBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwor
CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwpAQCAtNjc5
LDYgKzY4Miw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eT4gbV9hdXRvbWF0aW9uU2Vzc2lvblByb3h5OwogCisgICAgUmVmUHRyPFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b247CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBSZWZQdHI8UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439539</attachid>
            <date>2021-09-28 16:02:22 -0700</date>
            <delta_ts>2021-09-29 14:15:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230861-20210928160221.patch</filename>
            <type>text/plain</type>
            <size>71822</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uOGIzNjJhM2Y3OWM0MDU5ZTFiMjkwYWFkOGZiZmU2
NTZlYWMzNjllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVwbGFjZSBGaWxlU3lzdGVtSGFuZGxlSW1wbCB3aXRoIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbiB0byBwcm92aWRlIGJldHRlciBhYnN0cmFjdGlvbiBvZiBhIGNv
bm5lY3Rpb24gdG8KKyAgICAgICAgZmlsZSBzeXN0ZW0gc3RvcmFnZSBiYWNrZW5kLCB3aGljaCB3
aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCB3b3JrZXIgc3VwcG9ydCBmb3IgRmlsZVN5c3RlbUhh
bmRsZS4KKyAgICAgICAgRWFjaCBGaWxlU3lzdGVtSGFuZGxlIGhhcyByZWZlcmVuY2UgdG8gYSBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24sIHdoaWNoIGlzIHNoYXJlZCBhbW9uZyBtdWx0aXBs
ZSBoYW5kbGVzLiAKKyAgICAgICAgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIGlzIGJpbmRl
ZCB3aXRoIGFuIElQQyBjb25uZWN0aW9uLiBXaGVuIHRoZSBjb25uZWN0aW9uIGlzIGxvc3QsIHRo
ZSAKKyAgICAgICAgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIHdpbGwgYmUgaW52YWxpZCBh
bmQgc28gYXJlIGFsbCBoYW5kbGVzIHBvaW50cyB0byBpdC4KKworICAgICAgICBObyBuZXcgdGVz
dC4gVGhlcmUgc2hvdWxkIGJlIG5vIG9ic2VydmFibGUgYmVoYXZpb3IgY2hhbmdlLgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZW1vdmVF
bnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZXNv
bHZlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxl
U3lzdGVtRmlsZUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZTo6RmlsZVN5c3RlbUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Ojppc1NhbWVFbnRyeSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6
OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6
Y29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjppbXBsIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJbXBs
LmguCisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246On5GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9EdW1t
eVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dldERp
cmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjEtMDktMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CiAKICAgICAgICAgTWFrZSBTdG9yYWdlTWFuYWdlciBhdmFpbGFibGUgaW4gV29ya2VyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGVmZDMyOWQ2OTYzYmNjN2NmMjU5MDIxMzYyMjE4OGJmOTFkMjE2NzUuLjU1MmFjOGE3
ZmE0NjFkNmRjNDZhYzAyMWE0MTY3ODc2NjNmMTFmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMjEtMDktMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVwbGFjZSBGaWxlU3lzdGVtSGFuZGxlSW1wbCB3aXRoIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMwODYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzYwNjQ2NT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlUHJveHkgd2l0aCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAuCisg
ICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3Rv
cnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlbW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpyZXNvbHZlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU3RvcmFnZUNvbm5lY3Rpb246OnBlcnNp
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdl
dERpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0wOS0yOCAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFN0b3JhZ2VNYW5h
Z2VyIGF2YWlsYWJsZSBpbiBXb3JrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDhmMzk0Y2UyZGYz
YmFhZGViODM3ZjgxMGEzZThhMGY3NTQxOTE2MGIuLmNmYWYwM2EyZGZiMzAwODczZDg2ZjAwOGVj
ZTI4ZDBlYjAwZWMxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDAsNyArNDAsOCBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAogICAgIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAotICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlSW1wbC5oCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvU3Rv
cmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmgKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmlu
ZGV4IDNhMGNhZTg5YmRlZTUxMTBmZDQ5MTVjYmE4ZTRjMWE1OWU3NTEzOWIuLmVmZTJhNzc0ZWRk
MDA1OWZjNGUxOTNlYjI4MDE0NTU5M2I3MzY4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAKLSNpbmNsdWRlICJGaWxl
U3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRmlsZUhhbmRs
ZS5oIgpAQCAtMzYsNDkgKzM2LDQ5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUpOwogCi1SZWY8Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KFN0cmluZyYmIG5hbWUsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJiBpbXBsKQorUmVmPEZp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0
ZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBS
ZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGltcGwpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rp
b24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwp
Ci0gICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9y
eSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpbXBsKSkKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQorICAgIDogRmlsZVN5c3RlbUhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
OjpLaW5kOjpEaXJlY3RvcnksIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29u
bmVjdGlvbikpCiB7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6R2V0RmlsZU9wdGlvbnM+IG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJ
RExJbnRlcmZhY2U8RmlsZVN5c3RlbUZpbGVIYW5kbGU+PiYmIHByb21pc2UpCiB7CiAgICAgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSA9IG9wdGlvbnMgPyBvcHRpb25zLT5jcmVhdGUgOiBmYWxzZTsK
LSAgICBpbXBsKCkuZ2V0RmlsZUhhbmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW25hbWUs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
Y29ubmVjdGlvbigpLmdldEZpbGVIYW5kbGUoaWRlbnRpZmllcigpLCBuYW1lLCBjcmVhdGVJZk5l
Y2Vzc2FyeSwgW2Nvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgbmFtZSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVj
dChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnJlc29sdmUo
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSkpOworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdU
Rk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkdldERpcmVjdG9yeU9wdGlvbnM+IG9w
dGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0
aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwotICAgIGltcGwoKS5nZXREaXJlY3RvcnlI
YW5kbGUobmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtuYW1lLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5nZXREaXJl
Y3RvcnlIYW5kbGUoaWRlbnRpZmllcigpLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW2Nvbm5l
Y3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKSk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU6OmNyZWF0ZShTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU6OlJlbW92ZU9wdGlvbnM+IG9wdGlvbnMsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgYm9vbCBkZWxldGVSZWN1cnNpdmVseSA9
IG9wdGlvbnMgPyBvcHRpb25zLT5yZWN1cnNpdmUgOiBmYWxzZTsKLSAgICBpbXBsKCkucmVtb3Zl
RW50cnkobmFtZSwgZGVsZXRlUmVjdXJzaXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5yZW1vdmVFbnRyeShp
ZGVudGlmaWVyKCksIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpyZXNvbHZlKGNvbnN0IEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlz
ZURlZmVycmVkPElETFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYgcHJvbWlzZSkKIHsKLSAgICBp
bXBsKCkucmVzb2x2ZShoYW5kbGUuaW1wbCgpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uKCkucmVzb2x2ZShpZGVudGlm
aWVyKCksIGhhbmRsZS5pZGVudGlmaWVyKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAppbmRleCA5MmEx
MmI0NzBjZTkxMGRmZGVjZDE4ZTkxZmY4ZTEzNWJmNDlkNmJhLi4wODljMTg3ZDE2YjY0ODY0NmRj
NGE3MTQ1NTA0M2ZhNmI0MWY0MGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlLmgKQEAgLTQ2LDE0ICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgcmVjdXJzaXZl
IHsgZmFsc2UgfTsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIFJlZjxGaWxlU3lzdGVtSGFu
ZGxlSW1wbD4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldEZpbGVPcHRpb25zPiwg
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYp
OwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpv
cHRpb25hbDxHZXREaXJlY3RvcnlPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRy
eShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8UmVtb3ZlT3B0aW9ucz4sIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIHJlc29sdmUoY29uc3QgRmlsZVN5c3Rl
bUhhbmRsZSYsIERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExVU1ZTdHJpbmc+PiYm
KTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFN0cmluZyYmLCBS
ZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYpOworICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGYxNWUwMTFkNmY2M2U1NzAzOWM2ZTk0NjI3
ZWEyNWFkMDlmMGUxMjMuLmIyMTI1NDdiNWZlOWI5YmQyNTY3ZmIxYjA5NDgwYmJkZDBmMTlmNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAKLSNp
bmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTMgKzM0LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJiBp
bXBsKQorUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3Jl
YXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhhbmRsZShXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGltcGwpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVI
YW5kbGUoV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwog
fQogCi1GaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5nJiYg
bmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCi0gICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaW1wbCkpCitGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU3Ry
aW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogRmlsZVN5c3Rl
bUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpGaWxlLCBXVEZNb3ZlKG5hbWUpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oCmluZGV4IDQ4MjliYjI0MTc3OWM3NTRlYTdhNTg3YWU2ZDFhMWU5MjcyZGQzMTMuLjI1
MDA1YzIxMzM4YmU3ODZhOTlmMjBiOGZhYWRlM2MxMmE3YWRjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oCkBAIC0zNCwxMSArMzQsMTEgQEAgY2xhc3MgRmlsZTsKIGNsYXNzIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlIGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFdU
Rl9NQUtFX0lTT19BTExPQ0FURUQoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogcHVibGljOgotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShT
dHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
KTsKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxl
Pj4mJik7CiAKIHByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3RyaW5nJiYsIFJl
ZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAppbmRleCBiMzk2Nzk2ODU3NWU5MzRlNTdiMjU2NjkxZGQwNDEzNmI3YzQ0YTVm
Li45NzU3ODk4MjQwYmVkMmExMjczMWQ4YmRkZWMzZGRiNzY4MzRjOTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbUhhbmRsZS5oIgogCi0jaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTM0LDEwICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtSGFuZGxlKTsKIAot
RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlOjpLaW5k
IGtpbmQsIFN0cmluZyYmIG5hbWUsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJiBpbXBsKQor
RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlOjpLaW5k
IGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6
IG1fa2luZChraW5kKQogICAgICwgbV9uYW1lKFdURk1vdmUobmFtZSkpCi0gICAgLCBtX2ltcGwo
V1RGTW92ZShpbXBsKSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9j
b25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKQEAgLTQ4LDcgKzQ4LDcgQEAg
dm9pZCBGaWxlU3lzdGVtSGFuZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5k
bGUsIERPTVByb21pc2VEZWZlcnJlZDwKICAgICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkg
fHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoZmFsc2UpOwogCi0gICAgbV9pbXBsLT5pc1NhbWVFbnRyeShoYW5kbGUuaW1wbCgpLCBbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nv
bm5lY3Rpb24tPmlzU2FtZUVudHJ5KG1faWRlbnRpZmllciwgaGFuZGxlLmlkZW50aWZpZXIoKSwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuaAppbmRleCBlNWNmNzAyM2E2OTU5ZDY4ZDM5NTQxZjA2NzA3NmVkNzNiZjZmZWE1
Li5lYzQ0Njg3YjA5MTRjNTgzZTNiODFjNDYzNmZlZTU5ODQ3MzcxMGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCkBAIC0zMiw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAot
Y2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7CitjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb247CiBlbnVtIGNsYXNzIFBlcm1pc3Npb25TdGF0ZSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIEZp
bGVTeXN0ZW1IYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtSGFuZGxlPiB7CkBA
IC00NiwxNyArNDcsMTkgQEAgcHVibGljOgogICAgIH07CiAgICAgS2luZCBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9Ci0gICAgRmlsZVN5c3RlbUhhbmRsZUltcGwmIGltcGwoKSBjb25zdCB7IHJl
dHVybiBtX2ltcGwuZ2V0KCk7IH0KKyAgICBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIGlzU2Ft
ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
JikgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBGaWxlU3lzdGVtSGFuZGxlKEtpbmQsIFN0cmlu
ZyYmIG5hbWUsIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbUhh
bmRsZShLaW5kLCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVm
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CisgICAgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAK
IHByaXZhdGU6CiAgICAgS2luZCBtX2tpbmQgeyBLaW5kOjpGaWxlIH07CiAgICAgU3RyaW5nIG1f
bmFtZTsKLSAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+IG1faW1wbDsKKyAgICBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTc1
MTkzNGNlN2M4ZTk2NzlmZjdjYjhjOGE0NTVkYWQ2MDNkZjM4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitlbnVtIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q4ZGE0MjI3Y2Uw
Y2M3ZjBjMWYwYjI1ZDhkNmEwYTA3MDQzMGVkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZUltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU7Ci1jbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKLXRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBFeGNlcHRpb25PcjsKLQotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGwgOiBwdWJs
aWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gewotcHVibGljOgotICAgIHZpcnR1
YWwgfkZpbGVTeXN0ZW1IYW5kbGVJbXBsKCkgeyB9Ci0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBzdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEZp
bGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4+
JiYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIHJlY3Vy
c2l2ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJbXBsJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+JiYpID0gMDsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjA1YTY3ZDkyYWI0MzZmZDY0ODNlMzc4YjZmNjM4
YjRkODFhYTBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOworCitjbGFzcyBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkgeyB9CisgICAgdXNpbmcgU2FtZUVudHJ5Q2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPjsKKyAgICB1
c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBSZW1vdmVFbnRy
eUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47
CisgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OworICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRy
eShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRs
ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFJlbW92
ZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNh
bGxiYWNrJiYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmgKaW5k
ZXggMjlmNjczNmVmMTBjMTU5MzY4YTllMzA4MDNlNjZiZjEzMDU1ODg3Mi4uZDVjODcwNjdkMzZl
Mjk5NTJmYTdkODgzMGMwMDdmYTc0MzVhYjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmgKQEAgLTI1LDcgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgor
I2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VQcm92aWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NSw3ICs1NSw3IEBAIHBy
aXZhdGU6CiAKICAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVu
dE9yaWdpbiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH0sIG51bGxwdHIpOwog
ICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3Jh
Z2UvU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAwNjIzOGNkZjY4ZDBlZjVlZTNiNTVmZjFhZmM4
ZTYxMmIxZWM4NzY2Li4zNmJlYWIyNDEwZGNhYmVkYjQ1YTVlYmNlN2ZlZWY4NjkwMTYxOTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtMjUsMTIgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25P
cjsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiAKQEAgLTQwLDcgKzQxLDcgQEAgcHVibGljOgogICAg
IHVzaW5nIFBlcnNpc3RDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+Owog
ICAgIHZpcnR1YWwgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lz
dENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGVyc2lzdChjb25zdCBDbGllbnRP
cmlnaW4mLCBQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7IH0KLSAgICB1c2luZyBHZXREaXJlY3RvcnlDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+OworICAgIHVzaW5nIEdldERpcmVjdG9yeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJiwgUmVmUHRyPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik+OwogICAgIHZpcnR1YWwgdm9pZCBmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxiYWNr
JiYpID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIuY3BwCmluZGV4IGM2OWQwNTUwZWExZjE1YmY1Zjk3YTVkZjVjZGFmZTczNWZh
OTBmYzkuLmRiOTU2ZWFhZTdmMzczMDRjZjVkNjRkNGFhNDMzODAzYjg3MTIwNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCi0jaW5jbHVkZSAi
RmlsZVN5c3RlbUhhbmRsZUltcGwuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpT
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIK
QEAgLTExNSwxMSArMTE1LDExIEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1BY2Nl
c3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlamVjdChjb25uZWN0aW9uSW5mb09yRXhjZXB0aW9uLnJlbGVhc2VFeGNl
cHRpb24oKSk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb25JbmZvID0gY29ubmVjdGlvbkluZm9PckV4
Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0
aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVjdGlvbkluZm8ub3JpZ2luLCBbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0
aW9uSW5mby5jb25uZWN0aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVjdGlvbkluZm8u
b3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0LCBhdXRvIGNv
bm5lY3Rpb24pIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
OjpjcmVhdGUoeyB9LCByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7IH0sIHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgUmVmIHsgKmNvbm5lY3Rpb24gfSkpOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtl
clN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAyOTY5ZGQ2MzBkOTEyZmQ1NDQ5N2JhODE1Yjgw
MDA1ZGM2ODBkNjAzLi5lM2IxYjI5YzFlNWUwMThhMGI5OTIzYTFlODE2ZWVmNGNiYjFjY2ZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJT
dG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJXb3JrZXJT
dG9yYWdlQ29ubmVjdGlvbi5oIgogCiAjaW5jbHVkZSAiQ2xpZW50T3JpZ2luLmgiCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbUhhbmRsZUltcGwuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFk
LmgiCkBAIC04NSw3ICs4NCw3IEBAIHZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnCiAgICAgQVNTRVJU
KG1fc2NvcGUpOwogCiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIHdoZW4gRmlsZVN5c3Rl
bUhhbmRsZSBpcyBzdXBwb3J0ZWQgaW4gV29ya2VyLgotICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSwgbnVsbHB0cik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMDI4ZTVkOTVjNjliNmY3NGEzNTJlMzA5
ZGY5MmUxMDUxMDZhYjcyLi5kNjk0ZWM2ZWNkMDM5NTRkOTg0MTNlODAyOGU2NGQxMzRiMTc3NjUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yODA1LDcgKzI4MDUsNiBAQAogCQk5MzBBQUM5QTI1MEVCODQ5MDAxM0RBOUYgLyog
Q1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwQUFDOTgyNTBFQjgxNzAwMTNEQTlGIC8qIENTU0NvbmRpdGlvblJ1bGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzBBQUM5
RjI1MEVENDA5MDAxM0RBOUYgLyogSlNDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUM5RDI1MEVENDA5MDAxM0RBOUYg
LyogSlNDU1NDb25kaXRpb25SdWxlLmggKi87IH07CiAJCTkzMEFBQ0EyMjUwRUQ0MTEwMDEzREE5
RiAvKiBKU0NTU0dyb3VwaW5nUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwQUFDQTAyNTBFRDQxMTAwMTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdS
dWxlLmggKi87IH07Ci0JCTkzMTJCQUQ5MjZGM0FDOUEwMEZEREY1RiAvKiBGaWxlU3lzdGVtSGFu
ZGxlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxQTA3NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMxNTNCREExNDE4
MUY3QTAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkQ5MTQxODFGN0EwMEZDRjVCRSAvKiBt
aXNzaW5nSW1hZ2VAMngucG5nICovOyB9OwogCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyog
dGV4dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEQjE0MTk1OUJCMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNp
emVDb3JuZXIucG5nICovOyB9OwogCQk5MzE1M0JFMjE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2lu
Z0ltYWdlLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxNTNCRTExNDE5NUE1NzAwRkNGNUJFIC8qIG1pc3NpbmdJbWFnZS5wbmcgKi87IH07CkBA
IC0yODc1LDYgKzI4NzQsOCBAQAogCQk5MzRGNzEzQzBENUE2RjE5MDAwMThENjkgLyogUmVzb3Vy
Y2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTAwRjMyMTNG
REUzQkUwMDk5RUMyNCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1MDBGMzExM0ZERTNCRTAwOTlFQzI0IC8q
IE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0
cmluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM1NDI0MkYyNzAzQ0E1MTAw
NUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyog
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM1NUVGNTEyNTNBNDI3OTAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NUVGNEYyNTNB
NDI3ODAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNUM0NzYzMDlBQzRDRTYwMEE2QUFCNCAvKiBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVDNDc2MjA5QUM0Q0U2MDBBNkFBQjQgLyogTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cy5oICovOyB9OwogCQk5MzVDNDc2ODA5QUM0RDQzMDBBNkFBQjQg
LyogUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzVDNDc2NjA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTExNjY3LDcgKzExNjY4LDYgQEAKIAkJOTMxNkRERjgyNDBDNjRCMzAwOTM0MEFBIC8q
IFNpbXBsZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZVJh
bmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTZEREZBMjQwQzY0QjMwMDkz
NDBBQSAvKiBTaW1wbGVSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTaW1wbGVSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMTZE
REZFMjQwQzY0RjgwMDkzNDBBQSAvKiBCb3VuZGFyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJvdW5kYXJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOTMxQTA3NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUExQkREMjZGN0VEMDkwMDgxQTdFNSAv
KiBKU0ZpbGVTeXN0ZW1IYW5kbGVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxl
U3lzdGVtSGFuZGxlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMx
QUUzQjgxRkI4MEVBRTAwRjVFRkIyIC8qIEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzFCQ0M2MDExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE4MTMsNiArMTE4MTMsOCBAQAog
CQk5MzUwMEYzMTEzRkRFM0JFMDA5OUVDMjQgLyogTlNTY3JvbGxlckltcERldGFpbHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNTY3JvbGxlckltcERldGFpbHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExv
Y2FsaXplZFN0cmluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxp
emVkU3RyaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzUzNjc2QTA5QUVE
ODhCMDBEMzVDRDYgLyogU2Nyb2xsVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFNjcm9sbFZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0MjQyOTI3MDNC
Q0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU1RUY0RjI1M0E0Mjc4MDA2RkY0QTQgLyogSlNB
YnN0cmFjdFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWJzdHJh
Y3RSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU1RUY1MDI1M0E0Mjc5
MDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQWJzdHJhY3RSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNTVFRjUzMjUzQTRENUEwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2VDdXN0b20u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBYnN0cmFjdFJhbmdlQ3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzY1LDcgKzIzMzY3LDggQEAKIAkJCQk5MzJDOUJE
MDI2REQ2MjU1MDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5jcHAgKi8sCiAJCQkJOTMyQzlC
REEyNkRENjI2MTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCAqLywKIAkJCQk5MzJDOUJE
OTI2REQ2MjYwMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5pZGwgKi8sCi0JCQkJOTMxQTA3
NTgyNkYxQjQ0RjAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggKi8sCisJCQkJOTM1
NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi8s
CisJCQkJOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oICovLAogCQkJCTkzNDQzRTdCMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdl
citGaWxlU3lzdGVtQWNjZXNzLmlkbCAqLywKIAkJCQk5MzQ0M0U3RDI2RThBNkJDMDA1ODUzOEYg
LyogU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmggKi8sCiAJCQkpOwpAQCAtMzI0NjAs
NyArMzI0NjMsOCBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxlU3lzdGVt
RmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2RTk5NUMwMDA1ODUzOEYg
LyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQzRTg4MjZF
OTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5
MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzNTQyNDJGMjcwM0NBNTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJD
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1
RUI2OUYwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzEyQkU0ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NDVFNzJGODBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNkNzcuLmM0
YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAt
Njk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lv
blN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hhcmVhYmxl
Qml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLjE3MWIyYTIy
MGU5ZDYzYTRjNGNjMDRiN2Y0YzRlNWE4YWQzZTk5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlhcmNoaXZl
VmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1MjsKKwlv
YmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRl
VGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE0ODUsNiArMTQ4NSw3IEBACiAJCTkzM0U4MzVCMjNBMUI3
NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAwREVG
Mjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzNDI1ODlB
MjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIwMDU5
RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1
QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8q
IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oICovOyB9OwogCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi87
IH07CiAJCTkzNTZGMkRFMjE1MkI3MTAwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRERTIxNTFB
REY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovOyB9OwpAQCAtNDk0Myw4ICs0OTQ0
LDYgQEAKIAkJOTMxQTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTMy
NkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzU3MjZGMTI1QTMwMDQ0NzRDRCAvKiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTkzMUEwNzU5MjZGMUI5NjcwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5MzFBMDc1QTI2RjFCOTY4MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUExQkUw
MjZGODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTMyMUQ1ODcxQTM4RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjAs
NiArNDk1OSw4IEBACiAJCTkzNDI1ODhGMjU1NURDQTUwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Np
b25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGls
aXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODk4MjU1QjUzNEIw
MDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJ
dGVtVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25NZW51
SXRlbVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNTQyNDJBMjcwM0JE
Q0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNTQyNDJCMjcwM0JEQ0IwMDVDQTcyQyAv
KiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1QjU3OTgyNkY1MTI3MDAwOEI0OEFDIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzVCNTc5OTI2RjUxOTJGMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTUxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MDc0LDggKzEwMDc1LDYgQEAKIAkJCQlDRDYxNzgxMTFFNkRFOTgwMDBGREE1N0QgLyogY29jb2Eg
Ki8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJCQlCQzExMUFE
RTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAotCQkJCTkzMUEwNzU5MjZGMUI5NjcwMDQ0NzRD
RCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcCAqLywKLQkJCQk5MzFBMDc1QTI2
RjFCOTY4MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oICovLAogCQkJ
CTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCAq
LywKIAkJCQkxQTcyODQ0NTE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lv
bi5oICovLAogCQkJCUY0M0E5Q0RFMjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBV
dGlsaXRpZXMuY3BwICovLApAQCAtMTAxMDEsNiArMTAxMDAsOCBAQAogCQkJCUJDMDMyRDY2MTBG
NDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggKi8sCiAJCQkJQkMxMTFBNTcxMTJGNEZC
QjAwMzM3QkFCIC8qIFdlYkVkaXRvckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENjgxMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkVkaXRvckNsaWVudC5oICovLAorCQkJCTkzNTQyNDJCMjcwM0JEQ0Iw
MDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovLAorCQkJCTkz
NTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aCAqLywKIAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRl
ckNsaWVudC5oICovLAogCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2Nh
dGlvbkNsaWVudC5jcHAgKi8sCkBAIC0xMjc4NCw2ICsxMjc4NSw3IEBACiAJCQkJQkMwMzJEQjkx
MEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRC
QjEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzExMUI1RDExMkY2Mjk4MDAzMzdCQUIgLyogV2ViRXZlbnRGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5MzU0MjQyQzI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAz
RTQ0RDQgLyogV2ViRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU0MTIx
NEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0
Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ0ZmYzZTE4ZjY2YjhiMmJiNWE3
YjJmYWNjZTg0NmEwMTUyODVkYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZVByb3h5LmgiCi0KLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCi0jaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUmVmPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHk+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkoaWRlbnRpZmllciwgY29ubmVjdGlvbikpOwotfQotCi1GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVByb3h5OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5KEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi0g
ICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICAsIG1fY29ubmVjdGlvbigmY29ubmVj
dGlvbikKLXsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5Ojpjb25uZWN0
aW9uQ2xvc2VkKCkKLXsKLSAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwotfQotCi12b2lkIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJ
bXBsJiBoYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8
Ym9vbD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24p
Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBX
ZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAgYXV0
byBpZGVudGlmaWVyID0gaGFuZGxlLnN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgaWYg
KCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwot
Ci0gICAgaWYgKG1faWRlbnRpZmllci50b1VJbnQ2NCgpID09ICppZGVudGlmaWVyKQotICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpJc1NhbWVF
bnRyeShtX2lkZW50aWZpZXIsIG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlSWRlbnRpZmllclR5cGU+KCppZGVudGlmaWVyKSksIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Z2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RmlsZUhh
bmRsZShtX2lkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW2Nvbm5lY3Rpb24g
PSBtX2Nvbm5lY3Rpb24sIG5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFyZXN1bHQp
Ci0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7Ci0gICAgCi0gICAg
ICAgIGF1dG8gaGFuZGxlSWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwotICAgICAgICBpZiAo
IWhhbmRsZUlkZW50aWZpZXIuaXNWYWxpZCgpKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsKLQotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUo
aGFuZGxlSWRlbnRpZmllciwgKmNvbm5lY3Rpb24pOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKGltcGwpKTsKLSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5OjpnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlv
bk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRs
ZShtX2lkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW2Nvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb24sIG5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0g
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
Y29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7Ci0gICAgCi0gICAgICAg
IGF1dG8gaGFuZGxlSWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwotICAgICAgICBpZiAoIWhh
bmRsZUlkZW50aWZpZXIuaXNWYWxpZCgpKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCJfcyB9KTsKLQotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUltcGw+IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUoaGFu
ZGxlSWRlbnRpZmllciwgKmNvbm5lY3Rpb24pOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGltcGwpKTsKLSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVByb3h5OjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJz
aXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3Jl
OjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
UmVtb3ZlRW50cnkobV9pZGVudGlmaWVyLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBt
dXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJy
b3IudmFsdWUoKSkgfSk7Ci0KLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9
KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpyZXNvbHZlKEZpbGVT
eXN0ZW1IYW5kbGVJbXBsJiBoYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
RXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBp
cyBsb3N0IiB9KTsKLQotICAgIGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5zdG9yYWdlSGFuZGxl
SWRlbnRpZmllcigpOwotICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFZlY3RvcjxTdHJpbmc+IHsgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZXNvbHZl
KG1faWRlbnRpZmllciwgbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZpZXIpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
aWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7
Ci0KLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOwot
ICAgIH0pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNh
Y2MwZmJlNWNmNmVhZjdlNWEzZTUyNGNiOTQxODhiYTIyODU4MWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbUhhbmRsZUltcGwuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0
aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci10ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3Mg
RXhjZXB0aW9uT3I7Ci1jbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOwotY2xhc3MgRmls
ZVN5c3RlbUZpbGVIYW5kbGU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJbXBsIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHk+IGNyZWF0ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbiYpOwotICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZCgpOwotCi1wcml2YXRl
OgotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mKTsKLQotICAgIC8vIEZpbGVTeXN0ZW1IYW5k
bGVJbXBsCi0gICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gc3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIoKSB7IHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsgfQotICAgIHZvaWQgaXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEZpbGVIYW5k
bGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSW1wbD4+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJbXBsPj4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlc29sdmUo
RmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4
Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4mJikgZmluYWw7Ci0KLSAgICBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kODQxNzFjNTVjZjZmMDA3NmU0MjBlNzg1OTAyNDc4MjU3NGIyODVkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgiCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCisjaW5jbHVkZSAi
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0V4Y2Vw
dGlvbk9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVmPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbihjb25uZWN0aW9uKSk7Cit9CisKK1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
bikKKyAgICA6IG1fY29ubmVjdGlvbigmY29ubmVjdGlvbikKK3sKK30KKwordm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQoreworICAgIG1fY29u
bmVjdGlvbiA9IG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBvdGhlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6
OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBpZiAoaWRlbnRp
ZmllciA9PSBvdGhlcklkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKKworICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPihpZGVudGlmaWVyLnRv
VUludDY0KCkpOworICAgIGF1dG8gb3RoZXJTdG9yYWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJ
ZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KG90aGVySWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpJc1NhbWVFbnRyeShzdG9yYWdlSWRl
bnRpZmllciwgb3RoZXJTdG9yYWdlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRI
YW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0
aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAg
IGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPihpZGVudGlmaWVyLnRvVUludDY0KCkpOworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoc3RvcmFnZUlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlm
TmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
Y29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAgICAgICAgYXV0
byBzdG9yYWdlSWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIXN0b3Jh
Z2VJZGVudGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0
aW9uIGlzIGxvc3QiX3MgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZU9iamVj
dElkZW50aWZpZXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlPihzdG9y
YWdlSWRlbnRpZmllci50b1VJbnQ2NCgpKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OkdldEhhbmRsZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNl
cHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwor
CisgICAgYXV0byBzdG9yYWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudG9VSW50NjQoKSk7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKHN0b3JhZ2VJZGVudGlmaWVyLCBuYW1l
LCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
cmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisg
ICAgICAgIGF1dG8gc3RvcmFnZUlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAg
aWYgKCFzdG9yYWdlSWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
VHlwZT4oc3RvcmFnZUlkZW50aWZpZXIudG9VSW50NjQoKSkpOworICAgIH0pOworfQorCit2b2lk
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAo
IW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIg
fSk7CisKKyAgICBhdXRvIHN0b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShzdG9yYWdlSWRlbnRpZmllciwgbmFtZSwg
ZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOworCisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBhdXRvIHN0
b3JhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBhdXRvIG90
aGVyU3RvcmFnZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPihvdGhlcklkZW50aWZpZXIudG9VSW50NjQoKSk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6UmVzb2x2ZShzdG9yYWdlSWRlbnRpZmllciwgb3RoZXJTdG9yYWdlSWRlbnRp
ZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4
Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjMyMWY4OTViMTFjMWY1MmFhMGJiYTU5NjBjYTQ4NmI4MzVmNWIyYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKK2NsYXNz
IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU7CitjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJik7CisgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2Vk
KCk7CisKK3ByaXZhdGU6CisgICAgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpOworCisgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAg
dm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9pZCBnZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CisgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYm
KTsKKworICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
NjNlNjYyOWRjYmRkNzZmOTY4ZjRlNzhiMjRjNDkzZWQ1MDIyNWZiMy4uMmVlOGI4YzVjMDgyYWY5
NjlmNGYyM2IzOGZjOWQ2Njc0NzQ4ZTU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25P
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ1LDIzICs0NiwyNCBAQCB2b2lkIFdlYlN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmln
aW4sIFN0bwogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6UGVyc2lzdGVkKG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OnBl
cnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0
aW9uOjpQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OlBlcnNpc3Qob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdl
dERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNv
bm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKGNvbm5l
Y3Rpb24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShv
cmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KHJlc3VsdC5lcnJvcigpKSB9LCBudWxscHRyKTsKIAotICAgICAgICBpZiAoIXdlYWtDb25uZWN0
aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9y
LCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworICAgICAgICBhdXRvIHN0b3JhZ2VJZGVudGlm
aWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghc3RvcmFnZUlkZW50aWZpZXIuaXNW
YWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9
LCBudWxscHRyKTsKIAotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+
IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUocmVzdWx0LnZhbHVl
KCksICp3ZWFrQ29ubmVjdGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGltcGwpKTsKKyAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uT3I8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+IGlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmll
cjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllclR5cGU+KHN0b3JhZ2VJZGVudGlm
aWVyLnRvVUludDY0KCkpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShpZGVudGlmaWVyKSwgUmVmIHsgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCBiMjllMTAwNjc5NTY5NDkyMjY4NDUwMzI3MWFhYjg1Nzc1
YTVhNWJiLi5mMmVhMTllODIwNmVkMzg5MmYyZjgyOWY3YmM5Yzg1MDI0NzBmOTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5j
bHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llSmFy
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNs
dWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR2FtZXBhZFBy
b3ZpZGVyLmgiCkBAIC0xMjA3LDYgKzEyMDgsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpuZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBjb25uZWMK
ICAgICAgICAgICAgIHBheW1lbnRDb29yZGluYXRvci0+bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKCk7CiAjZW5kaWYKICAgICB9CisKKyAgICAvLyBSZWNyZWF0ZSBhIG5ldyBjb25uZWN0
aW9uIHdpdGggdmFsaWQgSVBDIGNvbm5lY3Rpb24gb24gbmV4dCBvcGVyYXRpb24uCisgICAgaWYg
KG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKSB7CisgICAgICAgIG1fZmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7CisgICAgICAgIG1fZmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
KCkKK3sKKyAgICBpZiAoIW1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKQorICAgICAgICBt
X2ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y3JlYXRlKGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KSk7CisKKyAgICByZXR1cm4gKm1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogfQogCiBX
ZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjM2MDNhZDAyNGIyMWRiODgyZTZkOTJj
N2EwNWYzZTg1YzU3Yjk5NS4uZGY3NmZmOTk4NmYwZmNiYzM0MWRmOGU2MTI1OTU1Nzc2OWJiNTAy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDAsNiArMTQwLDcg
QEAgY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CiBjbGFzcyBXZWJDb29raWVKYXI7CiBj
bGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M7CitjbGFzcyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFz
cyBXZWJGcmFtZTsKIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKQEAg
LTI0NSw2ICsyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKik7CiAgICAgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKiBleGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmdldCgpOyB9CiAgICAgV2ViTG9hZGVyU3RyYXRlZ3km
IHdlYkxvYWRlclN0cmF0ZWd5KCk7CisgICAgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
JiBmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKQEAgLTY1MSw2ICs2NTMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VpUHJvY2Vzc0J1
bmRsZUlkZW50aWZpZXI7CiAgICAgUmVmUHRyPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gbV9u
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgV2ViTG9hZGVyU3RyYXRlZ3kmIG1fd2ViTG9h
ZGVyU3RyYXRlZ3k7CisgICAgUmVmUHRyPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4g
bV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAgICAgUmVmUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439656</attachid>
            <date>2021-09-29 14:15:04 -0700</date>
            <delta_ts>2021-09-29 14:15:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230861-20210929141503.patch</filename>
            <type>text/plain</type>
            <size>99203</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uNGJjOTk0OWUyMDRiMDNkZTRlY2VkMTIyZDEzY2Vj
NmQ5ZWUwYTRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBJbnRyb2R1Y2UgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24gY2xhc3MsIHdo
aWNoIGRpc3BhdGNoZXMgU3RvcmFnZU1hbmFnZXIgdGFzayB0byBtYWluLXRocmVhZCBTdG9yYWdl
Q29ubmVjdGlvbgorICAgICAgICBhbmQgZGlzcGF0Y2hlcyByZXN1bHQgYmFjayB0byB3b3JrZXIg
dGhyZWFkLgorCisgICAgICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlbW92ZUVudHJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpG
aWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmltcGwgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlSW1wbC5oLgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjp+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZp
bGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9X
b3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdjZjI1OTAyMTM2MjIxODhiZjkxZDIxNjc1Li5l
YzcyZWIwNGM1MzZkY2Y5NjA5MDJhNDQ4ZjEyM2U3NTM5N2U0MzQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDIxLTA5LTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDg2MQorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MzYwNjQ2NT4KKworICAgICAgICBSZXBsYWNlIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkgd2l0aCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmlzU2FtZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0
ZXJIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y3JlYXRlSGFuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2Ft
ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRGaWxl
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJl
bW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNv
bHZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3Jp
Z2luU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFn
ZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGYzOTRjZTJkZjNi
YWFkZWI4MzdmODEwYTNlOGEwZjc1NDE5MTYwYi4uY2ZhZjAzYTJkZmIzMDA4NzNkODZmMDA4ZWNl
MjhkMGViMDBlYzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9y
YWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5k
ZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThlNGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQw
MDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUo
U3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSks
IFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkK
LSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwpKQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6
OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwot
ICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRp
b25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhh
bmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVj
dG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVj
dGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUo
Y29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0g
b3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVF
bnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlk
ZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNl
RGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3RyaW5nPj4mJiBwcm9taXNlKQogewotICAgIGlt
cGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZp
ZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEy
YjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0
YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUg
eyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5k
bGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5
KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVt
SGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYp
OwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJl
ZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2Mjdl
YTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZp
bGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGlt
cGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVh
dGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhh
bmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9
CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBu
YW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1I
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVhN2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUw
MDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEyYTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5
c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0
cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkzNGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYu
Ljk3NTc4OTgyNDBiZWQyYTEyNzMxZDhiZGRlYzNkZGI3NjgzNGM5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAgKzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1G
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitG
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDog
bV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8
fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhhbmRsZS5pbXBsKCksIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29u
bmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5kbGUuaWRlbnRpZmllcigpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFmMDY3MDc2ZWQ3M2JmNmZlYTUu
LmVjNDQ2ODdiMDkxNGM1ODNlM2I4MWM0NjM2ZmVlNTk4NDczNzEwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1j
bGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWludDhfdDsKIAogY2xhc3MgRmls
ZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKQEAg
LTQ2LDE3ICs0NywxOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7
IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgaXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5n
JiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFu
ZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9u
YW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9pbXBsOworICAgIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzUx
OTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDhkYTQyMjdjZTBj
YzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVjdXJz
aXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4mJikgPSAwOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2Mzhi
NGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CisKK2NsYXNzIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OworICAgIHVz
aW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIFJlbW92ZUVudHJ5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsK
KyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3Zl
RW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2Fs
bGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAppbmRl
eCAyOWY2NzM2ZWYxMGMxNTkzNjhhOWUzMDgwM2U2NmJmMTMwNTU4ODcyLi4yMmZiZjU5ZTA5ODNm
OWNjNTczYTZkYzczMjVkZjhmODc3MmIxY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMDYyMzhjZGY2OGQw
ZWY1ZWUzYjU1ZmYxYWZjOGU2MTJiMWVjODc2Ni4uN2Y2MzllZDg2NTA4NDg0ZTY3ODQ4MWI5MDAw
ZDI2MTc0OGNhNDRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI1LDEyICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7
CitjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC00MCw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBQZXJzaXN0Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPjsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGVyc2lzdGVkKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFBlcnNpc3RDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBlcnNp
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdXNpbmcgR2V0RGlyZWN0b3J5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPjsKKyAgICB1c2luZyBHZXREaXJlY3RvcnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPj4+KT47CiAg
ICAgdmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgR2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYzY5ZDA1NTBlYTFm
MTViZjVmOTdhNWRmNWNkYWZlNzM1ZmE5MGZjOS4uZDAxMDNhYjQyMmUyYTQxMjYxM2M4NmFiODdi
MTE5YmRkOThkYTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yQmFzZS5oIgpAQCAtMTE5LDcgKzExOSw4IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7
IH0sIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIGlkZW50aWZp
ZXJDb25uZWN0aW9uUGFpciA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7IH0sIGlk
ZW50aWZpZXJDb25uZWN0aW9uUGFpci5maXJzdCwgUmVmeyAqIGlkZW50aWZpZXJDb25uZWN0aW9u
UGFpci5zZWNvbmQgfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAy
OTY5ZGQ2MzBkOTEyZmQ1NDQ5N2JhODE1YjgwMDA1ZGM2ODBkNjAzLi5iYjEyNDFhYzc5OTMzYTYz
NzQyYjQxNzcxZjY4ZTRkNjJiZjgzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ2xpZW50T3JpZ2luLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUltcGwuaCIKICNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5
LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDAyOGU1ZDk1YzY5YjZmNzRhMzUy
ZTMwOWRmOTJlMTA1MTA2YWI3Mi4uZDY5NGVjNmVjZDAzOTU0ZDk4NDEzZTgwMjhlNjRkMTM0YjE3
NzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjgwNSw3ICsyODA1LDYgQEAKIAkJOTMwQUFDOUEyNTBFQjg0OTAwMTNEQTlG
IC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMw
QUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUFDOUQyNTBFRDQwOTAwMTNE
QTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5MzBBQUNBMjI1MEVENDExMDAx
M0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3Vw
aW5nUnVsZS5oICovOyB9OwotCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3Rl
bUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRB
MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUg
LyogbWlzc2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJF
IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVh
UmVzaXplQ29ybmVyLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1p
c3NpbmdJbWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9
OwpAQCAtMjg3NSw2ICsyODc0LDggQEAKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJl
c291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzUwMEYz
MjEzRkRFM0JFMDA5OUVDMjQgLyogTlNTY3JvbGxlckltcERldGFpbHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTAwRjMxMTNGREUzQkUwMDk5RUMy
NCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6
ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJGMjcwM0NB
NTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJD
IC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzNTVFRjUxMjUzQTQyNzkwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTVFRjRG
MjUzQTQyNzgwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVDNDc2MzA5QUM0Q0U2MDBBNkFBQjQg
LyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCAqLzsgfTsKIAkJOTM1QzQ3NjgwOUFDNEQ0MzAwQTZB
QUI0IC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjYwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMTY2Nyw3ICsxMTY2OCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkzNDBB
QSAvKiBTaW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1w
bGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2NEIz
MDA5MzQwQUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzE2RERGRTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4MUE3
RTUgLyogSlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RmlsZVN5c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODEzLDYgKzExODEzLDgg
QEAKIAkJOTM1MDBGMzExM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAv
KiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXplZFN0cmluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1MzY3NkEw
OUFFRDg4QjAwRDM1Q0Q2IC8qIFNjcm9sbFZpZXdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0Mjky
NzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNEYyNTNBNDI3ODAwNkZGNEE0IC8q
IEpTQWJzdHJhY3RSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fi
c3RyYWN0UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNTAyNTNB
NDI3OTAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzU1RUY1MzI1M0E0RDVBMDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJzdHJhY3RSYW5nZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2NSw3ICsyMzM2Nyw4IEBACiAJCQkJOTMy
QzlCRDAyNkRENjI1NTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuY3BwICovLAogCQkJCTkz
MkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi8sCiAJCQkJOTMy
QzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAotCQkJCTkz
MUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICovLAorCQkJ
CTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
ICovLAorCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCAqLywKIAkJCQk5MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1h
bmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1
MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJKTsKQEAgLTMy
NDYwLDcgKzMyNDYzLDggQEAKIAkJCQk4M0ZCMzM3NTFGNTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5
c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0NDNFODcyNkU5OTVDMDAwNTg1
MzhGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4
ODI2RTk5NUM0MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzU0MjQyRjI3MDNDQTUxMDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTQyNDMwMjcwM0NCODYwMDVD
QTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCA1NTAxNDhhYjRhZjg1OWEzYzhm
YzJmOWMwZWVkODk0NWNiZTI1MTVjLi4yMmJjM2VmNGVkMjc4YTE5ZTI0MDZjNzk0MGNmYjZjODM4
ZDkyZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgY29uc3RleHByIGNoYXIgcGF0aFNlcGFyYXRvciA9ICcvJzsKICNlbmRpZgogCiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyJiBtYW5hZ2VyLCBUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5h
bWUpCi0gICAgOiBtX2lkZW50aWZpZXIoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKKyAgICA6IG1faWRlbnRpZmllcihXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiAgICAgLCBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
cGF0aChXVEZNb3ZlKHBhdGgpKQpAQCAtNTgsNyArNTgsNyBAQCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBt
YW5hZwogICAgIH0KIH0KIAotYm9vbCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aXNTYW1lRW50
cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitib29sIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gcGF0aCA9IG1fbWFuYWdlci0+
Z2V0UGF0aChpZGVudGlmaWVyKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkBAIC02Nyw3ICs2
Nyw3IEBAIGJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVuCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRo
OwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRl
SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQorRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5KQogewogICAgIGlmIChtX3R5cGUgIT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCk7CkBAIC04MywxMiArODMsMTIgQEAgRXhw
ZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3QKICAgICByZXR1cm4gbV9tYW5hZ2VyLT5jcmVhdGVIYW5kbGUo
Y29ubmVjdGlvbiwgdHlwZSwgV1RGTW92ZShwYXRoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZO
ZWNlc3NhcnkpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRG
aWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCiB7CiAgICAgcmV0
dXJuIHJlcXVlc3RDcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkZpbGUsIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKIH0KIAot
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICByZXR1cm4gcmVx
dWVzdENyZWF0ZUhhbmRsZShjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlw
ZTo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiB9CkBAIC0x
MjMsNyArMTIzLDcgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1FeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fbWFu
YWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBiMjE5OGRhMjEx
YjgxZTIzNDI4ODE1Y2FlNGE1MjhmZjdjYWY1NGE3Li44Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1
MDcwYTU3MDY0MGFiM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjYsOCAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCi0KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MSwxOSArNDAsMTkgQEAgcHVibGljOgogICAg
IGVudW0gY2xhc3MgVHlwZSA6IGJvb2wgeyBGaWxlLCBEaXJlY3RvcnkgfTsKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXImLCBUeXBlLCBTdHJpbmcm
JiBwYXRoLCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGF0aDsgfQogCi0gICAgYm9vbCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIpOwotICAgIEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNv
bm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
KTsKLSAgICBFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBib29s
IGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJp
bmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0
RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KTsKLSAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzb2x2ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAg
IEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwg
VHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlw
ZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAKLSAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPEZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlcj4gbV9tYW5hZ2VyOwogICAgIFR5cGUgbV90eXBlOwogICAgIFN0
cmluZyBtX3BhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjcxN2U3MWRkODlhYTY0MTI2MmU4
YzUxNDkyMzA1ZWRkM2EyMzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
clR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcAppbmRleCAxZDc5MWJlODMyN2Y5ZTRlNzhlN2EzNjIwZWY1
ZjBlYjAyYWQ3YTc0Li5iODRjZjZjYzhiMTE0OWZiNmFmODBkMWZkNzEyNmQ4NDhhYjYyODBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCkBAIC0zMiwy
MSArMzIsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnk6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0ZXJIYW5kbGUoRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlJiBoYW5kbGUpCit2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6
OnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKCFt
X2hhbmRsZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwogCiAgICAgbV9oYW5kbGVzLmFkZChpZGVu
dGlmaWVyLCBtYWtlV2Vha1B0cihoYW5kbGUpKTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1faGFuZGxlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CiAKICAgICBtX2hhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCi1GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZSogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUqIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OmdldEhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAg
IGlmIChhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5nZXQoaWRlbnRpZmllcikpCiAgICAgICAgIHJl
dHVybiBoYW5kbGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0
cnkuaAppbmRleCBiNmNjNDNjM2FmZjZjMTFjZWYxM2JjM2NjN2YwZjI4ODAyMzI1MDdiLi4yMGE1
MDJmZmZhZmFlYzdiYjEwYTZlY2M5OWVkNGQyN2FjY2M3YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTM3LDEyICszNywxMiBAQCBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KCk7Ci0gICAgdm9pZCByZWdpc3RlckhhbmRsZShGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
Zmllcik7Ci0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUqIGdldEhhbmRsZShGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
CisgICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSogZ2V0SGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgV2Vha1B0cjxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IGZlZGI3ZTIwMjk4Y2RkYzNiOWFlOWQwNDg0NzNmNjZiMGMwZTFkNjMuLjFi
N2E1MWEyZjY4ODQxNWMzOTZiNWI0OGZkYzA1Zjk5NWZjNmQzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6fkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcigpCiAgICAgICAgIG1fcmVnaXN0cnkudW5y
ZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgs
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCitFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSB0eXBlLCBTdHJp
bmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03MCwxNCArNzAsMTQgQEAgRXhwZWN0
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3QKICAgICBhdXRvIG5ld0hhbmRsZSA9IG1ha2VVbmlxdWU8RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU+KCp0aGlzLCB0eXBlLCBXVEZNb3ZlKHBhdGgpLCBXVEZNb3ZlKG5h
bWUpKTsKICAgICBhdXRvIG5ld0hhbmRsZUlkZW50aWZpZXIgPSBuZXdIYW5kbGUtPmlkZW50aWZp
ZXIoKTsKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5zdXJlKGNvbm5lY3Rpb24sIFsmXSB7
Ci0gICAgICAgIHJldHVybiBIYXNoU2V0PEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
cj4geyB9OworICAgICAgICByZXR1cm4gSGFzaFNldDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcj4geyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQobmV3SGFuZGxlSWRl
bnRpZmllcik7CiAgICAgbV9yZWdpc3RyeS5yZWdpc3RlckhhbmRsZShuZXdIYW5kbGVJZGVudGlm
aWVyLCAqbmV3SGFuZGxlKTsKICAgICBtX2hhbmRsZXMuYWRkKG5ld0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUobmV3SGFuZGxlKSk7CiAgICAgcmV0dXJuIG5ld0hhbmRsZUlkZW50aWZpZXI7CiB9
CiAKLWNvbnN0IFN0cmluZyYgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorY29uc3QgU3RyaW5nJiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5m
aW5kKGlkZW50aWZpZXIpOwogICAgIHJldHVybiBoYW5kbGUgPT0gbV9oYW5kbGVzLmVuZCgpID8g
ZW1wdHlTdHJpbmcoKSA6IGhhbmRsZS0+dmFsdWUtPnBhdGgoKTsKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCBjb25uZWMKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3Zl
KGhhbmRsZXMpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKK0V4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAppbmRleCA3N2UzZTg5MTRlNWMwNGEz
ZTEzMGMyY2JhOTVjOTc0MGQ0NmNlMjRiLi44YjQzOGIyZTkzZGY0YTg0NDdjM2I3NzQwYmM1NGM4
N2ZjYTQzMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMzksMTYgKzM5LDE2IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoU3RyaW5nJiYgcGF0aCwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYp
OwogICAgIH5GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIoKTsKIAotICAgIEV4cGVjdGVkPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3Jl
YXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5KTsKLSAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlSGFuZGxlKElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlLCBTdHJpbmcmJiBw
YXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBjb25zdCBT
dHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogCiBw
cml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeSYgbV9yZWdpc3RyeTsKLSAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIEhhc2hTZXQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVz
QnlDb25uZWN0aW9uOwotICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7
CisgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAyN2FiMjNlOGU0
NGU5NjYwNzY4YmRjNzdiMmU2ZjY5YzBkN2M0MTFhLi42N2FlYmE1MjA2YTY2MmM2MWQ5YjBlNTZk
NTU5NTA5Y2IxMmE1MDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTY0LDE0
ICsxNjQsMTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsZWFyU3RvcmFnZUZvclRl
c3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGMKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIob3JpZ2luKS5maWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoKm1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSkuZ2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIHRhcmdldElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTE4Miw3ICsxODIsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1lRW50cnko
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lk
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEZpbGVTeXN0ZQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RmlsZUhhbmRsZShjb25uZWN0aW9uLnVuaXF1
ZUlEKCksIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KSk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcm
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRmls
ZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbm5l
Y3Rpb24udW5pcXVlSUQoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZOZWNlc3NhcnkpKTsKIH0K
IAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVu
dGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlbW92ZUVudHJ5KG5hbWUsIGRlbGV0
ZVJlY3Vyc2l2ZWx5KSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMDJiMmYzNTc3ZmIxMmZkODE2
MTVhOWYwZjU3MzNkOTU4M2ZmNmNiOC4uMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2
MTgwMTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMjcsOSArMjcsOSBAQAogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3Iu
aCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJPcmlnaW5TdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3Jp
Z2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjMs
MTIgKzYzLDEyIEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQg
cGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBn
ZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlc29sdmUoRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBpc1NhbWVFbnRy
eShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGdldERp
cmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgcmVzb2x2ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmlu
Zz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzZiNjk3OTU4OTczZjZhMGM4ZWFkNmVm
M2Y5OTRhMTQxZTNiZmJjMy4uNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiwx
MCArMjYsMTAgQEAKICBtZXNzYWdlcyAtPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgewogICAgIFBl
cnNpc3RlZChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVy
c2lzdGVkKSBBc3luYwogICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBv
cmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKLSAgICBGaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBJc1NhbWVF
bnRyeShXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCi0gICAgR2V0RmlsZUhhbmRsZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVFbnRyeShXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFt
ZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgUmVzb2x2ZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYworICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdh
bnRzQ29ubmVjdGlvbgorICAgIElzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBHZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXREaXJlY3RvcnlIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKKyAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCmluZGV4IGNjZGUxMmI1MmM2NDk1YTRiMTkyMWM4ZDc5MjFkMjc5NDJkODkxMjYuLmE0YzEx
YWQ2NWE1YzE5NzAzYTdjMGU5Mjk0YmMyZmVhYWEyZmZlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzZmRlZGE4YmZjOTQ5YWJh
MWQwOWFlMWVjMWU5NmY3OTU4ZDA1YjhmLi5lZDk0YTNlZTU2NjhhMzQ4YmM3NmFkYmQ0MmI2NTAw
NzFkMWI5NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTI4MSw2ICsyODEsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAgICAgICAnV2ViQ29yZTo6
SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCkBAIC0zMTcsNyArMzE4LDYgQEAgZGVmIHR5cGVzX3Ro
YXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6RGlzcGxh
eUxpbmtPYnNlcnZlcklEJywKICAgICAgICAgJ1dlYktpdDo6RG93bmxvYWRJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3InLAotICAgICAgICAnV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpGb3JtU3Vi
bWl0TGlzdGVuZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNkNzcu
LmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hhcmVh
YmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLjI3ZTg4
ZDMyNTY5NThiNjIwMmU5M2E2NTU5M2ViYzZmYzEwY2E5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlhcmNo
aXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1MjsK
KwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVn
YXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE0ODUsNiArMTQ4NSw3IEBACiAJCTkzM0U4MzVCMjNB
MUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAw
REVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzNDI1
ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIw
MDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJOTM0QjcyNDQx
OUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2
IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgg
Ki87IH07CiAJCTkzNTZGMkRFMjE1MkI3MTAwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRERTIx
NTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovOyB9OwpAQCAtNDk0Miw5ICs0
OTQzLDYgQEAKIAkJOTMxQTA3NTEyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFB
MDc1MjI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MzI2RjA2QUI0MDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTMxQTA3NTcyNkYxMjVBMzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMUEw
NzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTFCRTAyNkY4NUMzMjAwODFB
N0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NzFB
MzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2MCw2ICs0OTU4LDggQEAK
IAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1l
ZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNUI1Nzk5MjZGNTE5MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJl
Z2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVFRUI5NTEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTc1NCw3ICs5NzU0LDYg
QEAKIAkJCQk5MzFBMUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
ci5oICovLAogCQkJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5jcHAgKi8sCiAJCQkJOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmggKi8sCi0JCQkJOTMxQTA3NTcyNkYxMjVBMzAwNDQ3NENEIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNUI1Nzk5MjZGNTE5
MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcCAqLywKIAkJ
CQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oICovLAogCQkJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwICovLApAQCAtMTAwNzQsOCArMTAwNzMsNiBAQAogCQkJCUNENjE3ODEx
MUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0MDA0QjlF
QUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8sCi0J
CQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdCQ0U1IC8qIFNl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1MTk1OUVEMTAwMDA3QkNF
NSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQzQTlDREUyNUQ3MkUyRDAw
OTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8sCkBAIC0xMDEwMSw2ICsx
MDA5OCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQu
aCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNw
cCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50Lmgg
Ki8sCisJCQkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJDMTExQTU4MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkExMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYxMkQ1
NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTEyNzg0LDYg
KzEyNzgzLDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAv
KiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTQyNDJDMjcwM0JEQ0Iw
MDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNDRmZjNlMThmNjZiOGIyYmI1YTdiMmZhY2NlODQ2YTAxNTI4NWRhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCIKLQotI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKLSNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZWY8
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eTo6Y3JlYXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eShpZGVudGlmaWVyLCBjb25uZWN0aW9uKSk7Ci19
Ci0KLUZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLSAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQot
ICAgICwgbV9jb25uZWN0aW9uKCZjb25uZWN0aW9uKQotewotfQotCi12b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHk6OmNvbm5lY3Rpb25DbG9zZWQoKQotewotICAgIG1fY29ubmVjdGlv
biA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6aXNT
YW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rp
b24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuc3RvcmFnZUhh
bmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBpZiAobV9pZGVudGlmaWVyLnRvVUludDY0
KCkgPT0gKmlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVl
KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OklzU2FtZUVudHJ5KG1faWRlbnRpZmllciwgbWFrZU9iamVjdElk
ZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZp
ZXIpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJv
b2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsK
LSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1f
Y29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7
Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKG1faWRlbnRpZmllciwgbmFtZSwgY3JlYXRl
SWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwgbmFtZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJZGVudGlmaWVyID0gcmVz
dWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmllci5pc1ZhbGlkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOwotCi0gICAg
ICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1wbCA9IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVyLCAqY29ubmVjdGlvbik7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkpOwotICAgIH0pOwotfQot
Ci12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJbXBsPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKG1faWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZO
ZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwgbmFtZSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5l
cnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJZGVudGlmaWVyID0gcmVzdWx0
LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmllci5pc1ZhbGlkKCkpCi0gICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOwotCi0gICAgICAg
IFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1wbCA9IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVyLCAqY29ubmVjdGlvbik7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkpOwotICAgIH0pOwotfQotCi12
b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlbW92ZUVudHJ5KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMg
bG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShtX2lkZW50aWZpZXIsIG5hbWUs
IGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IpCi0g
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
Y29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9KTsKLQotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHk6OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpV
bmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAgYXV0byBpZGVudGlm
aWVyID0gaGFuZGxlLnN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgaWYgKCFpZGVudGlm
aWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoVmVjdG9yPFN0cmluZz4geyB9
KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUobV9pZGVudGlmaWVyLCBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPigqaWRlbnRpZmllcikp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgfSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjYzBmYmU1Y2Y2ZWFmN2U1YTNlNTI0Y2I5NDE4OGJh
MjI4NTgxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oPgotCi1uYW1l
c3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKLWNsYXNzIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU7Ci1jbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKLX0KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGwgewotcHVibGljOgotICAgIHN0
YXRpYyBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gY3JlYXRlKEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJik7Ci0gICAgdm9pZCBjb25u
ZWN0aW9uQ2xvc2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYp
OwotCi0gICAgLy8gRmlsZVN5c3RlbUhhbmRsZUltcGwKLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBzdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1faWRlbnRpZmllci50b1VJ
bnQ2NCgpOyB9Ci0gICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpIGZp
bmFsOwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpIGZpbmFsOwotICAg
IHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxS
ZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4mJik+JiYp
IGZpbmFsOwotICAgIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPiYm
KSBmaW5hbDsKLQotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBtX2lkZW50
aWZpZXI7Ci0gICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTRjOTIzOGJkZDJmY2VjODEyOWIwMzA2YjUz
YmJmYjFjN2RmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaCIKKyNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKGNvbm5lY3Rpb24pKTsKK30KKworV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKCZjb25uZWN0
aW9uKQoreworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVj
dGlvbkNsb3NlZCgpCit7CisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKwordm9pZCBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0IiB9KTsKKworICAgIGlmIChpZGVudGlmaWVyID09IG90aGVySWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6SXNTYW1l
RW50cnkoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0Rmls
ZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50
aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3Io
KSkgfSk7CisKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAg
ICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoaWRlbnRpZmllcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9u
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vz
c2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZl
cnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisgICAgICAgIGF1dG8gaWRl
bnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxp
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsK
KworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICB9
KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0
aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50cnkoaWRlbnRpZmllciwg
bmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJv
cikKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOworCisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90
aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNv
bHZlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlv
bikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpSZXNvbHZlKGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0
LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwMWJl
NjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzkyMzBjMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgorCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKK2NsYXNzIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU7CitjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVh
dGUoSVBDOjpDb25uZWN0aW9uJik7CisgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpOworCisgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAg
dm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9pZCBnZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CisgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYm
KTsKKworICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
NjNlNjYyOWRjYmRkNzZmOTY4ZjRlNzhiMjRjNDkzZWQ1MDIyNWZiMy4uMmFjYjVmYWFmM2Y0NmQ3
Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25P
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ1LDIzICs0NiwyNCBAQCB2b2lkIFdlYlN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmln
aW4sIFN0bwogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6UGVyc2lzdGVkKG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OnBl
cnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0
aW9uOjpQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OlBlcnNpc3Qob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdl
dERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNv
bm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKGNvbm5l
Y3Rpb24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShv
cmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKIAotICAgICAgICBpZiAoIXdlYWtDb25u
ZWN0aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCisgICAgICAgIGF1dG8gaWRlbnRp
ZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgp
KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsKIAot
ICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUocmVzdWx0LnZhbHVlKCksICp3ZWFrQ29ubmVj
dGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGltcGwpKTsK
KyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gUmVmUHRyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4geyAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkgfTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6
cGFpciB7IGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikgfSk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBiMjllMTAwNjc5NTY5
NDkyMjY4NDUwMzI3MWFhYjg1Nzc1YTVhNWJiLi5mMmVhMTllODIwNmVkMzg5MmYyZjgyOWY3YmM5
Yzg1MDI0NzBmOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiV2ViQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC0xMjA3LDYgKzEyMDgsMjAgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKiBjb25uZWMKICAgICAgICAgICAgIHBheW1lbnRDb29yZGluYXRvci0+bmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCk7CiAjZW5kaWYKICAgICB9CisKKyAgICAvLyBS
ZWNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHdpdGggdmFsaWQgSVBDIGNvbm5lY3Rpb24gb24gbmV4
dCBvcGVyYXRpb24uCisgICAgaWYgKG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKSB7Cisg
ICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7
CisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKK1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKQorICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA9IFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICByZXR1cm4gKm1fZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOwogfQogCiBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9h
ZGVyU3RyYXRlZ3koKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjM2
MDNhZDAyNGIyMWRiODgyZTZkOTJjN2EwNWYzZTg1YzU3Yjk5NS4uZGY3NmZmOTk4NmYwZmNiYzM0
MWRmOGU2MTI1OTU1Nzc2OWJiNTAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC0xNDAsNiArMTQwLDcgQEAgY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CiBj
bGFzcyBXZWJDb29raWVKYXI7CiBjbGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7
CiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CitjbGFzcyBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5
OwogY2xhc3MgV2ViUGFnZTsKQEAgLTI0NSw2ICsyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKik7
CiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBleGlzdGluZ05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmdldCgpOyB9CiAg
ICAgV2ViTG9hZGVyU3RyYXRlZ3kmIHdlYkxvYWRlclN0cmF0ZWd5KCk7CisgICAgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKQEAgLTY1MSw2ICs2NTMsNyBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAgUmVmUHRyPE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbj4gbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgV2ViTG9h
ZGVyU3RyYXRlZ3kmIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CisgICAgUmVmUHRyPFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVmUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439657</attachid>
            <date>2021-09-29 14:15:25 -0700</date>
            <delta_ts>2021-09-29 14:16:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230861-20210929141524.patch</filename>
            <type>text/plain</type>
            <size>99203</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uNGJjOTk0OWUyMDRiMDNkZTRlY2VkMTIyZDEzY2Vj
NmQ5ZWUwYTRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBJbnRyb2R1Y2UgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24gY2xhc3MsIHdo
aWNoIGRpc3BhdGNoZXMgU3RvcmFnZU1hbmFnZXIgdGFzayB0byBtYWluLXRocmVhZCBTdG9yYWdl
Q29ubmVjdGlvbgorICAgICAgICBhbmQgZGlzcGF0Y2hlcyByZXN1bHQgYmFjayB0byB3b3JrZXIg
dGhyZWFkLgorCisgICAgICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlbW92ZUVudHJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpG
aWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmltcGwgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlSW1wbC5oLgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjp+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZp
bGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9X
b3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdjZjI1OTAyMTM2MjIxODhiZjkxZDIxNjc1Li5l
ODY0YjYyZmY3YTVkNGM1MzM0Y2QxMGU3ZDkxNzhiMzRkYmJmYTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDIxLTA5LTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBSZXBsYWNlIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkgd2l0aCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmlzU2FtZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0
ZXJIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y3JlYXRlSGFuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2Ft
ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRGaWxl
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJl
bW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNv
bHZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3Jp
Z2luU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFn
ZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGYzOTRjZTJkZjNi
YWFkZWI4MzdmODEwYTNlOGEwZjc1NDE5MTYwYi4uY2ZhZjAzYTJkZmIzMDA4NzNkODZmMDA4ZWNl
MjhkMGViMDBlYzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9y
YWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5k
ZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThlNGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQw
MDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUo
U3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSks
IFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkK
LSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwpKQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6
OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwot
ICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRp
b25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhh
bmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVj
dG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVj
dGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUo
Y29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0g
b3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVF
bnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlk
ZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNl
RGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3RyaW5nPj4mJiBwcm9taXNlKQogewotICAgIGlt
cGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZp
ZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEy
YjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0
YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUg
eyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5k
bGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5
KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVt
SGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYp
OwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJl
ZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2Mjdl
YTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZp
bGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGlt
cGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVh
dGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhh
bmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9
CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBu
YW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1I
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVhN2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUw
MDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEyYTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5
c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0
cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkzNGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYu
Ljk3NTc4OTgyNDBiZWQyYTEyNzMxZDhiZGRlYzNkZGI3NjgzNGM5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAgKzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1G
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitG
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDog
bV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8
fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhhbmRsZS5pbXBsKCksIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29u
bmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5kbGUuaWRlbnRpZmllcigpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFmMDY3MDc2ZWQ3M2JmNmZlYTUu
LmVjNDQ2ODdiMDkxNGM1ODNlM2I4MWM0NjM2ZmVlNTk4NDczNzEwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1j
bGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWludDhfdDsKIAogY2xhc3MgRmls
ZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKQEAg
LTQ2LDE3ICs0NywxOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7
IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgaXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5n
JiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFu
ZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9u
YW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9pbXBsOworICAgIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzUx
OTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDhkYTQyMjdjZTBj
YzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVjdXJz
aXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4mJikgPSAwOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2Mzhi
NGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CisKK2NsYXNzIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OworICAgIHVz
aW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIFJlbW92ZUVudHJ5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsK
KyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3Zl
RW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2Fs
bGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAppbmRl
eCAyOWY2NzM2ZWYxMGMxNTkzNjhhOWUzMDgwM2U2NmJmMTMwNTU4ODcyLi4yMmZiZjU5ZTA5ODNm
OWNjNTczYTZkYzczMjVkZjhmODc3MmIxY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMDYyMzhjZGY2OGQw
ZWY1ZWUzYjU1ZmYxYWZjOGU2MTJiMWVjODc2Ni4uN2Y2MzllZDg2NTA4NDg0ZTY3ODQ4MWI5MDAw
ZDI2MTc0OGNhNDRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI1LDEyICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7
CitjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC00MCw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBQZXJzaXN0Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPjsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGVyc2lzdGVkKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFBlcnNpc3RDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBlcnNp
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdXNpbmcgR2V0RGlyZWN0b3J5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPjsKKyAgICB1c2luZyBHZXREaXJlY3RvcnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPj4+KT47CiAg
ICAgdmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgR2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYzY5ZDA1NTBlYTFm
MTViZjVmOTdhNWRmNWNkYWZlNzM1ZmE5MGZjOS4uZDAxMDNhYjQyMmUyYTQxMjYxM2M4NmFiODdi
MTE5YmRkOThkYTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yQmFzZS5oIgpAQCAtMTE5LDcgKzExOSw4IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7
IH0sIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIGlkZW50aWZp
ZXJDb25uZWN0aW9uUGFpciA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7IH0sIGlk
ZW50aWZpZXJDb25uZWN0aW9uUGFpci5maXJzdCwgUmVmeyAqIGlkZW50aWZpZXJDb25uZWN0aW9u
UGFpci5zZWNvbmQgfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAy
OTY5ZGQ2MzBkOTEyZmQ1NDQ5N2JhODE1YjgwMDA1ZGM2ODBkNjAzLi5iYjEyNDFhYzc5OTMzYTYz
NzQyYjQxNzcxZjY4ZTRkNjJiZjgzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ2xpZW50T3JpZ2luLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUltcGwuaCIKICNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5
LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDAyOGU1ZDk1YzY5YjZmNzRhMzUy
ZTMwOWRmOTJlMTA1MTA2YWI3Mi4uZDY5NGVjNmVjZDAzOTU0ZDk4NDEzZTgwMjhlNjRkMTM0YjE3
NzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjgwNSw3ICsyODA1LDYgQEAKIAkJOTMwQUFDOUEyNTBFQjg0OTAwMTNEQTlG
IC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMw
QUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUFDOUQyNTBFRDQwOTAwMTNE
QTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5MzBBQUNBMjI1MEVENDExMDAx
M0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3Vw
aW5nUnVsZS5oICovOyB9OwotCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3Rl
bUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRB
MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUg
LyogbWlzc2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJF
IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVh
UmVzaXplQ29ybmVyLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1p
c3NpbmdJbWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9
OwpAQCAtMjg3NSw2ICsyODc0LDggQEAKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJl
c291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzUwMEYz
MjEzRkRFM0JFMDA5OUVDMjQgLyogTlNTY3JvbGxlckltcERldGFpbHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTAwRjMxMTNGREUzQkUwMDk5RUMy
NCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6
ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJGMjcwM0NB
NTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJD
IC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzNTVFRjUxMjUzQTQyNzkwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTVFRjRG
MjUzQTQyNzgwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVDNDc2MzA5QUM0Q0U2MDBBNkFBQjQg
LyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCAqLzsgfTsKIAkJOTM1QzQ3NjgwOUFDNEQ0MzAwQTZB
QUI0IC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjYwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMTY2Nyw3ICsxMTY2OCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkzNDBB
QSAvKiBTaW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1w
bGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2NEIz
MDA5MzQwQUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzE2RERGRTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4MUE3
RTUgLyogSlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RmlsZVN5c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODEzLDYgKzExODEzLDgg
QEAKIAkJOTM1MDBGMzExM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAv
KiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXplZFN0cmluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1MzY3NkEw
OUFFRDg4QjAwRDM1Q0Q2IC8qIFNjcm9sbFZpZXdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0Mjky
NzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNEYyNTNBNDI3ODAwNkZGNEE0IC8q
IEpTQWJzdHJhY3RSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fi
c3RyYWN0UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNTAyNTNB
NDI3OTAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzU1RUY1MzI1M0E0RDVBMDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJzdHJhY3RSYW5nZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2NSw3ICsyMzM2Nyw4IEBACiAJCQkJOTMy
QzlCRDAyNkRENjI1NTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuY3BwICovLAogCQkJCTkz
MkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi8sCiAJCQkJOTMy
QzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAotCQkJCTkz
MUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICovLAorCQkJ
CTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
ICovLAorCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCAqLywKIAkJCQk5MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1h
bmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1
MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJKTsKQEAgLTMy
NDYwLDcgKzMyNDYzLDggQEAKIAkJCQk4M0ZCMzM3NTFGNTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5
c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0NDNFODcyNkU5OTVDMDAwNTg1
MzhGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4
ODI2RTk5NUM0MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzU0MjQyRjI3MDNDQTUxMDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTQyNDMwMjcwM0NCODYwMDVD
QTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCA1NTAxNDhhYjRhZjg1OWEzYzhm
YzJmOWMwZWVkODk0NWNiZTI1MTVjLi4yMmJjM2VmNGVkMjc4YTE5ZTI0MDZjNzk0MGNmYjZjODM4
ZDkyZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgY29uc3RleHByIGNoYXIgcGF0aFNlcGFyYXRvciA9ICcvJzsKICNlbmRpZgogCiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyJiBtYW5hZ2VyLCBUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5h
bWUpCi0gICAgOiBtX2lkZW50aWZpZXIoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKKyAgICA6IG1faWRlbnRpZmllcihXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiAgICAgLCBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
cGF0aChXVEZNb3ZlKHBhdGgpKQpAQCAtNTgsNyArNTgsNyBAQCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBt
YW5hZwogICAgIH0KIH0KIAotYm9vbCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aXNTYW1lRW50
cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitib29sIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gcGF0aCA9IG1fbWFuYWdlci0+
Z2V0UGF0aChpZGVudGlmaWVyKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkBAIC02Nyw3ICs2
Nyw3IEBAIGJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVuCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRo
OwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRl
SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQorRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5KQogewogICAgIGlmIChtX3R5cGUgIT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCk7CkBAIC04MywxMiArODMsMTIgQEAgRXhw
ZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3QKICAgICByZXR1cm4gbV9tYW5hZ2VyLT5jcmVhdGVIYW5kbGUo
Y29ubmVjdGlvbiwgdHlwZSwgV1RGTW92ZShwYXRoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZO
ZWNlc3NhcnkpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRG
aWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCiB7CiAgICAgcmV0
dXJuIHJlcXVlc3RDcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkZpbGUsIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKIH0KIAot
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICByZXR1cm4gcmVx
dWVzdENyZWF0ZUhhbmRsZShjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlw
ZTo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiB9CkBAIC0x
MjMsNyArMTIzLDcgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1FeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fbWFu
YWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBiMjE5OGRhMjEx
YjgxZTIzNDI4ODE1Y2FlNGE1MjhmZjdjYWY1NGE3Li44Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1
MDcwYTU3MDY0MGFiM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjYsOCAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCi0KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MSwxOSArNDAsMTkgQEAgcHVibGljOgogICAg
IGVudW0gY2xhc3MgVHlwZSA6IGJvb2wgeyBGaWxlLCBEaXJlY3RvcnkgfTsKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXImLCBUeXBlLCBTdHJpbmcm
JiBwYXRoLCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGF0aDsgfQogCi0gICAgYm9vbCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIpOwotICAgIEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNv
bm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
KTsKLSAgICBFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBib29s
IGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJp
bmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0
RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KTsKLSAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzb2x2ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAg
IEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwg
VHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlw
ZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAKLSAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPEZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlcj4gbV9tYW5hZ2VyOwogICAgIFR5cGUgbV90eXBlOwogICAgIFN0
cmluZyBtX3BhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjcxN2U3MWRkODlhYTY0MTI2MmU4
YzUxNDkyMzA1ZWRkM2EyMzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
clR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcAppbmRleCAxZDc5MWJlODMyN2Y5ZTRlNzhlN2EzNjIwZWY1
ZjBlYjAyYWQ3YTc0Li5iODRjZjZjYzhiMTE0OWZiNmFmODBkMWZkNzEyNmQ4NDhhYjYyODBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCkBAIC0zMiwy
MSArMzIsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnk6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0ZXJIYW5kbGUoRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlJiBoYW5kbGUpCit2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6
OnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKCFt
X2hhbmRsZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwogCiAgICAgbV9oYW5kbGVzLmFkZChpZGVu
dGlmaWVyLCBtYWtlV2Vha1B0cihoYW5kbGUpKTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1faGFuZGxlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CiAKICAgICBtX2hhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCi1GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZSogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUqIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OmdldEhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAg
IGlmIChhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5nZXQoaWRlbnRpZmllcikpCiAgICAgICAgIHJl
dHVybiBoYW5kbGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0
cnkuaAppbmRleCBiNmNjNDNjM2FmZjZjMTFjZWYxM2JjM2NjN2YwZjI4ODAyMzI1MDdiLi4yMGE1
MDJmZmZhZmFlYzdiYjEwYTZlY2M5OWVkNGQyN2FjY2M3YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTM3LDEyICszNywxMiBAQCBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KCk7Ci0gICAgdm9pZCByZWdpc3RlckhhbmRsZShGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
Zmllcik7Ci0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUqIGdldEhhbmRsZShGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
CisgICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSogZ2V0SGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgV2Vha1B0cjxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IGZlZGI3ZTIwMjk4Y2RkYzNiOWFlOWQwNDg0NzNmNjZiMGMwZTFkNjMuLjFi
N2E1MWEyZjY4ODQxNWMzOTZiNWI0OGZkYzA1Zjk5NWZjNmQzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6fkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcigpCiAgICAgICAgIG1fcmVnaXN0cnkudW5y
ZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgs
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCitFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSB0eXBlLCBTdHJp
bmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03MCwxNCArNzAsMTQgQEAgRXhwZWN0
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3QKICAgICBhdXRvIG5ld0hhbmRsZSA9IG1ha2VVbmlxdWU8RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU+KCp0aGlzLCB0eXBlLCBXVEZNb3ZlKHBhdGgpLCBXVEZNb3ZlKG5h
bWUpKTsKICAgICBhdXRvIG5ld0hhbmRsZUlkZW50aWZpZXIgPSBuZXdIYW5kbGUtPmlkZW50aWZp
ZXIoKTsKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5zdXJlKGNvbm5lY3Rpb24sIFsmXSB7
Ci0gICAgICAgIHJldHVybiBIYXNoU2V0PEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
cj4geyB9OworICAgICAgICByZXR1cm4gSGFzaFNldDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcj4geyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQobmV3SGFuZGxlSWRl
bnRpZmllcik7CiAgICAgbV9yZWdpc3RyeS5yZWdpc3RlckhhbmRsZShuZXdIYW5kbGVJZGVudGlm
aWVyLCAqbmV3SGFuZGxlKTsKICAgICBtX2hhbmRsZXMuYWRkKG5ld0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUobmV3SGFuZGxlKSk7CiAgICAgcmV0dXJuIG5ld0hhbmRsZUlkZW50aWZpZXI7CiB9
CiAKLWNvbnN0IFN0cmluZyYgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorY29uc3QgU3RyaW5nJiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5m
aW5kKGlkZW50aWZpZXIpOwogICAgIHJldHVybiBoYW5kbGUgPT0gbV9oYW5kbGVzLmVuZCgpID8g
ZW1wdHlTdHJpbmcoKSA6IGhhbmRsZS0+dmFsdWUtPnBhdGgoKTsKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCBjb25uZWMKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3Zl
KGhhbmRsZXMpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKK0V4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAppbmRleCA3N2UzZTg5MTRlNWMwNGEz
ZTEzMGMyY2JhOTVjOTc0MGQ0NmNlMjRiLi44YjQzOGIyZTkzZGY0YTg0NDdjM2I3NzQwYmM1NGM4
N2ZjYTQzMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMzksMTYgKzM5LDE2IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoU3RyaW5nJiYgcGF0aCwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYp
OwogICAgIH5GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIoKTsKIAotICAgIEV4cGVjdGVkPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3Jl
YXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5KTsKLSAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlSGFuZGxlKElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlLCBTdHJpbmcmJiBw
YXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBjb25zdCBT
dHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogCiBw
cml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeSYgbV9yZWdpc3RyeTsKLSAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIEhhc2hTZXQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVz
QnlDb25uZWN0aW9uOwotICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7
CisgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAyN2FiMjNlOGU0
NGU5NjYwNzY4YmRjNzdiMmU2ZjY5YzBkN2M0MTFhLi42N2FlYmE1MjA2YTY2MmM2MWQ5YjBlNTZk
NTU5NTA5Y2IxMmE1MDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTY0LDE0
ICsxNjQsMTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsZWFyU3RvcmFnZUZvclRl
c3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGMKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIob3JpZ2luKS5maWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoKm1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSkuZ2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIHRhcmdldElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTE4Miw3ICsxODIsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1lRW50cnko
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lk
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEZpbGVTeXN0ZQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RmlsZUhhbmRsZShjb25uZWN0aW9uLnVuaXF1
ZUlEKCksIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KSk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcm
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRmls
ZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbm5l
Y3Rpb24udW5pcXVlSUQoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZOZWNlc3NhcnkpKTsKIH0K
IAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVu
dGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlbW92ZUVudHJ5KG5hbWUsIGRlbGV0
ZVJlY3Vyc2l2ZWx5KSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMDJiMmYzNTc3ZmIxMmZkODE2
MTVhOWYwZjU3MzNkOTU4M2ZmNmNiOC4uMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2
MTgwMTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMjcsOSArMjcsOSBAQAogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3Iu
aCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJPcmlnaW5TdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3Jp
Z2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjMs
MTIgKzYzLDEyIEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQg
cGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBn
ZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlc29sdmUoRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBpc1NhbWVFbnRy
eShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGdldERp
cmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgcmVzb2x2ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmlu
Zz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzZiNjk3OTU4OTczZjZhMGM4ZWFkNmVm
M2Y5OTRhMTQxZTNiZmJjMy4uNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiwx
MCArMjYsMTAgQEAKICBtZXNzYWdlcyAtPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgewogICAgIFBl
cnNpc3RlZChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVy
c2lzdGVkKSBBc3luYwogICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBv
cmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKLSAgICBGaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBJc1NhbWVF
bnRyeShXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCi0gICAgR2V0RmlsZUhhbmRsZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVFbnRyeShXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFt
ZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgUmVzb2x2ZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYworICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdh
bnRzQ29ubmVjdGlvbgorICAgIElzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBHZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXREaXJlY3RvcnlIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKKyAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCmluZGV4IGNjZGUxMmI1MmM2NDk1YTRiMTkyMWM4ZDc5MjFkMjc5NDJkODkxMjYuLmE0YzEx
YWQ2NWE1YzE5NzAzYTdjMGU5Mjk0YmMyZmVhYWEyZmZlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzZmRlZGE4YmZjOTQ5YWJh
MWQwOWFlMWVjMWU5NmY3OTU4ZDA1YjhmLi5lZDk0YTNlZTU2NjhhMzQ4YmM3NmFkYmQ0MmI2NTAw
NzFkMWI5NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTI4MSw2ICsyODEsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAgICAgICAnV2ViQ29yZTo6
SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCkBAIC0zMTcsNyArMzE4LDYgQEAgZGVmIHR5cGVzX3Ro
YXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6RGlzcGxh
eUxpbmtPYnNlcnZlcklEJywKICAgICAgICAgJ1dlYktpdDo6RG93bmxvYWRJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3InLAotICAgICAgICAnV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpGb3JtU3Vi
bWl0TGlzdGVuZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNkNzcu
LmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hhcmVh
YmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLjI3ZTg4
ZDMyNTY5NThiNjIwMmU5M2E2NTU5M2ViYzZmYzEwY2E5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMyw3ICszLDcgQEAKIAlhcmNo
aXZlVmVyc2lvbiA9IDE7CiAJY2xhc3NlcyA9IHsKIAl9OwotCW9iamVjdFZlcnNpb24gPSA1MjsK
KwlvYmplY3RWZXJzaW9uID0gNTQ7CiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVn
YXRlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTE0ODUsNiArMTQ4NSw3IEBACiAJCTkzM0U4MzVCMjNB
MUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAw
REVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzNDI1
ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIw
MDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJOTM0QjcyNDQx
OUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2
IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgg
Ki87IH07CiAJCTkzNTZGMkRFMjE1MkI3MTAwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRERTIx
NTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovOyB9OwpAQCAtNDk0Miw5ICs0
OTQzLDYgQEAKIAkJOTMxQTA3NTEyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFB
MDc1MjI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MzI2RjA2QUI0MDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTMxQTA3NTcyNkYxMjVBMzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMUEw
NzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTFCRTAyNkY4NUMzMjAwODFB
N0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NzFB
MzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2MCw2ICs0OTU4LDggQEAK
IAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1l
ZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNUI1Nzk5MjZGNTE5MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJl
Z2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVFRUI5NTEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTc1NCw3ICs5NzU0LDYg
QEAKIAkJCQk5MzFBMUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
ci5oICovLAogCQkJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5jcHAgKi8sCiAJCQkJOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmggKi8sCi0JCQkJOTMxQTA3NTcyNkYxMjVBMzAwNDQ3NENEIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNUI1Nzk5MjZGNTE5
MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcCAqLywKIAkJ
CQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oICovLAogCQkJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwICovLApAQCAtMTAwNzQsOCArMTAwNzMsNiBAQAogCQkJCUNENjE3ODEx
MUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0MDA0QjlF
QUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMgKi8sCi0J
CQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdCQ0U1IC8qIFNl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1MTk1OUVEMTAwMDA3QkNF
NSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQzQTlDREUyNUQ3MkUyRDAw
OTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8sCkBAIC0xMDEwMSw2ICsx
MDA5OCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQu
aCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyogV2ViRWRpdG9yQ2xpZW50LmNw
cCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRWRpdG9yQ2xpZW50Lmgg
Ki8sCisJCQkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJDMTExQTU4MTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkExMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYxMkQ1
NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTEyNzg0LDYg
KzEyNzgzLDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENv
bnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAv
KiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTQyNDJDMjcwM0JEQ0Iw
MDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3Jt
U3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNDRmZjNlMThmNjZiOGIyYmI1YTdiMmZhY2NlODQ2YTAxNTI4NWRhLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCIKLQotI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKLSNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZWY8
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eTo6Y3JlYXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eShpZGVudGlmaWVyLCBjb25uZWN0aW9uKSk7Ci19
Ci0KLUZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLSAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQot
ICAgICwgbV9jb25uZWN0aW9uKCZjb25uZWN0aW9uKQotewotfQotCi12b2lkIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHk6OmNvbm5lY3Rpb25DbG9zZWQoKQotewotICAgIG1fY29ubmVjdGlv
biA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6aXNT
YW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rp
b24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuc3RvcmFnZUhh
bmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBpZiAobV9pZGVudGlmaWVyLnRvVUludDY0
KCkgPT0gKmlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih0cnVl
KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OklzU2FtZUVudHJ5KG1faWRlbnRpZmllciwgbWFrZU9iamVjdElk
ZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyVHlwZT4oKmlkZW50aWZp
ZXIpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJv
b2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsK
LSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1f
Y29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7
Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKG1faWRlbnRpZmllciwgbmFtZSwgY3JlYXRl
SWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwgbmFtZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3Vs
dC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJZGVudGlmaWVyID0gcmVz
dWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmllci5pc1ZhbGlkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOwotCi0gICAg
ICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1wbCA9IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVyLCAqY29ubmVjdGlvbik7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkpOwotICAgIH0pOwotfQot
Ci12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmdldERpcmVjdG9yeUhhbmRsZShj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJbXBsPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKG1faWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZO
ZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwgbmFtZSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5l
cnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJZGVudGlmaWVyID0gcmVzdWx0
LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmllci5pc1ZhbGlkKCkpCi0gICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOwotCi0gICAgICAg
IFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1wbCA9IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVyLCAqY29ubmVjdGlvbik7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkpOwotICAgIH0pOwotfQotCi12
b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlbW92ZUVudHJ5KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMg
bG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShtX2lkZW50aWZpZXIsIG5hbWUs
IGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3IpCi0g
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
Y29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9KTsKLQotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlUHJveHk6OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpV
bmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0gICAgYXV0byBpZGVudGlm
aWVyID0gaGFuZGxlLnN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgaWYgKCFpZGVudGlm
aWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoVmVjdG9yPFN0cmluZz4geyB9
KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUobV9pZGVudGlmaWVyLCBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBlPigqaWRlbnRpZmllcikp
LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgfSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjYzBmYmU1Y2Y2ZWFmN2U1YTNlNTI0Y2I5NDE4OGJh
MjI4NTgxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oPgotCi1uYW1l
c3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKLWNsYXNzIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU7Ci1jbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKLX0KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGwgewotcHVibGljOgotICAgIHN0
YXRpYyBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gY3JlYXRlKEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJik7Ci0gICAgdm9pZCBjb25u
ZWN0aW9uQ2xvc2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYp
OwotCi0gICAgLy8gRmlsZVN5c3RlbUhhbmRsZUltcGwKLSAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2
NF90PiBzdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1faWRlbnRpZmllci50b1VJ
bnQ2NCgpOyB9Ci0gICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpIGZp
bmFsOwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYpIGZpbmFsOwotICAg
IHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxS
ZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4mJik+JiYp
IGZpbmFsOwotICAgIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPiYm
KSBmaW5hbDsKLQotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBtX2lkZW50
aWZpZXI7Ci0gICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTRjOTIzOGJkZDJmY2VjODEyOWIwMzA2YjUz
YmJmYjFjN2RmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMCww
ICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaCIKKyNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKGNvbm5lY3Rpb24pKTsKK30KKworV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uKCZjb25uZWN0
aW9uKQoreworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVj
dGlvbkNsb3NlZCgpCit7CisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKK30KKwordm9pZCBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0IiB9KTsKKworICAgIGlmIChpZGVudGlmaWVyID09IG90aGVySWRlbnRpZmllcikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6SXNTYW1l
RW50cnkoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0Rmls
ZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50
aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3Io
KSkgfSk7CisKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAg
ICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoaWRlbnRpZmllcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9u
KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vz
c2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZl
cnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisgICAgICAgIGF1dG8gaWRl
bnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxp
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2Vw
dGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsK
KworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICB9
KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0
aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50cnkoaWRlbnRpZmllciwg
bmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJv
cikKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOworCisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90
aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNv
bHZlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlv
bikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7
IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpSZXNvbHZlKGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0
LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0
LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwMWJl
NjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzkyMzBjMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgorCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKK2NsYXNzIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU7CitjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24geworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVh
dGUoSVBDOjpDb25uZWN0aW9uJik7CisgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpOworCisgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAg
dm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CisgICAgdm9pZCBnZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CisgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYm
KTsKKworICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
NjNlNjYyOWRjYmRkNzZmOTY4ZjRlNzhiMjRjNDkzZWQ1MDIyNWZiMy4uMmFjYjVmYWFmM2Y0NmQ3
Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25P
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ1LDIzICs0NiwyNCBAQCB2b2lkIFdlYlN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmln
aW4sIFN0bwogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6UGVyc2lzdGVkKG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OnBl
cnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0
aW9uOjpQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OlBlcnNpc3Qob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdl
dERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNv
bm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1ha2VXZWFrUHRyKGNvbm5l
Y3Rpb24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShv
cmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9F
eGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKIAotICAgICAgICBpZiAoIXdlYWtDb25u
ZWN0aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCisgICAgICAgIGF1dG8gaWRlbnRp
ZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNWYWxpZCgp
KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCJfcyB9KTsKIAot
ICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+IGltcGwgPSBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUocmVzdWx0LnZhbHVlKCksICp3ZWFrQ29ubmVj
dGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGltcGwpKTsK
KyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gUmVmUHRyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4geyAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkgfTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6
cGFpciB7IGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikgfSk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBiMjllMTAwNjc5NTY5
NDkyMjY4NDUwMzI3MWFhYjg1Nzc1YTVhNWJiLi5mMmVhMTllODIwNmVkMzg5MmYyZjgyOWY3YmM5
Yzg1MDI0NzBmOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBA
IC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgiCiAj
aW5jbHVkZSAiV2ViQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC0xMjA3LDYgKzEyMDgsMjAgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKiBjb25uZWMKICAgICAgICAgICAgIHBheW1lbnRDb29yZGluYXRvci0+bmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCk7CiAjZW5kaWYKICAgICB9CisKKyAgICAvLyBS
ZWNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHdpdGggdmFsaWQgSVBDIGNvbm5lY3Rpb24gb24gbmV4
dCBvcGVyYXRpb24uCisgICAgaWYgKG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKSB7Cisg
ICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7
CisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0gbnVsbHB0cjsKKyAgICB9
Cit9CisKK1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKQorICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA9IFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICByZXR1cm4gKm1fZmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOwogfQogCiBXZWJMb2FkZXJTdHJhdGVneSYgV2ViUHJvY2Vzczo6d2ViTG9h
ZGVyU3RyYXRlZ3koKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZjM2
MDNhZDAyNGIyMWRiODgyZTZkOTJjN2EwNWYzZTg1YzU3Yjk5NS4uZGY3NmZmOTk4NmYwZmNiYzM0
MWRmOGU2MTI1OTU1Nzc2OWJiNTAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCkBAIC0xNDAsNiArMTQwLDcgQEAgY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CiBj
bGFzcyBXZWJDb29raWVKYXI7CiBjbGFzcyBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7
CiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CitjbGFzcyBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5
OwogY2xhc3MgV2ViUGFnZTsKQEAgLTI0NSw2ICsyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKik7
CiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBleGlzdGluZ05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmdldCgpOyB9CiAg
ICAgV2ViTG9hZGVyU3RyYXRlZ3kmIHdlYkxvYWRlclN0cmF0ZWd5KCk7CisgICAgV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKQEAgLTY1MSw2ICs2NTMsNyBAQCBwcml2YXRlOgogICAg
IFN0cmluZyBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAgUmVmUHRyPE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbj4gbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgV2ViTG9h
ZGVyU3RyYXRlZ3kmIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CisgICAgUmVmUHRyPFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVmUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439658</attachid>
            <date>2021-09-29 14:16:40 -0700</date>
            <delta_ts>2021-09-29 14:39:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230861-20210929141639.patch</filename>
            <type>text/plain</type>
            <size>99046</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uNGJjOTk0OWUyMDRiMDNkZTRlY2VkMTIyZDEzY2Vj
NmQ5ZWUwYTRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBJbnRyb2R1Y2UgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24gY2xhc3MsIHdo
aWNoIGRpc3BhdGNoZXMgU3RvcmFnZU1hbmFnZXIgdGFzayB0byBtYWluLXRocmVhZCBTdG9yYWdl
Q29ubmVjdGlvbgorICAgICAgICBhbmQgZGlzcGF0Y2hlcyByZXN1bHQgYmFjayB0byB3b3JrZXIg
dGhyZWFkLgorCisgICAgICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlbW92ZUVudHJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpG
aWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmltcGwgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlSW1wbC5oLgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjp+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZp
bGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9X
b3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdjZjI1OTAyMTM2MjIxODhiZjkxZDIxNjc1Li5l
ODY0YjYyZmY3YTVkNGM1MzM0Y2QxMGU3ZDkxNzhiMzRkYmJmYTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDIxLTA5LTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBSZXBsYWNlIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkgd2l0aCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmlzU2FtZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0
ZXJIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y3JlYXRlSGFuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2Ft
ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRGaWxl
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJl
bW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNv
bHZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3Jp
Z2luU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFn
ZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGYzOTRjZTJkZjNi
YWFkZWI4MzdmODEwYTNlOGEwZjc1NDE5MTYwYi4uY2ZhZjAzYTJkZmIzMDA4NzNkODZmMDA4ZWNl
MjhkMGViMDBlYzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9y
YWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5k
ZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThlNGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQw
MDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUo
U3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSks
IFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkK
LSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwpKQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6
OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwot
ICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRp
b25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhh
bmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVj
dG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVj
dGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUo
Y29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0g
b3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVF
bnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlk
ZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNl
RGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3RyaW5nPj4mJiBwcm9taXNlKQogewotICAgIGlt
cGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZp
ZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEy
YjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0
YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUg
eyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5k
bGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5
KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVt
SGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYp
OwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJl
ZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2Mjdl
YTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZp
bGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGlt
cGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVh
dGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhh
bmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9
CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBu
YW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1I
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVhN2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUw
MDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEyYTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5
c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0
cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkzNGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYu
Ljk3NTc4OTgyNDBiZWQyYTEyNzMxZDhiZGRlYzNkZGI3NjgzNGM5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAgKzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1G
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitG
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDog
bV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8
fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhhbmRsZS5pbXBsKCksIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29u
bmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5kbGUuaWRlbnRpZmllcigpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFmMDY3MDc2ZWQ3M2JmNmZlYTUu
LmVjNDQ2ODdiMDkxNGM1ODNlM2I4MWM0NjM2ZmVlNTk4NDczNzEwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1j
bGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWludDhfdDsKIAogY2xhc3MgRmls
ZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKQEAg
LTQ2LDE3ICs0NywxOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7
IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgaXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5n
JiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFu
ZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9u
YW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9pbXBsOworICAgIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzUx
OTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDhkYTQyMjdjZTBj
YzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVjdXJz
aXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4mJikgPSAwOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2Mzhi
NGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CisKK2NsYXNzIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OworICAgIHVz
aW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIFJlbW92ZUVudHJ5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsK
KyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3Zl
RW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2Fs
bGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAppbmRl
eCAyOWY2NzM2ZWYxMGMxNTkzNjhhOWUzMDgwM2U2NmJmMTMwNTU4ODcyLi4yMmZiZjU5ZTA5ODNm
OWNjNTczYTZkYzczMjVkZjhmODc3MmIxY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMDYyMzhjZGY2OGQw
ZWY1ZWUzYjU1ZmYxYWZjOGU2MTJiMWVjODc2Ni4uN2Y2MzllZDg2NTA4NDg0ZTY3ODQ4MWI5MDAw
ZDI2MTc0OGNhNDRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI1LDEyICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7
CitjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC00MCw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBQZXJzaXN0Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPjsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGVyc2lzdGVkKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFBlcnNpc3RDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBlcnNp
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdXNpbmcgR2V0RGlyZWN0b3J5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPjsKKyAgICB1c2luZyBHZXREaXJlY3RvcnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPj4+KT47CiAg
ICAgdmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgR2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYzY5ZDA1NTBlYTFm
MTViZjVmOTdhNWRmNWNkYWZlNzM1ZmE5MGZjOS4uZDAxMDNhYjQyMmUyYTQxMjYxM2M4NmFiODdi
MTE5YmRkOThkYTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yQmFzZS5oIgpAQCAtMTE5LDcgKzExOSw4IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7
IH0sIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIGlkZW50aWZp
ZXJDb25uZWN0aW9uUGFpciA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7IH0sIGlk
ZW50aWZpZXJDb25uZWN0aW9uUGFpci5maXJzdCwgUmVmeyAqIGlkZW50aWZpZXJDb25uZWN0aW9u
UGFpci5zZWNvbmQgfSkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAy
OTY5ZGQ2MzBkOTEyZmQ1NDQ5N2JhODE1YjgwMDA1ZGM2ODBkNjAzLi5iYjEyNDFhYzc5OTMzYTYz
NzQyYjQxNzcxZjY4ZTRkNjJiZjgzNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ2xpZW50T3JpZ2luLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUltcGwuaCIKICNp
bmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5
LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDAyOGU1ZDk1YzY5YjZmNzRhMzUy
ZTMwOWRmOTJlMTA1MTA2YWI3Mi4uZDY5NGVjNmVjZDAzOTU0ZDk4NDEzZTgwMjhlNjRkMTM0YjE3
NzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjgwNSw3ICsyODA1LDYgQEAKIAkJOTMwQUFDOUEyNTBFQjg0OTAwMTNEQTlG
IC8qIENTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMEFBQzk4MjUwRUI4MTcwMDEzREE5RiAvKiBDU1NDb25kaXRpb25SdWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMw
QUFDOUYyNTBFRDQwOTAwMTNEQTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwQUFDOUQyNTBFRDQwOTAwMTNE
QTlGIC8qIEpTQ1NTQ29uZGl0aW9uUnVsZS5oICovOyB9OwogCQk5MzBBQUNBMjI1MEVENDExMDAx
M0RBOUYgLyogSlNDU1NHcm91cGluZ1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQ0EwMjUwRUQ0MTEwMDEzREE5RiAvKiBKU0NTU0dyb3Vw
aW5nUnVsZS5oICovOyB9OwotCQk5MzEyQkFEOTI2RjNBQzlBMDBGRERGNUYgLyogRmlsZVN5c3Rl
bUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMTUzQkRB
MTQxODFGN0EwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2VAMngucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzE1M0JEOTE0MTgxRjdBMDBGQ0Y1QkUg
LyogbWlzc2luZ0ltYWdlQDJ4LnBuZyAqLzsgfTsKIAkJOTMxNTNCREMxNDE5NTlCQzAwRkNGNUJF
IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCREIxNDE5NTlCQjAwRkNGNUJFIC8qIHRleHRBcmVh
UmVzaXplQ29ybmVyLnBuZyAqLzsgfTsKIAkJOTMxNTNCRTIxNDE5NUE1NzAwRkNGNUJFIC8qIG1p
c3NpbmdJbWFnZS5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMTUzQkUxMTQxOTVBNTcwMEZDRjVCRSAvKiBtaXNzaW5nSW1hZ2UucG5nICovOyB9
OwpAQCAtMjg3NSw2ICsyODc0LDggQEAKIAkJOTM0RjcxM0MwRDVBNkYxOTAwMDE4RDY5IC8qIFJl
c291cmNlRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGNzEzQjBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzUwMEYz
MjEzRkRFM0JFMDA5OUVDMjQgLyogTlNTY3JvbGxlckltcERldGFpbHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTAwRjMxMTNGREUzQkUwMDk5RUMy
NCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6
ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJGMjcwM0NB
NTEwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJD
IC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MjkyNzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzNTVFRjUxMjUzQTQyNzkwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTVFRjRG
MjUzQTQyNzgwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVDNDc2MzA5QUM0Q0U2MDBBNkFBQjQg
LyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjIwOUFDNENFNjAwQTZBQUI0IC8qIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCAqLzsgfTsKIAkJOTM1QzQ3NjgwOUFDNEQ0MzAwQTZB
QUI0IC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NjYwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMTY2Nyw3ICsxMTY2OCw2IEBACiAJCTkzMTZEREY4MjQwQzY0QjMwMDkzNDBB
QSAvKiBTaW1wbGVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1w
bGVSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzE2RERGQTI0MEM2NEIz
MDA5MzQwQUEgLyogU2ltcGxlUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2ltcGxlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzE2RERGRTI0MEM2NEY4MDA5MzQwQUEgLyogQm91bmRhcnlQb2ludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCb3VuZGFyeVBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzMUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJERDI2RjdFRDA5MDA4MUE3
RTUgLyogSlNGaWxlU3lzdGVtSGFuZGxlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RmlsZVN5c3RlbUhhbmRsZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTVmFsdWVJbldyYXBwZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODEzLDYgKzExODEzLDgg
QEAKIAkJOTM1MDBGMzExM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTIwN0JEMDlCRDQxMEEwMEYyMDM4RCAv
KiBMb2NhbGl6ZWRTdHJpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXplZFN0cmluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1MzY3NkEw
OUFFRDg4QjAwRDM1Q0Q2IC8qIFNjcm9sbFZpZXdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0Mjky
NzAzQkNBRDAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNEYyNTNBNDI3ODAwNkZGNEE0IC8q
IEpTQWJzdHJhY3RSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fi
c3RyYWN0UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NUVGNTAyNTNB
NDI3OTAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0UmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzU1RUY1MzI1M0E0RDVBMDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdlQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJzdHJhY3RSYW5nZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2NSw3ICsyMzM2Nyw4IEBACiAJCQkJOTMy
QzlCRDAyNkRENjI1NTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuY3BwICovLAogCQkJCTkz
MkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi8sCiAJCQkJOTMy
QzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAotCQkJCTkz
MUEwNzU4MjZGMUI0NEYwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oICovLAorCQkJ
CTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5o
ICovLAorCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCAqLywKIAkJCQk5MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1h
bmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgKi8sCiAJCQkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1
MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovLAogCQkJKTsKQEAgLTMy
NDYwLDcgKzMyNDYzLDggQEAKIAkJCQk4M0ZCMzM3NTFGNTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5
c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0NDNFODcyNkU5OTVDMDAwNTg1
MzhGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4
ODI2RTk5NUM0MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1IYW5kbGVJbXBsLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzU0MjQyRjI3MDNDQTUxMDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNTQyNDMwMjcwM0NCODYwMDVD
QTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAvKiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCA1NTAxNDhhYjRhZjg1OWEzYzhm
YzJmOWMwZWVkODk0NWNiZTI1MTVjLi4yMmJjM2VmNGVkMjc4YTE5ZTI0MDZjNzk0MGNmYjZjODM4
ZDkyZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAgY29uc3RleHByIGNoYXIgcGF0aFNlcGFyYXRvciA9ICcvJzsKICNlbmRpZgogCiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyJiBtYW5hZ2VyLCBUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgsIFN0cmluZyYmIG5h
bWUpCi0gICAgOiBtX2lkZW50aWZpZXIoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKKyAgICA6IG1faWRlbnRpZmllcihXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiAgICAgLCBtX21h
bmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1f
cGF0aChXVEZNb3ZlKHBhdGgpKQpAQCAtNTgsNyArNTgsNyBAQCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBt
YW5hZwogICAgIH0KIH0KIAotYm9vbCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aXNTYW1lRW50
cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitib29sIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8gcGF0aCA9IG1fbWFuYWdlci0+
Z2V0UGF0aChpZGVudGlmaWVyKTsKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpCkBAIC02Nyw3ICs2
Nyw3IEBAIGJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVuCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRo
OwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRl
SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQorRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6
VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5KQogewogICAgIGlmIChtX3R5cGUgIT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaCk7CkBAIC04MywxMiArODMsMTIgQEAgRXhw
ZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3QKICAgICByZXR1cm4gbV9tYW5hZ2VyLT5jcmVhdGVIYW5kbGUo
Y29ubmVjdGlvbiwgdHlwZSwgV1RGTW92ZShwYXRoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZO
ZWNlc3NhcnkpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpnZXRG
aWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCiB7CiAgICAgcmV0
dXJuIHJlcXVlc3RDcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OlR5cGU6OkZpbGUsIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKIH0KIAot
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQ
Qzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgU3RyaW5nJiYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICByZXR1cm4gcmVx
dWVzdENyZWF0ZUhhbmRsZShjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlw
ZTo6RGlyZWN0b3J5LCBXVEZNb3ZlKG5hbWUpLCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiB9CkBAIC0x
MjMsNyArMTIzLDcgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1FeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fbWFu
YWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBiMjE5OGRhMjEx
YjgxZTIzNDI4ODE1Y2FlNGE1MjhmZjdjYWY1NGE3Li44Nzk5MDkwN2Q5Yjg5YTUyM2Y3ZmYxZjU1
MDcwYTU3MDY0MGFiM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMjYsOCAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCi0KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00MSwxOSArNDAsMTkgQEAgcHVibGljOgogICAg
IGVudW0gY2xhc3MgVHlwZSA6IGJvb2wgeyBGaWxlLCBEaXJlY3RvcnkgfTsKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXImLCBUeXBlLCBTdHJpbmcm
JiBwYXRoLCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGF0aDsgfQogCi0gICAgYm9vbCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIpOwotICAgIEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNv
bm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
KTsKLSAgICBFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBib29s
IGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJp
bmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0
RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KTsKLSAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzb2x2ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAg
IEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwg
VHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlcXVlc3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlw
ZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAKLSAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPEZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlcj4gbV9tYW5hZ2VyOwogICAgIFR5cGUgbV90eXBlOwogICAgIFN0
cmluZyBtX3BhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MjcxN2U3MWRkODlhYTY0MTI2MmU4
YzUxNDkyMzA1ZWRkM2EyMzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
clR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcAppbmRleCAxZDc5MWJlODMyN2Y5ZTRlNzhlN2EzNjIwZWY1
ZjBlYjAyYWQ3YTc0Li5iODRjZjZjYzhiMTE0OWZiNmFmODBkMWZkNzEyNmQ4NDhhYjYyODBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCkBAIC0zMiwy
MSArMzIsMjEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnk6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAK
LXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0ZXJIYW5kbGUoRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlJiBoYW5kbGUpCit2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6
OnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgQVNTRVJUKCFt
X2hhbmRsZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwogCiAgICAgbV9oYW5kbGVzLmFkZChpZGVu
dGlmaWVyLCBtYWtlV2Vha1B0cihoYW5kbGUpKTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZVJlZ2lzdHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1faGFuZGxlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CiAKICAgICBtX2hhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCi1GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZSogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUqIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OmdldEhhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAg
IGlmIChhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5nZXQoaWRlbnRpZmllcikpCiAgICAgICAgIHJl
dHVybiBoYW5kbGUuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0
cnkuaAppbmRleCBiNmNjNDNjM2FmZjZjMTFjZWYxM2JjM2NjN2YwZjI4ODAyMzI1MDdiLi4yMGE1
MDJmZmZhZmFlYzdiYjEwYTZlY2M5OWVkNGQyN2FjY2M3YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTM3LDEyICszNywxMiBAQCBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KCk7Ci0gICAgdm9pZCByZWdpc3RlckhhbmRsZShGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
Zmllcik7Ci0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUqIGdldEhhbmRsZShGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJik7
CisgICAgdm9pZCB1bnJlZ2lzdGVySGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSogZ2V0SGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgV2Vha1B0cjxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZT4+IG1faGFuZGxlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IGZlZGI3ZTIwMjk4Y2RkYzNiOWFlOWQwNDg0NzNmNjZiMGMwZTFkNjMuLjFi
N2E1MWEyZjY4ODQxNWMzOTZiNWI0OGZkYzA1Zjk5NWZjNmQzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIEZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlcjo6fkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcigpCiAgICAgICAgIG1fcmVnaXN0cnkudW5y
ZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlIHR5cGUsIFN0cmluZyYmIHBhdGgs
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCitFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBjb25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSB0eXBlLCBTdHJp
bmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03MCwxNCArNzAsMTQgQEAgRXhwZWN0
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3QKICAgICBhdXRvIG5ld0hhbmRsZSA9IG1ha2VVbmlxdWU8RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU+KCp0aGlzLCB0eXBlLCBXVEZNb3ZlKHBhdGgpLCBXVEZNb3ZlKG5h
bWUpKTsKICAgICBhdXRvIG5ld0hhbmRsZUlkZW50aWZpZXIgPSBuZXdIYW5kbGUtPmlkZW50aWZp
ZXIoKTsKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24uZW5zdXJlKGNvbm5lY3Rpb24sIFsmXSB7
Ci0gICAgICAgIHJldHVybiBIYXNoU2V0PEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
cj4geyB9OworICAgICAgICByZXR1cm4gSGFzaFNldDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcj4geyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQobmV3SGFuZGxlSWRl
bnRpZmllcik7CiAgICAgbV9yZWdpc3RyeS5yZWdpc3RlckhhbmRsZShuZXdIYW5kbGVJZGVudGlm
aWVyLCAqbmV3SGFuZGxlKTsKICAgICBtX2hhbmRsZXMuYWRkKG5ld0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUobmV3SGFuZGxlKSk7CiAgICAgcmV0dXJuIG5ld0hhbmRsZUlkZW50aWZpZXI7CiB9
CiAKLWNvbnN0IFN0cmluZyYgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorY29uc3QgU3RyaW5nJiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIGhhbmRsZSA9IG1faGFuZGxlcy5m
aW5kKGlkZW50aWZpZXIpOwogICAgIHJldHVybiBoYW5kbGUgPT0gbV9oYW5kbGVzLmVuZCgpID8g
ZW1wdHlTdHJpbmcoKSA6IGhhbmRsZS0+dmFsdWUtPnBhdGgoKTsKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCBjb25uZWMKICAgICBtX2hhbmRsZXNCeUNvbm5lY3Rpb24ucmVtb3Zl
KGhhbmRsZXMpOwogfQogCi1FeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKK0V4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaAppbmRleCA3N2UzZTg5MTRlNWMwNGEz
ZTEzMGMyY2JhOTVjOTc0MGQ0NmNlMjRiLi44YjQzOGIyZTkzZGY0YTg0NDdjM2I3NzQwYmM1NGM4
N2ZjYTQzMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtMzksMTYgKzM5LDE2IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoU3RyaW5nJiYgcGF0aCwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSYp
OwogICAgIH5GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIoKTsKIAotICAgIEV4cGVjdGVkPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3Jl
YXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5KTsKLSAgICBjb25zdCBTdHJpbmcmIGdldFBhdGgoRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlSGFuZGxlKElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlLCBTdHJpbmcmJiBw
YXRoLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKKyAgICBjb25zdCBT
dHJpbmcmIGdldFBhdGgoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY29ubmVjdGlvbkNsb3NlZChJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKLSAgICBF
eHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICBF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gZ2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogCiBw
cml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeSYgbV9yZWdpc3RyeTsKLSAgICBIYXNoTWFwPElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQsIEhhc2hTZXQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVz
QnlDb25uZWN0aW9uOwotICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7
CisgICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBIYXNoU2V0PFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPj4gbV9oYW5kbGVzQnlDb25uZWN0aW9uOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxlczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAyN2FiMjNlOGU0
NGU5NjYwNzY4YmRjNzdiMmU2ZjY5YzBkN2M0MTFhLi42N2FlYmE1MjA2YTY2MmM2MWQ5YjBlNTZk
NTU5NTA5Y2IxMmE1MDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTY0LDE0
ICsxNjQsMTQgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsZWFyU3RvcmFnZUZvclRl
c3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGMKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIob3JpZ2luKS5maWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIoKm1fZmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSkuZ2V0RGlyZWN0b3J5
KGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIHRhcmdldElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTE4Miw3ICsxODIsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1lRW50cnko
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lk
IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEZpbGVTeXN0ZQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RmlsZUhhbmRsZShjb25uZWN0aW9uLnVuaXF1
ZUlEKCksIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KSk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcm
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRmls
ZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbm5l
Y3Rpb24udW5pcXVlSUQoKSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZOZWNlc3NhcnkpKTsKIH0K
IAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vy
c2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OnJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVu
dGkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlbW92ZUVudHJ5KG5hbWUsIGRlbGV0
ZVJlY3Vyc2l2ZWx5KSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMDJiMmYzNTc3ZmIxMmZkODE2
MTVhOWYwZjU3MzNkOTU4M2ZmNmNiOC4uMWI4MTBkZjc4ZDczZDJmZjA5ZTg0ZGUyY2NiMjJiYTA2
MTgwMTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMjcsOSArMjcsOSBAQAogCiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3Iu
aCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJPcmlnaW5TdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3Jp
Z2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjMs
MTIgKzYzLDEyIEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQg
cGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBn
ZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlbW92ZUVudHJ5
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIHJlc29sdmUoRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBpc1NhbWVFbnRy
eShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGdldERp
cmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgcmVzb2x2ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmlu
Zz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggYzZiNjk3OTU4OTczZjZhMGM4ZWFkNmVm
M2Y5OTRhMTQxZTNiZmJjMy4uNjJlNzQwM2NiYjcwMGFkOTZiYmViZTBmZWI4MjA1YzgxNjIyNGZm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiwx
MCArMjYsMTAgQEAKICBtZXNzYWdlcyAtPiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIgewogICAgIFBl
cnNpc3RlZChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKGJvb2wgcGVy
c2lzdGVkKSBBc3luYwogICAgIFBlcnNpc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBv
cmlnaW4pIC0+IChib29sIHBlcnNpc3RlZCkgQXN5bmMKLSAgICBGaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBJc1NhbWVF
bnRyeShXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlm
aWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCi0gICAgR2V0RmlsZUhhbmRsZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KLSAgICBSZW1vdmVFbnRyeShXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFt
ZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgUmVzb2x2ZShXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYworICAgIEZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkoc3RydWN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiBvcmlnaW4pIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdh
bnRzQ29ubmVjdGlvbgorICAgIElzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKKyAgICBHZXRGaWxlSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXREaXJlY3RvcnlIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jIFdhbnRzQ29ubmVjdGlvbgorICAgIFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKKyAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCmluZGV4IGNjZGUxMmI1MmM2NDk1YTRiMTkyMWM4ZDc5MjFkMjc5NDJkODkxMjYuLmE0YzEx
YWQ2NWE1YzE5NzAzYTdjMGU5Mjk0YmMyZmVhYWEyZmZlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdl
ci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzZmRlZGE4YmZjOTQ5YWJh
MWQwOWFlMWVjMWU5NmY3OTU4ZDA1YjhmLi5lZDk0YTNlZTU2NjhhMzQ4YmM3NmFkYmQ0MmI2NTAw
NzFkMWI5NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTI4MSw2ICsyODEsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMnLAogICAgICAgICAnV2ViQ29yZTo6
SW1hZ2VEZWNvZGVySWRlbnRpZmllcicsCkBAIC0zMTcsNyArMzE4LDYgQEAgZGVmIHR5cGVzX3Ro
YXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6RGlzcGxh
eUxpbmtPYnNlcnZlcklEJywKICAgICAgICAgJ1dlYktpdDo6RG93bmxvYWRJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3InLAotICAgICAgICAnV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpGb3JtU3Vi
bWl0TGlzdGVuZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVu
dGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6R3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IGQ5ZTJlOGZmZWVjNmM4Yjk1Y2ZkMTM5YTBmMGZhZjBjOTU0ZTNkNzcu
LmM0YTg0ZTFmYjZmNDY2YjhmYmQ1NGU2Y2E0NmM0NzI0MjJiM2IwYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNjk1LDcgKzY5NSw2IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKLVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hhcmVh
YmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC03MDcsNiArNzA2LDcgQEAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRlVGltZUNob29zZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDM3ZDBkZDI0NzFlZDQzOGY5Y2Q2Yzc1OWU0MzA4ZjdiNmQyMjIyZDUuLmYzNWQ5
NGQ3YzBhYjk1OWViNDUxYTdhMGE2ZDZlYjg1MDY4MWY1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ4NSw2ICsxNDg1LDcgQEAK
IAkJOTMzRTgzNUIyM0ExQjc1MDAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNF
ODM1ODIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJOTM0MjU4OUEyNTVCNTM1QTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovOyB9
OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5
RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM1NDI0MkMyNzAzQkRDQjAwNUNB
NzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJEQzIxNTJC
NkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyog
V2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkREMjE1MkI2RjYwMEU2RDVE
RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREUyMTUyQjcxMDAwRTZENURGIC8qIFdlYlNX
T3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQkEwNERFMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmggKi87IH07
CkBAIC00OTQyLDkgKzQ5NDMsNiBAQAogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUz
MjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5MzFBMDc1NzI2RjEyNUEzMDA0NDc0Q0QgLyogRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5MzFBMDc1OTI2RjFCOTY3MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTMxQTA3NUEyNkYxQjk2ODAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMUJF
MDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjFENTg1MUEzOEVFM0MwMDgwNTJCRSAvKiBXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTYw
LDYgKzQ5NTgsOCBAQAogCQk5MzQyNTg4RjI1NTVEQ0E1MDA1OUVFREQgLyogTWVkaWFQZXJtaXNz
aW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9uVXRp
bGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5ODI1NUI1MzRC
MDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51
SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0MjQyQTI3MDNC
RENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzU0MjQyQjI3MDNCRENCMDA1Q0E3MkMg
LyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUI1Nzk4MjZGNTEyNzAwMDhCNDhBQyAvKiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM1QjU3OTkyNkY1MTkyRjAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNUVFQjk1MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05
NzU0LDcgKzk3NTQsNiBAQAogCQkJCTkzMUExQkUwMjZGODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yLmggKi8sCiAJCQkJOTMxQTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAqLywKIAkJCQk5MzFBMDc1MzI2RjA2QUI0MDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLywKLQkJCQk5MzFBMDc1NzI2RjEyNUEz
MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmggKi8sCiAJCQkJ
OTM1QjU3OTkyNkY1MTkyRjAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0
cnkuY3BwICovLAogCQkJCTkzNUI1Nzk4MjZGNTEyNzAwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi8sCiAJCQkJOTMxQTA3NTEyNkYwNjMxMDAwNDQ3NENEIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgKi8sCkBAIC0xMDA3NCw4ICsxMDA3Myw2IEBA
CiAJCQkJQ0Q2MTc4MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovLAogCQkJCTJEMjhGM0RG
MTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFC
IC8qIG1hYyAqLywKLQkJCQk5MzFBMDc1OTI2RjFCOTY3MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eS5jcHAgKi8sCi0JCQkJOTMxQTA3NUEyNkYxQjk2ODAwNDQ3NENEIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuaCAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEw
MDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgKi8sCiAJCQkJMUE3Mjg0NDUx
OTU5RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uaCAqLywKIAkJCQlGNDNB
OUNERTI1RDcyRTJEMDA5OTBFMjYgLyogU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcCAqLywK
QEAgLTEwMTAxLDYgKzEwMDk4LDggQEAKIAkJCQlCQzAzMkQ2NjEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViRHJhZ0NsaWVudC5oICovLAogCQkJCUJDMTExQTU3MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJF
ZGl0b3JDbGllbnQuY3BwICovLAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJF
ZGl0b3JDbGllbnQuaCAqLywKKwkJCQk5MzU0MjQyQjI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk5MzU0MjQyQTI3MDNCRENCMDA1
Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8sCiAJCQkJQkMxMTFB
NTgxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlC
QzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJ
CQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICov
LApAQCAtMTI3ODQsNiArMTI3ODMsNyBAQAogCQkJCUJDMDMyREI5MTBGNDM4MEYwMDU4QzE1QSAv
KiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQkIxMEY0MzgwRjAwNThDMTVB
IC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTFCNUQxMTJG
NjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1
NDI0MkMyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRP
cHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyog
V2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5
OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA0NGZmM2UxOGY2NmI4YjJiYjVhN2IyZmFjY2U4NDZhMDE1Mjg1
ZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eS5oIgotCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgotI2luY2x1ZGUgIk5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25Pci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLVJlZjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVByb3h5OjpjcmVhdGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5KGlkZW50aWZpZXIsIGNv
bm5lY3Rpb24pKTsKLX0KLQotRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVQcm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotICAgIDogbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCi0gICAgLCBtX2Nvbm5lY3Rpb24oJmNvbm5lY3Rpb24pCi17Ci19Ci0KLXZv
aWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Y29ubmVjdGlvbkNsb3NlZCgpCi17Ci0g
ICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5Ojppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaGFuZGxlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKLQotICAgIGF1dG8gaWRlbnRpZmllciA9IGhh
bmRsZS5zdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpOwotICAgIGlmICghaWRlbnRpZmllcikKLSAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLQotICAgIGlmIChtX2lkZW50
aWZpZXIudG9VSW50NjQoKSA9PSAqaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6SXNTYW1lRW50cnkobV9pZGVudGlmaWVy
LCBtYWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJU
eXBlPigqaWRlbnRpZmllcikpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYm9vbCByZXN1bHQpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXN1bHQpOwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHk6OmdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJlZjxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlv
biBpcyBsb3N0IiB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUobV9pZGVudGlmaWVy
LCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBu
YW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2Vw
dGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlk
ZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVy
LmlzVmFsaWQoKSkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3Qi
X3MgfSk7Ci0KLSAgICAgICAgUmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBs
ID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIs
ICpjb25uZWN0aW9uKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7
Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Z2V0RGly
ZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBp
ZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUobV9pZGVudGlmaWVyLCBu
YW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLCBuYW1l
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlv
bkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwotICAgIAotICAgICAgICBhdXRvIGhhbmRsZUlkZW50
aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKLSAgICAgICAgaWYgKCFoYW5kbGVJZGVudGlmaWVyLmlz
VmFsaWQoKSkKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpF
eGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3Mg
fSk7Ci0KLSAgICAgICAgUmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPiBpbXBsID0g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKGhhbmRsZUlkZW50aWZpZXIsICpj
b25uZWN0aW9uKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbXBsKSk7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6cmVtb3ZlRW50
cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmICghbV9jb25uZWN0aW9uKQotICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlbW92ZUVudHJ5KG1faWRl
bnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAg
IGlmIChlcnJvcikKLSAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkpIH0pOwot
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eTo6cmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSW1wbCYg
aGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFZlY3Rv
cjxTdHJpbmc+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVj
dGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAg
ICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuc3RvcmFnZUhhbmRsZUlkZW50aWZpZXIoKTsKLSAg
ICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihWZWN0
b3I8U3RyaW5nPiB7IH0pOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVzb2x2ZShtX2lkZW50aWZpZXIsIG1h
a2VPYmplY3RJZGVudGlmaWVyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllclR5cGU+
KCppZGVudGlmaWVyKSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNv
bnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwotCi0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKLSAgICB9KTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQ
cm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWNjMGZiZTVjZjZlYWY3ZTVh
M2U1MjRjYjk0MTg4YmEyMjg1ODFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJ
bXBsLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwotY2xh
c3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVQcm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5PiBjcmVh
dGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mKTsK
LSAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKLQotcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZVByb3h5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBD
OjpDb25uZWN0aW9uJik7Ci0KLSAgICAvLyBGaWxlU3lzdGVtSGFuZGxlSW1wbAotICAgIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9p
ZGVudGlmaWVyLnRvVUludDY0KCk7IH0KLSAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1I
YW5kbGVJbXBsJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxi
b29sPiYmKT4mJikgZmluYWw7Ci0gICAgdm9pZCBnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4m
JikgZmluYWw7Ci0gICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4+JiYpPiYmKSBm
aW5hbDsKLSAgICB2b2lkIHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJikgZmluYWw7Ci0gICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJ
bXBsJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0b3I8
U3RyaW5nPj4mJik+JiYpIGZpbmFsOwotCi0gICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA1NGM5MjM4YmRkMmZj
ZWM4MTI5YjAzMDZiNTNiYmZiMWM3ZGY5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgorI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oY29ubmVjdGlvbikp
OworfQorCitXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgOiBtX2Nvbm5l
Y3Rpb24oJmNvbm5lY3Rpb24pCit7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRy
OworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJD
b25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgaWYgKGlkZW50aWZpZXIgPT0gb3RoZXJJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpJc1NhbWVFbnRyeShpZGVudGlmaWVyLCBvdGhlcklkZW50aWZpZXIpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5r
bm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZp
bGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2Rl
KHJlc3VsdC5lcnJvcigpKSB9KTsKKworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKTsKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpV
bmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiX3MgfSk7CisKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShpZGVudGlmaWVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3Jl
OjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3Qi
IH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFy
ZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhj
ZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAg
ICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghaWRl
bnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBp
cyBsb3N0Il9zIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaWRlbnRp
ZmllcikpOworICAgIH0pOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlbW92ZUVudHJ5Q2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25F
cnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRy
eShpZGVudGlmaWVyLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSksIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUoZXJyb3IudmFsdWUoKSkg
fSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICB9KTsKK30KKwordm9p
ZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgb3RoZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0
IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVy
KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0
aW9uQ29kZShyZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgIH0pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNjAxYmU2NDM1M2RhZmM3NzdjNmJjZTQyYjFlOWYyOTEzOTIzMGMyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFt
ZXNwYWNlIFdlYkNvcmUgewordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwor
Y2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIGNvbm5lY3Rpb25D
bG9zZWQoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CisKKyAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24KKyAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKKyAgICB2
b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIGdl
dERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVt
b3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYpOworICAgIHZvaWQgcmVzb2x2ZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVz
b2x2ZUNhbGxiYWNrJiYpOworCisgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCA2M2U2NjI5ZGNiZGQ3NmY5NjhmNGU3OGIyNGM0OTNlZDUwMjI1ZmIzLi4y
YWNiNWZhYWYzZjQ2ZDdmODRkYmJiYjg3MzMyZDMzNjU0OTAzNzZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI2LDEyICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYlN0b3JhZ2VDb25uZWN0aW9uLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVByb3h5LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0V4Y2VwdGlvbk9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDUsMjMgKzQ2LDI0IEBAIHZv
aWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmdldFBlcnNpc3RlZChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbiwgU3RvCiAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpQZXJzaXN0ZWQob3JpZ2luKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9u
OjpwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdl
Q29ubmVjdGlvbjo6cGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwg
U3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6UGVyc2lzdChvcmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKLXZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3Rv
cnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
bXBsPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9u
OjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3Jp
Z2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotICAgIGNv
bm5lY3Rpb24uc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OkZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luKSwgW3dlYWtDb25uZWN0aW9uID0gbWFr
ZVdlYWtQdHIoY29ubmVjdGlvbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KG9yaWdpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0
KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlv
biB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOwogCi0gICAgICAg
IGlmICghd2Vha0Nvbm5lY3Rpb24gfHwgIXJlc3VsdC52YWx1ZSgpLmlzVmFsaWQoKSkKKyAgICAg
ICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGlmICghaWRlbnRp
Zmllci5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2Vi
Q29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBs
b3N0Il9zIH0pOwogCi0gICAgICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4g
aW1wbCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShyZXN1bHQudmFsdWUo
KSwgKndlYWtDb25uZWN0aW9uKTsKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoaW1wbCkpOworICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBSZWZQdHI8V2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiB7ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5m
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB9OworICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoc3RkOjpwYWlyIHsgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSB9KTsK
ICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IGIyOWUxMDA2Nzk1Njk0OTIyNjg0NTAzMjcxYWFiODU3NzVhNWE1YmIuLmYyZWExOWU4MjA2ZWQz
ODkyZjJmODI5ZjdiYzljODUwMjQ3MGY5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJDb29raWVKYXIuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHYW1lcGFkUHJvdmlkZXIuaCIKQEAgLTEyMDcsNiAr
MTIwOCwyMCBAQCB2b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3Nl
ZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lYwogICAgICAgICAgICAgcGF5bWVudENv
b3JkaW5hdG9yLT5uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoKTsKICNlbmRpZgogICAg
IH0KKworICAgIC8vIFJlY3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gd2l0aCB2YWxpZCBJUEMgY29u
bmVjdGlvbiBvbiBuZXh0IG9wZXJhdGlvbi4KKyAgICBpZiAobV9maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24pIHsKKyAgICAgICAgbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24tPmNvbm5l
Y3Rpb25DbG9zZWQoKTsKKyAgICAgICAgbV9maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gPSBu
dWxscHRyOworICAgIH0KK30KKworV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBXZWJQ
cm9jZXNzOjpmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKQoreworICAgIGlmICghbV9maWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24pCisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpKTsKKworICAgIHJldHVybiAqbV9m
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB9CiAKIFdlYkxvYWRlclN0cmF0ZWd5JiBXZWJQ
cm9jZXNzOjp3ZWJMb2FkZXJTdHJhdGVneSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCBmMzYwM2FkMDI0YjIxZGI4ODJlNmQ5MmM3YTA1ZjNlODVjNTdiOTk1Li5kZjc2
ZmY5OTg2ZjBmY2JjMzQxZGY4ZTYxMjU5NTU3NzY5YmI1MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0MCw2ICsxNDAsNyBAQCBjbGFzcyBXZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlcjsKIGNsYXNzIFdlYkNvb2tpZUphcjsKIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YTsKIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzczsKK2NsYXNzIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2Vi
TG9hZGVyU3RyYXRlZ3k7CiBjbGFzcyBXZWJQYWdlOwpAQCAtMjQ1LDYgKzI0Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24qKTsKICAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIGV4aXN0aW5nTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgeyByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uZ2V0KCk7IH0KICAgICBXZWJMb2FkZXJTdHJhdGVneSYgd2ViTG9hZGVyU3RyYXRlZ3koKTsK
KyAgICBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIEdQVVByb2Nlc3NDb25u
ZWN0aW9uJiBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwpAQCAtNjUxLDYgKzY1Myw3IEBA
IHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICAgICBS
ZWZQdHI8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjsKICAgICBXZWJMb2FkZXJTdHJhdGVneSYgbV93ZWJMb2FkZXJTdHJhdGVneTsKKyAgICBSZWZQ
dHI8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vz
c0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439661</attachid>
            <date>2021-09-29 14:39:11 -0700</date>
            <delta_ts>2021-09-29 15:45:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230861-20210929143909.patch</filename>
            <type>text/plain</type>
            <size>99047</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uNGJjOTk0OWUyMDRiMDNkZTRlY2VkMTIyZDEzY2Vj
NmQ5ZWUwYTRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3Rl
bUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBJbnRyb2R1Y2UgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24gY2xhc3MsIHdo
aWNoIGRpc3BhdGNoZXMgU3RvcmFnZU1hbmFnZXIgdGFzayB0byBtYWluLXRocmVhZCBTdG9yYWdl
Q29ubmVjdGlvbgorICAgICAgICBhbmQgZGlzcGF0Y2hlcyByZXN1bHQgYmFjayB0byB3b3JrZXIg
dGhyZWFkLgorCisgICAgICAgIFJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlbW92ZUVudHJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpG
aWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmltcGwgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlSW1wbC5oLgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjp+RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZp
bGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9X
b3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdjZjI1OTAyMTM2MjIxODhiZjkxZDIxNjc1Li5l
ODY0YjYyZmY3YTVkNGM1MzM0Y2QxMGU3ZDkxNzhiMzRkYmJmYTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDIxLTA5LTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2UgRmlsZVN5c3RlbUhhbmRsZUltcGwgd2l0aCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDg2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM2MDY0NjU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBSZXBsYWNlIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkgd2l0aCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmlzU2FtZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeTo6cmVnaXN0
ZXJIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5Ojp1bnJlZ2lzdGVySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y3JlYXRlSGFuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2Ft
ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRGaWxl
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJl
bW92ZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNv
bHZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3Jp
Z2luU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmNwcC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aXNTYW1lRW50cnkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlc29sdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94
eS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFn
ZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGYzOTRjZTJkZjNi
YWFkZWI4MzdmODEwYTNlOGEwZjc1NDE5MTYwYi4uY2ZhZjAzYTJkZmIzMDA4NzNkODZmMDA4ZWNl
MjhkMGViMDBlYzFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MCw3ICs0MCw4IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUhhbmRsZS5oCi0gICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgKKyAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9TdG9y
YWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5k
ZXggM2EwY2FlODliZGVlNTExMGZkNDkxNWNiYThlNGMxYTU5ZTc1MTM5Yi4uZWZlMmE3NzRlZGQw
MDU5ZmM0ZTE5M2ViMjgwMTQ1NTkzYjczNjgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKIAotI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgiCkBAIC0zNiw0OSArMzYsNDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZSk7CiAKLVJlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUo
U3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitSZWY8Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRl
KFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSks
IFdURk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZShTdHJpbmcmJiBuYW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkK
LSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RGlyZWN0b3J5
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGltcGwpKQorRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6
OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25u
ZWN0aW9uKSkKIHsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxl
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpHZXRGaWxlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwot
ICAgIGltcGwoKS5nZXRGaWxlSGFuZGxlKG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbbmFtZSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBj
b25uZWN0aW9uKCkuZ2V0RmlsZUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBbY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkgPSBvcHRp
b25zID8gb3B0aW9ucy0+Y3JlYXRlIDogZmFsc2U7Ci0gICAgaW1wbCgpLmdldERpcmVjdG9yeUhh
bmRsZShuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW25hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVj
dG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbY29ubmVj
dGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkpKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUo
Y29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6UmVtb3ZlT3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5ID0g
b3B0aW9ucyA/IG9wdGlvbnMtPnJlY3Vyc2l2ZSA6IGZhbHNlOwotICAgIGltcGwoKS5yZW1vdmVF
bnRyeShuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLnJlbW92ZUVudHJ5KGlk
ZW50aWZpZXIoKSwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHksIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNl
RGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMVVNWU3RyaW5nPj4mJiBwcm9taXNlKQogewotICAgIGlt
cGwoKS5yZXNvbHZlKGhhbmRsZS5pbXBsKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb24oKS5yZXNvbHZlKGlkZW50aWZp
ZXIoKSwgaGFuZGxlLmlkZW50aWZpZXIoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDkyYTEy
YjQ3MGNlOTEwZGZkZWNkMThlOTFmZjhlMTM1YmY0OWQ2YmEuLjA4OWMxODdkMTZiNjQ4NjQ2ZGM0
YTcxNDU1MDQzZmE2YjQxZjQwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuaApAQCAtNDYsMTQgKzQ2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1cnNpdmUg
eyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgUmVmPEZpbGVTeXN0ZW1IYW5k
bGVJbXBsPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RmlsZU9wdGlvbnM+LCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldERpcmVjdG9yeU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+PiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5
KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxSZW1vdmVPcHRpb25zPiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShjb25zdCBGaWxlU3lzdGVt
SGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNlPElETFVTVlN0cmluZz4+JiYp
OwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU3RyaW5nJiYsIFJl
ZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4mJik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZjE1ZTAxMWQ2ZjYzZTU3MDM5YzZlOTQ2Mjdl
YTI1YWQwOWYwZTEyMy4uYjIxMjU0N2I1ZmU5YjliZDI1NjdmYjFiMDk0ODBiYmRkMGYxOWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKIAotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zNCwxMyArMzQsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZp
bGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGUoU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGlt
cGwpCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVh
dGUoU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
UmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaW1wbCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhh
bmRsZShXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CiB9
CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiBu
YW1lLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYgaW1wbCkKLSAgICA6IEZpbGVTeXN0ZW1I
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92
ZShpbXBsKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmgKaW5kZXggNDgyOWJiMjQxNzc5Yzc1NGVhN2E1ODdhZTZkMWExZTkyNzJkZDMxMy4uMjUw
MDVjMjEzMzhiZTc4NmE5OWYyMGI4ZmFhZGUzYzEyYTdhZGNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBGaWxlOwogY2xhc3MgRmlsZVN5
c3RlbUZpbGVIYW5kbGUgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUhhbmRsZSB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiBwdWJsaWM6Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gY3JlYXRlKFN0
cmluZyYmLCBSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+JiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTdHJpbmcmJiwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgUmVm
PEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJp
bmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwCmluZGV4IGIzOTY3OTY4NTc1ZTkzNGU1N2IyNTY2OTFkZDA0MTM2YjdjNDRhNWYu
Ljk3NTc4OTgyNDBiZWQyYTEyNzMxZDhiZGRlYzNkZGI3NjgzNGM5NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlLmgiCiAKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1w
bC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KIApAQCAtMzQsMTAgKzMzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwogCi1G
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmIGltcGwpCitG
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQg
a2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDog
bV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKLSAgICAsIG1faW1wbChX
VEZNb3ZlKGltcGwpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KIApAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRs
ZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8
fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2
ZShmYWxzZSk7CiAKLSAgICBtX2ltcGwtPmlzU2FtZUVudHJ5KGhhbmRsZS5pbXBsKCksIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29u
bmVjdGlvbi0+aXNTYW1lRW50cnkobV9pZGVudGlmaWVyLCBoYW5kbGUuaWRlbnRpZmllcigpLCBb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5oCmluZGV4IGU1Y2Y3MDIzYTY5NTlkNjhkMzk1NDFmMDY3MDc2ZWQ3M2JmNmZlYTUu
LmVjNDQ2ODdiMDkxNGM1ODNlM2I4MWM0NjM2ZmVlNTk4NDczNzEwYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKQEAgLTMyLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1j
bGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbDsKK2NsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIGVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWludDhfdDsKIAogY2xhc3MgRmls
ZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKQEAg
LTQ2LDE3ICs0NywxOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7
IHJldHVybiBtX2tpbmQ7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KLSAgICBGaWxlU3lzdGVtSGFuZGxlSW1wbCYgaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfQorICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZvaWQgaXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5n
JiYgbmFtZSwgUmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFu
ZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAog
cHJpdmF0ZToKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9u
YW1lOwotICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlSW1wbD4gbV9pbXBsOworICAgIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNzUx
OTM0Y2U3YzhlOTY3OWZmN2NiOGM4YTQ1NWRhZDYwM2RmMzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDhkYTQyMjdjZTBj
YzdmMGMxZjBiMjVkOGQ2YTBhMDcwNDMwZWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTsKLWNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwotdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIEV4Y2VwdGlvbk9yOwotCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlSW1wbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+RmlsZVN5c3RlbUhhbmRsZUltcGwoKSB7IH0KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IHN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Rmls
ZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4m
Jik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgcmVjdXJz
aXZlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT4mJikgPSAwOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2MDVhNjdkOTJhYjQzNmZkNjQ4M2UzNzhiNmY2Mzhi
NGQ4MWFhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGU7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CisKK2NsYXNzIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KKyAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OworICAgIHVz
aW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIFJlbW92ZUVudHJ5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsK
KyAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CisgICAgdmlydHVhbCB2b2lkIGlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U2FtZUVudHJ5Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEdldEhhbmRsZUNhbGxiYWNrJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgUmVtb3Zl
RW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2Fs
bGJhY2smJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAppbmRl
eCAyOWY2NzM2ZWYxMGMxNTkzNjhhOWUzMDgwM2U2NmJmMTMwNTU4ODcyLi4yMmZiZjU5ZTA5ODNm
OWNjNTczYTZkYzczMjVkZjhmODc3MmIxY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvRHVtbXlTdG9yYWdlUHJvdmlkZXIuaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMDYyMzhjZGY2OGQw
ZWY1ZWUzYjU1ZmYxYWZjOGU2MTJiMWVjODc2Ni4uN2Y2MzllZDg2NTA4NDg0ZTY3ODQ4MWI5MDAw
ZDI2MTc0OGNhNDRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI1LDEyICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUltcGw7
CitjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiB0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgRXhjZXB0aW9uT3I7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogCkBAIC00MCw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB1c2luZyBQZXJzaXN0Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPjsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGVyc2lzdGVkKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFBlcnNpc3RDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBlcnNp
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdXNpbmcgR2V0RGlyZWN0b3J5
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lz
dGVtSGFuZGxlSW1wbD4+JiYpPjsKKyAgICB1c2luZyBHZXREaXJlY3RvcnlDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPj4+KT47CiAg
ICAgdmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgR2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYzY5ZDA1NTBlYTFm
MTViZjVmOTdhNWRmNWNkYWZlNzM1ZmE5MGZjOS4uMGQ1OWE0MDE3Y2Q5OWI4NTg3ZjgyMTBlYmEx
MjY4OTAzMDk0Y2I4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yQmFzZS5oIgpAQCAtMTE5LDcgKzExOSw4IEBAIHZvaWQgU3RvcmFnZU1h
bmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElE
TEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7
IH0sIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIGlkZW50aWZp
ZXJDb25uZWN0aW9uUGFpciA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSh7IH0sIGlk
ZW50aWZpZXJDb25uZWN0aW9uUGFpci5maXJzdCwgUmVmIHsgKiBpZGVudGlmaWVyQ29ubmVjdGlv
blBhaXIuc2Vjb25kIH0pKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
Mjk2OWRkNjMwZDkxMmZkNTQ0OTdiYTgxNWI4MDAwNWRjNjgwZDYwMy4uYmIxMjQxYWM3OTkzM2E2
Mzc0MmI0MTc3MWY2OGU0ZDYyYmY4MzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0yNyw3
ICsyNyw2IEBACiAjaW5jbHVkZSAiV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaCIKIAogI2luY2x1
ZGUgIkNsaWVudE9yaWdpbi5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJbXBsLmgiCiAj
aW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAwMjhlNWQ5NWM2OWI2Zjc0YTM1
MmUzMDlkZjkyZTEwNTEwNmFiNzIuLmQ2OTRlYzZlY2QwMzk1NGQ5ODQxM2U4MDI4ZTY0ZDEzNGIx
Nzc2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI4MDUsNyArMjgwNSw2IEBACiAJCTkzMEFBQzlBMjUwRUI4NDkwMDEzREE5
RiAvKiBDU1NDb25kaXRpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzBBQUM5ODI1MEVCODE3MDAxM0RBOUYgLyogQ1NTQ29uZGl0aW9uUnVs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
MEFBQzlGMjUwRUQ0MDkwMDEzREE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEFBQzlEMjUwRUQ0MDkwMDEz
REE5RiAvKiBKU0NTU0NvbmRpdGlvblJ1bGUuaCAqLzsgfTsKIAkJOTMwQUFDQTIyNTBFRDQxMTAw
MTNEQTlGIC8qIEpTQ1NTR3JvdXBpbmdSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzBBQUNBMDI1MEVENDExMDAxM0RBOUYgLyogSlNDU1NHcm91
cGluZ1J1bGUuaCAqLzsgfTsKLQkJOTMxMkJBRDkyNkYzQUM5QTAwRkRERjVGIC8qIEZpbGVTeXN0
ZW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzE1M0JE
QTE0MTgxRjdBMDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxNTNCRDkxNDE4MUY3QTAwRkNGNUJF
IC8qIG1pc3NpbmdJbWFnZUAyeC5wbmcgKi87IH07CiAJCTkzMTUzQkRDMTQxOTU5QkMwMEZDRjVC
RSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTUzQkRCMTQxOTU5QkIwMEZDRjVCRSAvKiB0ZXh0QXJl
YVJlc2l6ZUNvcm5lci5wbmcgKi87IH07CiAJCTkzMTUzQkUyMTQxOTVBNTcwMEZDRjVCRSAvKiBt
aXNzaW5nSW1hZ2UucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzE1M0JFMTE0MTk1QTU3MDBGQ0Y1QkUgLyogbWlzc2luZ0ltYWdlLnBuZyAqLzsg
fTsKQEAgLTI4NzUsNiArMjg3NCw4IEBACiAJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBS
ZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1MDBG
MzIxM0ZERTNCRTAwOTlFQzI0IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzUwMEYzMTEzRkRFM0JFMDA5OUVD
MjQgLyogTlNTY3JvbGxlckltcERldGFpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxp
emVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzU0MjQyRjI3MDND
QTUxMDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTQyNDI3MjcwM0JDODgwMDVDQTcy
QyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDMwMjcwM0NCODYwMDVDQTcyQyAvKiBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTQyNDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzU1RUY1MTI1M0E0Mjc5MDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU1RUY0
RjI1M0E0Mjc4MDA2RkY0QTQgLyogSlNBYnN0cmFjdFJhbmdlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1QzQ3NjMwOUFDNENFNjAwQTZBQUI0
IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggKi87IH07CiAJCTkzNUM0NzY4MDlBQzRENDMwMEE2
QUFCNCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUM0NzY2MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTE2NjcsNyArMTE2NjgsNiBAQAogCQk5MzE2RERGODI0MEM2NEIzMDA5MzQw
QUEgLyogU2ltcGxlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2lt
cGxlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxNkRERkEyNDBDNjRC
MzAwOTM0MEFBIC8qIFNpbXBsZVJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNpbXBsZVJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMxNkRERkUyNDBDNjRGODAwOTM0MEFBIC8qIEJvdW5kYXJ5UG9pbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQm91bmRhcnlQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbUhhbmRsZUlt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTFCREQyNkY3RUQwOTAwODFB
N0U1IC8qIEpTRmlsZVN5c3RlbUhhbmRsZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0ZpbGVTeXN0ZW1IYW5kbGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzFBRTNCODFGQjgwRUFFMDBGNUVGQjIgLyogSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMUJDQzYwMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDYW5TdGFydExp
c3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTgxMyw2ICsxMTgxMyw4
IEBACiAJCTkzNTAwRjMxMTNGREUzQkUwMDk5RUMyNCAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU1Njcm9sbGVySW1wRGV0YWlscy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQg
LyogTG9jYWxpemVkU3RyaW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b2NhbGl6ZWRTdHJpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTM2NzZB
MDlBRUQ4OEIwMEQzNUNENiAvKiBTY3JvbGxWaWV3TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsVmlld01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM1NDI0MjcyNzAzQkM4ODAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNTQyNDI5
MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTVFRjRGMjUzQTQyNzgwMDZGRjRBNCAv
KiBKU0Fic3RyYWN0UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
YnN0cmFjdFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNTVFRjUwMjUz
QTQyNzkwMDZGRjRBNCAvKiBKU0Fic3RyYWN0UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNBYnN0cmFjdFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM1NUVGNTMyNTNBNEQ1QTAwNkZGNEE0IC8qIEpTQWJzdHJhY3RSYW5nZUN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0UmFuZ2VDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMzNjUsNyArMjMzNjcsOCBAQAogCQkJCTkz
MkM5QkQwMjZERDYyNTUwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmNwcCAqLywKIAkJCQk5
MzJDOUJEQTI2REQ2MjYxMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5oICovLAogCQkJCTkz
MkM5QkQ5MjZERDYyNjAwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmlkbCAqLywKLQkJCQk5
MzFBMDc1ODI2RjFCNDRGMDA0NDc0Q0QgLyogRmlsZVN5c3RlbUhhbmRsZUltcGwuaCAqLywKKwkJ
CQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIu
aCAqLywKKwkJCQk5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggKi8sCiAJCQkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VN
YW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovLAogCQkJCTkzNDQzRTdEMjZFOEE2QkMwMDU4
NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCSk7CkBAIC0z
MjQ2MCw3ICszMjQ2Myw4IEBACiAJCQkJODNGQjMzNzUxRjUwOEE1QjAwOTg2RTU0IC8qIEZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQzRTg3MjZFOTk1QzAwMDU4
NTM4RiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0NDNF
ODgyNkU5OTVDNDAwNTg1MzhGIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTkzMTJCQUQ5MjZGM0FDOUEwMEZEREY1RiAvKiBGaWxlU3lzdGVtSGFuZGxlSW1wbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM1NDI0MkYyNzAzQ0E1MTAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzU0MjQzMDI3MDNDQjg2MDA1
Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzVFQjY5RjBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MTJCRTQ4MzFGRTg2NUREMDAyMDMxQ0MgLyogRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0NUU3MkY4MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggNTUwMTQ4YWI0YWY4NTlhM2M4
ZmMyZjljMGVlZDg5NDVjYmUyNTE1Yy4uMjJiYzNlZjRlZDI3OGExOWUyNDA2Yzc5NDBjZmI2Yzgz
OGQ5MmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0zOCw3ICszOCw3
IEBAIGNvbnN0ZXhwciBjaGFyIHBhdGhTZXBhcmF0b3IgPSAnLyc7CiAjZW5kaWYKIAogRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlciYgbWFuYWdlciwgVHlwZSB0eXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJpbmcmJiBu
YW1lKQotICAgIDogbV9pZGVudGlmaWVyKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
cjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCisgICAgOiBtX2lkZW50aWZpZXIoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpKQogICAgICwgbV9t
YW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBt
X3BhdGgoV1RGTW92ZShwYXRoKSkKQEAgLTU4LDcgKzU4LDcgQEAgRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlciYg
bWFuYWcKICAgICB9CiB9CiAKLWJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVu
dHJ5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorYm9vbCBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIHBhdGggPSBtX21hbmFnZXIt
PmdldFBhdGgoaWRlbnRpZmllcik7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpKQpAQCAtNjcsNyAr
NjcsNyBAQCBib29sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1NhbWVFbnRyeShGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbgogICAgIHJldHVybiBtX3BhdGggPT0gcGF0
aDsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVxdWVzdENyZWF0
ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFR5cGUgdHlwZSwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKK0V4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVxdWVzdENyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSkKIHsKICAgICBpZiAobV90eXBlICE9IEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gpOwpAQCAtODMsMTIgKzgzLDEyIEBAIEV4
cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gRmlsZVN5c3RlbVN0CiAgICAgcmV0dXJuIG1fbWFuYWdlci0+Y3JlYXRlSGFuZGxl
KGNvbm5lY3Rpb24sIHR5cGUsIFdURk1vdmUocGF0aCksIFdURk1vdmUobmFtZSksIGNyZWF0ZUlm
TmVjZXNzYXJ5KTsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0
RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFN0cmluZyYm
IG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCitFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25u
ZWN0aW9uLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewogICAgIHJl
dHVybiByZXF1ZXN0Q3JlYXRlSGFuZGxlKGNvbm5lY3Rpb24sIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpUeXBlOjpGaWxlLCBXVEZNb3ZlKG5hbWUpLCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiB9CiAK
LUV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFN0cmluZyYmIG5hbWUsIGJvb2wg
Y3JlYXRlSWZOZWNlc3NhcnkpCitFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6
OmdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24s
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpCiB7CiAgICAgcmV0dXJuIHJl
cXVlc3RDcmVhdGVIYW5kbGUoY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5
cGU6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgY3JlYXRlSWZOZWNlc3NhcnkpOwogfQpAQCAt
MTIzLDcgKzEyMyw3IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlbW92ZUVudHJ5KGNvbnN0CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHZlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKQorRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHZlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX21h
bmFnZXIpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpVbmtub3duKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggYjIxOThkYTIx
MWI4MWUyMzQyODgxNWNhZTRhNTI4ZmY3Y2FmNTRhNy4uODc5OTA5MDdkOWI4OWE1MjNmN2ZmMWY1
NTA3MGE1NzA2NDBhYjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTI2LDgg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oIgotCisjaW5jbHVkZSA8V2Vi
Q29yZS9GaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDEsMTkgKzQwLDE5IEBAIHB1YmxpYzoKICAg
ICBlbnVtIGNsYXNzIFR5cGUgOiBib29sIHsgRmlsZSwgRGlyZWN0b3J5IH07CiAgICAgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiwgVHlwZSwgU3RyaW5n
JiYgcGF0aCwgU3RyaW5nJiYgbmFtZSk7CiAKLSAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBjb25zdCBTdHJpbmcmIHBhdGgoKSBjb25zdCB7
IHJldHVybiBtX3BhdGg7IH0KIAotICAgIGJvb2wgaXNTYW1lRW50cnkoRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyKTsKLSAgICBFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEZpbGVIYW5kbGUoSVBDOjpD
b25uZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSk7Ci0gICAgRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpV
bmlxdWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgYm9v
bCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CisgICAg
RXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3Ry
aW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdl
dERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSk7Ci0gICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc29sdmUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKTsKKyAg
ICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6Ci0gICAg
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQs
IFR5cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOworICAgIEV4cGVj
dGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFR5
cGUsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogCi0gICAgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgV2Vha1B0cjxGaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXI+IG1fbWFuYWdlcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBT
dHJpbmcgbV9wYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDI3MTdlNzFkZDg5YWE2NDEyNjJl
OGM1MTQ5MjMwNWVkZDNhMjM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlm
aWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXJUeXBlPjsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5jcHAKaW5kZXggMWQ3OTFiZTgzMjdmOWU0ZTc4ZTdhMzYyMGVm
NWYwZWIwMmFkN2E3NC4uYjg0Y2Y2Y2M4YjExNDlmYjZhZjgwZDFmZDcxMjZkODQ4YWI2MjgwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcApAQCAtMzIs
MjEgKzMyLDIxIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVJlZ2lzdHJ5OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KCkgPSBkZWZhdWx0Owog
Ci12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OnJlZ2lzdGVySGFuZGxlKEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZSYgaGFuZGxlKQordm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
OjpyZWdpc3RlckhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYgaGFuZGxlKQogewogICAgIEFTU0VSVCgh
bV9oYW5kbGVzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAogICAgIG1faGFuZGxlcy5hZGQoaWRl
bnRpZmllciwgbWFrZVdlYWtQdHIoaGFuZGxlKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVSZWdpc3RyeTo6dW5yZWdpc3RlckhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeTo6dW5yZWdpc3RlckhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChtX2hhbmRsZXMuY29udGFpbnMoaWRlbnRpZmll
cikpOwogCiAgICAgbV9oYW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAotRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUqIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnk6OmdldEhhbmRs
ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5OjpnZXRIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAg
ICBpZiAoYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMuZ2V0KGlkZW50aWZpZXIpKQogICAgICAgICBy
ZXR1cm4gaGFuZGxlLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5LmgKaW5kZXggYjZjYzQzYzNhZmY2YzExY2VmMTNiYzNjYzdmMGYyODgwMjMyNTA3Yi4uMjBh
NTAyZmZmYWZhZWM3YmIxMGE2ZWNjOTllZDRkMjdhY2NjN2ExNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC0zNywxMiArMzcsMTIgQEAgY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeSgpOwotICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGUoRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYp
OwotICAgIHZvaWQgdW5yZWdpc3RlckhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIpOwotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlKiBnZXRIYW5kbGUoRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlZ2lzdGVySGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYp
OworICAgIHZvaWQgdW5yZWdpc3RlckhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllcik7CisgICAgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUqIGdldEhhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6Ci0gICAgSGFzaE1hcDxG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFdlYWtQdHI8RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU+PiBtX2hhbmRsZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgV2Vha1B0cjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZT4+IG1faGFuZGxl
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmNwcAppbmRleCBmZWRiN2UyMDI5OGNkZGMzYjlhZTlkMDQ4NDczZjY2YjBjMGUxZDYzLi4x
YjdhNTFhMmY2ODg0MTVjMzk2YjViNDhmZGMwNWY5OTVmYzZkM2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBGaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXI6On5GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIoKQogICAgICAgICBtX3JlZ2lzdHJ5LnVu
cmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKLUV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjpjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25u
ZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSB0eXBlLCBTdHJpbmcmJiBwYXRo
LCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQorRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5p
cXVlSUQgY29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGUgdHlwZSwgU3Ry
aW5nJiYgcGF0aCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNzAsMTQgKzcwLDE0IEBAIEV4cGVj
dGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0CiAgICAgYXV0byBuZXdIYW5kbGUgPSBtYWtlVW5pcXVlPEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlPigqdGhpcywgdHlwZSwgV1RGTW92ZShwYXRoKSwgV1RGTW92ZShu
YW1lKSk7CiAgICAgYXV0byBuZXdIYW5kbGVJZGVudGlmaWVyID0gbmV3SGFuZGxlLT5pZGVudGlm
aWVyKCk7CiAgICAgbV9oYW5kbGVzQnlDb25uZWN0aW9uLmVuc3VyZShjb25uZWN0aW9uLCBbJl0g
ewotICAgICAgICByZXR1cm4gSGFzaFNldDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZp
ZXI+IHsgfTsKKyAgICAgICAgcmV0dXJuIEhhc2hTZXQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXI+IHsgfTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYWRkKG5ld0hhbmRsZUlk
ZW50aWZpZXIpOwogICAgIG1fcmVnaXN0cnkucmVnaXN0ZXJIYW5kbGUobmV3SGFuZGxlSWRlbnRp
ZmllciwgKm5ld0hhbmRsZSk7CiAgICAgbV9oYW5kbGVzLmFkZChuZXdIYW5kbGVJZGVudGlmaWVy
LCBXVEZNb3ZlKG5ld0hhbmRsZSkpOwogICAgIHJldHVybiBuZXdIYW5kbGVJZGVudGlmaWVyOwog
fQogCi1jb25zdCBTdHJpbmcmIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Z2V0UGF0aChGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK2NvbnN0IFN0cmluZyYg
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBoYW5kbGUgPSBtX2hhbmRsZXMu
ZmluZChpZGVudGlmaWVyKTsKICAgICByZXR1cm4gaGFuZGxlID09IG1faGFuZGxlcy5lbmQoKSA/
IGVtcHR5U3RyaW5nKCkgOiBoYW5kbGUtPnZhbHVlLT5wYXRoKCk7CkBAIC05OCw3ICs5OCw3IEBA
IHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0aW9uQ2xvc2VkKElQQzo6Q29u
bmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjCiAgICAgbV9oYW5kbGVzQnlDb25uZWN0aW9uLnJlbW92
ZShoYW5kbGVzKTsKIH0KIAotRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6Omdl
dERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCitFeHBlY3Rl
ZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggNzdlM2U4OTE0ZTVjMDRh
M2UxMzBjMmNiYTk1Yzk3NDBkNDZjZTI0Yi4uOGI0MzhiMmU5M2RmNGE4NDQ3YzNiNzc0MGJjNTRj
ODdmY2E0MzE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaApAQCAtMjYsNyArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
IgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTM5LDE2ICszOSwxNiBAQCBwdWJsaWM6CiAgICAgRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyKFN0cmluZyYmIHBhdGgsIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkm
KTsKICAgICB+RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyKCk7CiAKLSAgICBFeHBlY3RlZDxGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNy
ZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6VHlwZSwgU3RyaW5nJiYgcGF0aCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5l
Y2Vzc2FyeSk7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRQYXRoKEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllcik7CisgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZUhhbmRsZShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSwgU3RyaW5nJiYg
cGF0aCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CisgICAgY29uc3Qg
U3RyaW5nJiBnZXRQYXRoKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7Ci0gICAg
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBnZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CisgICAg
RXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKIAog
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnkmIG1fcmVnaXN0cnk7Ci0gICAgSGFzaE1hcDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlELCBIYXNoU2V0PEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllcj4+IG1faGFuZGxl
c0J5Q29ubmVjdGlvbjsKLSAgICBIYXNoTWFwPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlPj4gbV9oYW5kbGVz
OworICAgIEhhc2hNYXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgSGFzaFNldDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4+IG1faGFuZGxlc0J5Q29ubmVjdGlvbjsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU+PiBtX2hhbmRsZXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMjdhYjIzZThl
NDRlOTY2MDc2OGJkYzc3YjJlNmY2OWMwZDdjNDExYS4uNjdhZWJhNTIwNmE2NjJjNjFkOWIwZTU2
ZDU1OTUwOWNiMTJhNTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTE2NCwx
NCArMTY0LDE0IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbGVhclN0b3JhZ2VGb3JU
ZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjCiAgICAgfSk7CiB9CiAKLXZvaWQg
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBjb21wbGV0aW9u
SGFuZGxlcihsb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2VyKG9yaWdpbikuZmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyKCptX2ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkpLmdldERpcmVjdG9y
eShjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciB0YXJnZXRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC0xODIsNyArMTgyLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGkKICAgICBjb21wbGV0aW9u
SGFuZGxlcihoYW5kbGUtPmlzU2FtZUVudHJ5KHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAotdm9p
ZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
U3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3Rl
ZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBGaWxlU3lzdGUKICAg
ICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmdldEZpbGVIYW5kbGUoY29ubmVjdGlvbi51bmlx
dWVJRCgpLCBXVEZNb3ZlKG5hbWUpLCBjcmVhdGVJZk5lY2Vzc2FyeSkpOwogfQogCi12b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5n
JiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OmdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEZp
bGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmdldERpcmVjdG9yeUhhbmRsZShjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIFdURk1vdmUobmFtZSksIGNyZWF0ZUlmTmVjZXNzYXJ5KSk7CiB9
CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1
cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKIApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpyZW1vdmVFbnRyeShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZW1vdmVFbnRyeShuYW1lLCBkZWxl
dGVSZWN1cnNpdmVseSkpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2
ZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNv
bHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4IDAyYjJmMzU3N2ZiMTJmZDgx
NjE1YTlmMGY1NzMzZDk1ODNmZjZjYjguLjFiODEwZGY3OGQ3M2QyZmYwOWU4NGRlMmNjYjIyYmEw
NjE4MDExYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9y
aWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYz
LDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lk
IHBlcnNpc3RlZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZv
aWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNl
c3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZvaWQg
Z2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCByZW1vdmVFbnRy
eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlKEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVj
dG9yeShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgaXNTYW1lRW50
cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBnZXRE
aXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCByZW1vdmVFbnRy
eShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHJlc29sdmUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogCiAgICAgUEFMOjpTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGM2YjY5Nzk1ODk3M2Y2YTBjOGVhZDZl
ZjNmOTk0YTE0MWUzYmZiYzMuLjYyZTc0MDNjYmI3MDBhZDk2YmJlYmUwZmViODIwNWM4MTYyMjRm
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjYs
MTAgKzI2LDEwIEBACiAgbWVzc2FnZXMgLT4gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyIHsKICAgICBQ
ZXJzaXN0ZWQoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChib29sIHBl
cnNpc3RlZCkgQXN5bmMKICAgICBQZXJzaXN0KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
b3JpZ2luKSAtPiAoYm9vbCBwZXJzaXN0ZWQpIEFzeW5jCi0gICAgRmlsZVN5c3RlbUdldERpcmVj
dG9yeShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKEV4cGVjdGVkPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgSXNTYW1l
RW50cnkoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRp
ZmllcikgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwotICAgIEdldEZpbGVIYW5kbGUoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpIC0+IChFeHBlY3RlZDxXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgotICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlRW50cnkoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5h
bWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIFJlc29sdmUoV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKKyAgICBGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KHN0cnVjdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4gb3JpZ2luKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBX
YW50c0Nvbm5lY3Rpb24KKyAgICBJc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoYm9vbCByZXN1bHQpIEFzeW5jCisgICAgR2V0RmlsZUhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJp
bmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1l
LCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVS
ZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jCisgICAgUmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFn
ZXIuaAppbmRleCBjY2RlMTJiNTJjNjQ5NWE0YjE5MjFjOGQ3OTIxZDI3OTQyZDg5MTI2Li5hNGMx
MWFkNjVhNWMxOTcwM2E3YzBlOTI5NGJjMmZlYWFhMmZmZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFn
ZXIuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggM2ZkZWRhOGJmYzk0OWFi
YTFkMDlhZTFlYzFlOTZmNzk1OGQwNWI4Zi4uZWQ5NGEzZWU1NjY4YTM0OGJjNzZhZGJkNDJiNjUw
MDcxZDFiOTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0yODEsNiArMjgxLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFy
ZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJywKICAgICAgICAgJ1dlYkNvcmU6
OkZldGNoSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJywKICAgICAgICAgJ1dlYkNvcmU6
OkltYWdlRGVjb2RlcklkZW50aWZpZXInLApAQCAtMzE3LDcgKzMxOCw2IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkRpc3Bs
YXlMaW5rT2JzZXJ2ZXJJRCcsCiAgICAgICAgICdXZWJLaXQ6OkRvd25sb2FkSUQnLAogICAgICAg
ICAnV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yJywKLSAgICAgICAgJ1dlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6Rm9ybVN1
Ym1pdExpc3RlbmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Okdlb2xvY2F0aW9uSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllcics
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCBkOWUyZThmZmVlYzZjOGI5NWNmZDEzOWEwZjBmYWYwYzk1NGUzZDc3
Li5jNGE4NGUxZmI2ZjQ2NmI4ZmJkNTRlNmNhNDZjNDcyNDIyYjNiMGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTY5NSw3ICs2OTUsNiBAQCBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uLmNwcAogCi1XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1NoYXJl
YWJsZUJpdG1hcFV0aWxpdGllcy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtNzA3LDYgKzcwNiw3IEBAIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRGF0ZVRpbWVDaG9vc2VyLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAzN2QwZGQyNDcxZWQ0MzhmOWNkNmM3NTllNDMwOGY3YjZkMjIyMmQ1Li5mMzVk
OTRkN2MwYWI5NTllYjQ1MWE3YTBhNmQ2ZWI4NTA2ODFmNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODUsNiArMTQ4NSw3IEBA
CiAJCTkzM0U4MzVCMjNBMUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMz
RTgzNTgyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CiAJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsg
fTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMx
OUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNTQyNDJDMjcwM0JEQ0IwMDVD
QTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAv
KiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUy
QjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8q
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1
REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkRFMjE1MkI3MTAwMEU2RDVERiAvKiBXZWJT
V09yaWdpblN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0JBMDRERTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovOyB9
OwpAQCAtNDk0Miw5ICs0OTQzLDYgQEAKIAkJOTMxQTA3NTEyNkYwNjMxMDAwNDQ3NENEIC8qIEZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MjI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1
MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMxQTA3NTcyNkYxMjVBMzAwNDQ3NENEIC8qIEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTFC
RTAyNkY4NUMzMjAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2
MCw2ICs0OTU4LDggQEAKIAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRUREIC8qIE1lZGlhUGVybWlz
c2lvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OTgyNTVCNTM0
QjAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1l
bnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkEyNzAz
QkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJD
IC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyog
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNUI1Nzk5MjZGNTE5MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzVFRUI5NTEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTc1NCw3ICs5NzU0LDYgQEAKIAkJCQk5MzFBMUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvci5oICovLAogCQkJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8sCiAJCQkJOTMxQTA3NTMyNkYwNkFCNDAwNDQ3
NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggKi8sCi0JCQkJOTMxQTA3NTcyNkYxMjVB
MzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJ
CTkzNUI1Nzk5MjZGNTE5MkYwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQk5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5oICovLAogCQkJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwICovLApAQCAtMTAwNzQsOCArMTAwNzMsNiBA
QAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNE
RjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JB
QiAvKiBtYWMgKi8sCi0JCQkJOTMxQTA3NTkyNkYxQjk2NzAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUHJveHkuY3BwICovLAotCQkJCTkzMUEwNzVBMjZGMUI5NjgwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5LmggKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQx
MDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1
MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQz
QTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8s
CkBAIC0xMDEwMSw2ICsxMDA5OCw4IEBACiAJCQkJQkMwMzJENjYxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkRyYWdDbGllbnQuaCAqLywKIAkJCQlCQzExMUE1NzExMkY0RkJCMDAzMzdCQUIgLyogV2Vi
RWRpdG9yQ2xpZW50LmNwcCAqLywKIAkJCQlCQzAzMkQ2ODEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RWRpdG9yQ2xpZW50LmggKi8sCisJCQkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCisJCQkJOTM1NDI0MkEyNzAzQkRDQjAw
NUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovLAogCQkJCUJDMTEx
QTU4MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJ
QkMwMzJENkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJ
CQkJQkMxQkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAq
LywKQEAgLTEyNzg0LDYgKzEyNzgzLDcgQEAKIAkJCQlCQzAzMkRCOTEwRjQzODBGMDA1OEMxNUEg
LyogV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1
QSAvKiBXZWJFdmVudENvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEy
RjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
NTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8q
IFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBC
OThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHkuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNDRmZjNlMThmNjZiOGIyYmI1YTdiMmZhY2NlODQ2YTAxNTI4
NWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJv
eHkuaCIKLQotI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKLSNpbmNsdWRlICJO
ZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0
aW9uT3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1SZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVQcm94eTo6Y3JlYXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eShpZGVudGlmaWVyLCBj
b25uZWN0aW9uKSk7Ci19Ci0KLUZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUHJveHkoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLSAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQotICAgICwgbV9jb25uZWN0aW9uKCZjb25uZWN0aW9uKQotewotfQotCi12
b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNvbm5lY3Rpb25DbG9zZWQoKQotewot
ICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7Ci19Ci0KLXZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGVQcm94eTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUltcGwmIGhhbmRsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25F
cnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBhdXRvIGlkZW50aWZpZXIgPSBo
YW5kbGUuc3RvcmFnZUhhbmRsZUlkZW50aWZpZXIoKTsKLSAgICBpZiAoIWlkZW50aWZpZXIpCi0g
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0KLSAgICBpZiAobV9pZGVu
dGlmaWVyLnRvVUludDY0KCkgPT0gKmlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih0cnVlKTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OklzU2FtZUVudHJ5KG1faWRlbnRpZmll
ciwgbWFrZU9iamVjdElkZW50aWZpZXI8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVJZGVudGlmaWVy
VHlwZT4oKmlkZW50aWZpZXIpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIocmVzdWx0KTsKLSAgICB9KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVByb3h5OjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5l
Y2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZWY8
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rp
b24gaXMgbG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKG1faWRlbnRpZmll
ciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwg
bmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNl
cHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJ
ZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmll
ci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0
Il9zIH0pOwotCi0gICAgICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1w
bCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVy
LCAqY29ubmVjdGlvbik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkp
OwotICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmdldERp
cmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
aWYgKCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJD
b3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxv
c3QiIH0pOwotCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKG1faWRlbnRpZmllciwg
bmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbiwgbmFt
ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRp
b25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLSAgICAKLSAgICAgICAgYXV0byBoYW5kbGVJZGVu
dGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7Ci0gICAgICAgIGlmICghaGFuZGxlSWRlbnRpZmllci5p
c1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9z
IH0pOwotCi0gICAgICAgIFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSW1wbD4gaW1wbCA9
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OmNyZWF0ZShoYW5kbGVJZGVudGlmaWVyLCAq
Y29ubmVjdGlvbik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1wbCkpOwot
ICAgIH0pOwotfQotCi12b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlbW92ZUVu
dHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKLXsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwg
IkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZW1vdmVFbnRyeShtX2lk
ZW50aWZpZXIsIG5hbWUsIGRlbGV0ZVJlY3Vyc2l2ZWx5KSwgW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewotICAgICAg
ICBpZiAoZXJyb3IpCi0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29kZShlcnJvci52YWx1ZSgpKSB9KTsK
LQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0pOwotfQotCi12b2lkIEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlUHJveHk6OnJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUltcGwm
IGhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25PcjxWZWN0
b3I8U3RyaW5nPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwotCi0g
ICAgYXV0byBpZGVudGlmaWVyID0gaGFuZGxlLnN0b3JhZ2VIYW5kbGVJZGVudGlmaWVyKCk7Ci0g
ICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoVmVj
dG9yPFN0cmluZz4geyB9KTsKLQotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlJlc29sdmUobV9pZGVudGlmaWVyLCBt
YWtlT2JqZWN0SWRlbnRpZmllcjxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXJUeXBl
PigqaWRlbnRpZmllcikpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAoIXJlc3VsdCkKLSAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBj
b252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKLQotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7Ci0gICAgfSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2FjYzBmYmU1Y2Y2ZWFmN2U1
YTNlNTI0Y2I5NDE4OGJhMjI4NTgxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGVJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxl
SW1wbC5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLXRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKLWNs
YXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU7Ci1jbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGwgewot
cHVibGljOgotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVQcm94eT4gY3Jl
YXRlKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJik7
Ci0gICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGVQcm94eShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZUlkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbiYpOwotCi0gICAgLy8gRmlsZVN5c3RlbUhhbmRsZUltcGwKLSAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBzdG9yYWdlSGFuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1f
aWRlbnRpZmllci50b1VJbnQ2NCgpOyB9Ci0gICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVt
SGFuZGxlSW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8
Ym9vbD4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RXhjZXB0aW9uT3I8UmVmPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJbXBsPj4mJik+
JiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpFeGNlcHRpb25PcjxSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+PiYmKT4mJikg
ZmluYWw7Ci0gICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxl
SW1wbCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8VmVjdG9y
PFN0cmluZz4+JiYpPiYmKSBmaW5hbDsKLQotICAgIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNTRjOTIzOGJkZDJm
Y2VjODEyOWIwMzA2YjUzYmJmYjFjN2RmOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKworI2luY2x1
ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKKyNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKGNvbm5lY3Rpb24p
KTsKK30KKworV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorICAgIDogbV9jb25u
ZWN0aW9uKCZjb25uZWN0aW9uKQoreworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCit7CisgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0
cjsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmlzU2FtZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAi
Q29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIGlmIChpZGVudGlmaWVyID09IG90aGVySWRl
bnRpZmllcikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6SXNTYW1lRW50cnkoaWRlbnRpZmllciwgb3RoZXJJZGVudGlmaWVyKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVu
a25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24t
PnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRG
aWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgY29udmVydFRvRXhjZXB0aW9uQ29k
ZShyZXN1bHQuZXJyb3IoKSkgfSk7CisKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0
LnZhbHVlKCk7CisgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0Il9zIH0pOworCisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoaWRlbnRpZmllcikpOworICAgIH0pOworfQorCit2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
ICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0
IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1l
LCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
cmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2VwdGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisg
ICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlk
ZW50aWZpZXIuaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24g
aXMgbG9zdCJfcyB9KTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlkZW50
aWZpZXIpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OnJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZW1vdmVFbnRyeUNhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UmVtb3ZlRW50
cnkoaWRlbnRpZmllciwgbmFtZSwgZGVsZXRlUmVjdXJzaXZlbHkpLCBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpFeGNlcHRpb24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKGVycm9yLnZhbHVlKCkp
IH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIG90aGVySWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBp
ZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpSZXNvbHZlKGlkZW50aWZpZXIsIG90aGVySWRlbnRpZmll
ciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IGNvbnZlcnRUb0V4Y2Vw
dGlvbkNvZGUocmVzdWx0LmVycm9yKCkpIH0pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjYwMWJlNjQzNTNkYWZjNzc3YzZiY2U0MmIxZTlmMjkxMzkyMzBjMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsK
K2NsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU7CitjbGFzcyBGaWxlU3lzdGVtRmlsZUhh
bmRsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJik7CisgICAgdm9pZCBjb25uZWN0aW9u
Q2xvc2VkKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOworCisgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uCisgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2FsbGJhY2smJik7CisgICAg
dm9pZCBnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7CisgICAgdm9pZCBn
ZXREaXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJl
bW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6UmVtb3ZlRW50cnlDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJlc29sdmUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJl
c29sdmVDYWxsYmFjayYmKTsKKworICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggNjNlNjYyOWRjYmRkNzZmOTY4ZjRlNzhiMjRjNDkzZWQ1MDIyNWZiMy4u
MmFjYjVmYWFmM2Y0NmQ3Zjg0ZGJiYmI4NzMzMmQzMzY1NDkwMzc2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJTdG9yYWdlQ29ubmVjdGlvbi5oIgogCi0jaW5jbHVkZSAiRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGVQcm94eS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9FeGNlcHRpb25Pci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ1LDIzICs0NiwyNCBAQCB2
b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiBvcmlnaW4sIFN0bwogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UGVyc2lzdGVkKG9yaWdpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlv
bjo6cGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFn
ZUNvbm5lY3Rpb246OnBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OlBlcnNpc3Qob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJlZjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SW1wbD4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlv
bjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKLSAgICBj
b25uZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpGaWxlU3lzdGVtR2V0RGlyZWN0b3J5KG9yaWdpbiksIFt3ZWFrQ29ubmVjdGlvbiA9IG1h
a2VXZWFrUHRyKGNvbm5lY3Rpb24pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbi5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3Rl
bUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3Vs
dCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBjb252ZXJ0VG9FeGNlcHRpb25Db2RlKHJlc3VsdC5lcnJvcigpKSB9KTsKIAotICAgICAg
ICBpZiAoIXdlYWtDb25uZWN0aW9uIHx8ICFyZXN1bHQudmFsdWUoKS5pc1ZhbGlkKCkpCisgICAg
ICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBpZiAoIWlkZW50
aWZpZXIuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMg
bG9zdCJfcyB9KTsKIAotICAgICAgICBSZWY8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUltcGw+
IGltcGwgPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVByb3h5OjpjcmVhdGUocmVzdWx0LnZhbHVl
KCksICp3ZWFrQ29ubmVjdGlvbik7Ci0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGltcGwpKTsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gUmVmUHRyPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4geyAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkgfTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKHN0ZDo6cGFpciB7IGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikgfSk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCBiMjllMTAwNjc5NTY5NDkyMjY4NDUwMzI3MWFhYjg1Nzc1YTVhNWJiLi5mMmVhMTllODIwNmVk
Mzg5MmYyZjgyOWY3YmM5Yzg1MDI0NzBmOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR2FtZXBhZFByb3ZpZGVyLmgiCkBAIC0xMjA3LDYg
KzEyMDgsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9z
ZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBjb25uZWMKICAgICAgICAgICAgIHBheW1lbnRD
b29yZGluYXRvci0+bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKCk7CiAjZW5kaWYKICAg
ICB9CisKKyAgICAvLyBSZWNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHdpdGggdmFsaWQgSVBDIGNv
bm5lY3Rpb24gb24gbmV4dCBvcGVyYXRpb24uCisgICAgaWYgKG1fZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKSB7CisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLT5jb25u
ZWN0aW9uQ2xvc2VkKCk7CisgICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uID0g
bnVsbHB0cjsKKyAgICB9Cit9CisKK1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgV2Vi
UHJvY2Vzczo6ZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fZmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKQorICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKGVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKSk7CisKKyAgICByZXR1cm4gKm1f
ZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogfQogCiBXZWJMb2FkZXJTdHJhdGVneSYgV2Vi
UHJvY2Vzczo6d2ViTG9hZGVyU3RyYXRlZ3koKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKaW5kZXggZjM2MDNhZDAyNGIyMWRiODgyZTZkOTJjN2EwNWYzZTg1YzU3Yjk5NS4uZGY3
NmZmOTk4NmYwZmNiYzM0MWRmOGU2MTI1OTU1Nzc2OWJiNTAyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNDAsNiArMTQwLDcgQEAgY2xhc3MgV2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXI7CiBjbGFzcyBXZWJDb29raWVKYXI7CiBjbGFzcyBXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CitjbGFzcyBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdl
YkxvYWRlclN0cmF0ZWd5OwogY2xhc3MgV2ViUGFnZTsKQEAgLTI0NSw2ICsyNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKik7CiAgICAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBleGlzdGluZ05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmdldCgpOyB9CiAgICAgV2ViTG9hZGVyU3RyYXRlZ3kmIHdlYkxvYWRlclN0cmF0ZWd5KCk7
CisgICAgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBmaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKTsKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKQEAgLTY1MSw2ICs2NTMsNyBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAgICAg
UmVmUHRyPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b247CiAgICAgV2ViTG9hZGVyU3RyYXRlZ3kmIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CisgICAgUmVm
UHRyPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb247CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVmUHRyPEdQVVByb2Nl
c3NDb25uZWN0aW9uPiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>